\r
/**\r
* \r
- * this class is used to store the registered events so a list of the required\r
- * client event identifiers (that the client-side should listen for and send to\r
- * the server-side) can be sent to the client-side via a variable.\r
+ * <code>ClientEventList</code> class used to store the registered events so a\r
+ * list of the required client event identifiers (that the client-side should\r
+ * listen for and send to the server-side) can be sent to the client-side via a\r
+ * variable.\r
* \r
* @author davengo GmbH (Germany/Berlin, www.davengo.com)\r
+ * @since 6.2\r
* \r
*/\r
public class ClientEventList {\r
/**\r
* the list containing the registered client events (as strings for\r
* client-side transfer)\r
+ * \r
+ * @since 6.2\r
*/\r
private Map<String, Integer> clientEvents = null;\r
\r
/**\r
* initializes the list if necessary\r
+ * \r
+ * @since 6.2\r
*/\r
private void checkList() {\r
if (clientEvents == null) {\r
* \r
* @param eventIdentifier\r
* the identifier of the event to listen for\r
+ * \r
+ * @return true, if the event is newly added to the list<br>\r
+ * false, if the list already contained the event (the internal\r
+ * counter was incremented)\r
+ * \r
+ * @since 6.2\r
*/\r
- public void listenEvent(String eventIdentifier) {\r
+ public boolean listenEvent(String eventIdentifier) {\r
checkList();\r
- if (!clientEvents.keySet().contains(eventIdentifier))\r
+ if (!clientEvents.keySet().contains(eventIdentifier)) {\r
clientEvents.put(eventIdentifier, 1);\r
- else\r
+ return true;\r
+ } else {\r
clientEvents.put(eventIdentifier,\r
clientEvents.get(eventIdentifier) + 1);\r
+ return false;\r
+ }\r
}\r
\r
/**\r
* \r
* @param eventIdentifier\r
* the identifier of the event to stop listening for\r
+ * @return true, if the event was removed from the list<br>\r
+ * false, if the event is hold in list (the internal counter was\r
+ * greater than zero)\r
*/\r
- public void unlistenEvent(String eventIdentifier) {\r
+ public boolean unlistenEvent(String eventIdentifier) {\r
checkList();\r
if (clientEvents.keySet().contains(eventIdentifier)) {\r
clientEvents.put(eventIdentifier,\r
clientEvents.get(eventIdentifier) - 1);\r
- if (clientEvents.get(eventIdentifier) <= 0)\r
+ if (clientEvents.get(eventIdentifier) <= 0) {\r
clientEvents.remove(eventIdentifier);\r
+ return true;\r
+ }\r
+ return false;\r
}\r
+ return false;\r
}\r
\r
/**\r
* @return a string array containing all registered events\r
+ * \r
+ * @since 6.2\r
*/\r
public String[] getEvents() {\r
if (clientEvents == null) {\r
+/* \r
+@ITMillApache2LicenseForJavaFiles@\r
+ */\r
+\r
package com.vaadin.event;\r
\r
import java.lang.reflect.Method;\r
\r
public interface FieldEvents {\r
\r
- /*\r
- * component focus event and listener\r
+ /**\r
+ * <code>FocusEvent</code> class for holding additional event information.\r
+ * Fired when a <code>Field</code> receives keyboard focus.\r
+ * \r
+ * @since 6.2\r
*/\r
-\r
public class FocusEvent extends Component.Event {\r
\r
private static final long serialVersionUID = -7644184999481404162L;\r
}\r
}\r
\r
+ /**\r
+ * <code>FocusListener</code> interface for listening for\r
+ * <code>FocusEvent</code> fired by a <code>Field</code>.\r
+ * \r
+ * @see FocusEvent\r
+ * @since 6.2\r
+ */\r
public interface FocusListener extends ComponentEventListener {\r
\r
public static final Method focusMethod = ReflectTools.findMethod(\r
public void focus(FocusEvent event);\r
}\r
\r
- /*\r
- * component blur event and listener\r
+ /**\r
+ * <code>BlurEvent</code> class for holding additional event information.\r
+ * Fired when a <code>Field</code> loses keyboard focus.\r
+ * \r
+ * @since 6.2\r
*/\r
-\r
public class BlurEvent extends Component.Event {\r
\r
private static final long serialVersionUID = -7644184999481404162L;\r
}\r
}\r
\r
+ /**\r
+ * <code>BlurListener</code> interface for listening for\r
+ * <code>BlurEvent</code> fired by a <code>Field</code>.\r
+ * \r
+ * @see BlurEvent\r
+ * @since 6.2\r
+ */\r
public interface BlurListener extends ComponentEventListener {\r
\r
public static final Method blurMethod = ReflectTools.findMethod(\r
public void blur(BlurEvent event);\r
}\r
\r
- /*\r
- * component value change event\r
+ /**\r
+ * <code>ValueChangeEvent</code> class for holding additional event\r
+ * information. Fired when the value of a <code>Field</code> changes.\r
+ * \r
+ * @since 6.2\r
*/\r
-\r
public class ValueChangeEvent extends Component.Event {\r
\r
private static final long serialVersionUID = -7644184999481404162L;\r
}\r
}\r
\r
+ /**\r
+ * <code>ValueChangeListener</code> interface for listening for\r
+ * <code>ValueChangeEvent</code> fired by a <code>Field</code>.\r
+ * \r
+ * @see ValueChangeEvent\r
+ * @since 6.2\r
+ */\r
public interface ValueChangeListener extends ComponentEventListener {\r
\r
public static final Method valueChangeMethod = ReflectTools.findMethod(\r
+/*
+@ITMillApache2LicenseForJavaFiles@
+ */
+
package com.vaadin.event;
import java.lang.reflect.Method;
public interface MouseEvents {
/**
- * defines the clicked mouse button for a ComponentClickEvents
+ * defines the clicked mouse button for ClickEvents
*/
public enum MouseButton {
LEFT, RIGHT, MIDDLE
}
+ /**
+ * <code>ClickEvent</code> class for holding additional event information.
+ * Fired when the user clicks on a <code>Component</code>.
+ *
+ * @since 6.2
+ */
public class ClickEvent extends Component.Event {
private MouseButton mouseButton;
}
+ /**
+ * <code>ClickListener</code> interface for listening for
+ * <code>ClickEvent</code> fired by a <code>Component</code>.
+ *
+ * @see ClickEvent
+ * @since 6.2
+ */
public interface ClickListener extends ComponentEventListener {
public static final Method clickMethod = ReflectTools.findMethod(
public void click(ClickEvent event);
}
- /*
- * component double click event
+ /**
+ * <code>DoubleClickEvent</code> class for holding additional event
+ * information. Fired when the user double-clicks on a
+ * <code>Component</code>.
+ *
+ * @since 6.2
*/
-
public class DoubleClickEvent extends Component.Event {
private static final long serialVersionUID = -7644184999481404162L;
}
}
+ /**
+ * <code>DoubleClickListener</code> interface for listening for
+ * <code>DoubleClickEvent</code> fired by a <code>Component</code>.
+ *
+ * @see DoubleClickEvent
+ * @since 6.2
+ */
public interface DoubleClickListener extends ComponentEventListener {
public static final Method doubleClickMethod = ReflectTools.findMethod(
* class for event handlers used by ComponentEventHandler\r
* \r
* @author davengo GmbH (Germany/Berlin, www.davengo.com)\r
+ * @since 6.2\r
* \r
*/\r
public class ComponentEventHandler {\r
private ComponentDetail detail;\r
private ApplicationConnection client;\r
\r
+ /**\r
+ * creates a new <code>ComponentEventHandler</code> instance for the given\r
+ * <code>ComponentDetail</code> and <code>ApplicationConntection</code>\r
+ * instance.\r
+ * \r
+ * @param detail\r
+ * the attached ComponentDetail\r
+ * @param client\r
+ * the <code>ApplicationConnection</code> for sending events\r
+ * \r
+ * @see ApplicationConnection\r
+ * @see ComponentDetail\r
+ * @since 6.2\r
+ */\r
public ComponentEventHandler(ComponentDetail detail,\r
ApplicationConnection client) {\r
this.detail = detail;\r
* the unique identifier for the event\r
* @param parameters\r
* the parameters for the event (can be null)\r
+ * @since 6.2\r
*/\r
public void fireEvent(String eventIdentifier, String... parameters) {\r
fireEvent(eventIdentifier, false, parameters);\r
* the unique identifier for the event\r
* @param parameters\r
* the parameters for the event (can be null)\r
+ * @since 6.2\r
*/\r
public void fireComponentEvent(String eventIdentifier, String... parameters) {\r
fireEvent(eventIdentifier, true, parameters);\r
}\r
\r
+ /**\r
+ * Transmit the event to the Server (Fires a event which is transmitted to\r
+ * the server and passed on the the components handleEvent method)\r
+ * \r
+ * @param eventIdentifier\r
+ * the unique identifier for the event\r
+ * @param forceTransmission\r
+ * enforce the transmission to the server\r
+ * @param parameters\r
+ * the parameters for the event (can be null)\r
+ * @since 6.2\r
+ */\r
private void fireEvent(String eventIdentifier, boolean forceTransmission,\r
String... parameters) {\r
\r
}\r
}\r
\r
+ /**\r
+ * Registers the Events listened on the server-side from the UIDL\r
+ * \r
+ * @param componentUIDL\r
+ * @since 6.2\r
+ */\r
void registerEventsFromUIDL(UIDL componentUIDL) {\r
\r
// read out the request event handlers\r
target.addAttribute("description", getDescription());
}
- // davengo GmbH: add client event variables
String[] trigger = new String[] {};
String[] events = new String[] {};
if (clientEvents != null) {
* event-api mechanism for listening on events.
*
* @param eventIdentifier
+ * @since 6.2
*/
private void listenEvent(String eventIdentifier) {
if (clientEvents == null) {
clientEvents = new ClientEventList();
}
- clientEvents.listenEvent(eventIdentifier);
- requestRepaint();
+ final boolean repaint = clientEvents.listenEvent(eventIdentifier);
+ if (repaint)
+ requestRepaint();
}
/**
* event-api mechanism for listening on events.
*
* @param eventIdentifier
+ * @since 6.2
*/
private void unlistenEvent(String eventIdentifier) {
if (clientEvents != null) {
- clientEvents.unlistenEvent(eventIdentifier);
- requestRepaint();
+ final boolean repaint = clientEvents.unlistenEvent(eventIdentifier);
+ if (repaint)
+ requestRepaint();
}
}
* the object instance who owns the activation method.
* @param method
* the activation method.
+ *
+ * @since 6.2
*/
protected void addEventListener(String eventIdentifier, Class<?> eventType,
Object object, Method method) {
* @param target
* the target object that has registered to listen to events of
* type <code>eventType</code> with one or more methods.
+ *
+ * @since 6.2
*/
protected void removeEventListener(String eventIdentifier,
Class<?> eventType, Object target) {
* @param method
* the method owned by <code>target</code> that's registered to
* listen to events of type <code>eventType</code>.
+ *
+ * @since 6.2
*/
protected void removeEventListener(String eventIdentifier, Class eventType,
Object target, Method method) {