+ type;
}
- public static MouseEventDetails deserialize(String serializedString) {
+ public static MouseEventDetails deSerialize(String serializedString) {
MouseEventDetails instance = new MouseEventDetails();
String[] fields = serializedString.split(",");
}
- // private HandlerRegistration clickHandlerRegistration;
- //
- // private void handleHandlerRegistration() {
- // // Handle registering/unregistering of click handler depending on if
- // // server side listeners have been added or removed.
- // if (client.hasEventListeners(this, CLICK_EVENT_IDENTIFIER)) {
- // if (clickHandlerRegistration == null) {
- // clickHandlerRegistration = addDomHandler(this, ClickEvent
- // .getType());
- // }
- // } else {
- // if (clickHandlerRegistration != null) {
- // clickHandlerRegistration.removeHandler();
- // clickHandlerRegistration = null;
- //
- // }
- // }
- //
- // }
-
private static int[] cloneArray(int[] toBeCloned) {
int[] clone = new int[toBeCloned.length];
for (int i = 0; i < clone.length; i++) {
return cell;
}
- // public void onClick(ClickEvent event) {
- // // This is only called if there are click listeners registered on server
- // // side
- //
- // Paintable childComponent = getChildComponent((Element) event
- // .getNativeEvent().getEventTarget().cast());
- // final MouseEventDetails details = new MouseEventDetails(event
- // .getNativeEvent());
- //
- // Object[] parameters = new Object[] { details.serialize(),
- // childComponent };
- // client.updateVariable(client.getPid(this), CLICK_EVENT_IDENTIFIER,
- // parameters, true);
- //
- // }
-
private Paintable getComponent(Element element) {
Element rootElement = getElement();
while (element != null && element != rootElement) {
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Document;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.DomEvent.Type;
+import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.Container;
-import com.vaadin.terminal.gwt.client.MouseEventDetails;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.RenderInformation;
import com.vaadin.terminal.gwt.client.RenderSpace;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
-public class VPanel extends SimplePanel implements Container, ClickHandler {
+public class VPanel extends SimplePanel implements Container {
public static final String CLICK_EVENT_IDENTIFIER = "click";
public static final String CLASSNAME = "v-panel";
private String previousStyleName;
+ private ClickEventHandler clickEventHandler = new ClickEventHandler(this,
+ CLICK_EVENT_IDENTIFIER) {
+
+ @Override
+ public ApplicationConnection getApplicationConnection() {
+ return client;
+ }
+
+ @Override
+ protected <H extends EventHandler> HandlerRegistration registerHandler(
+ H handler, Type<H> type) {
+ return addDomHandler(handler, type);
+ }
+
+ };
+
public VPanel() {
super();
DivElement captionWrap = Document.get().createDivElement();
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
rendering = true;
if (!uidl.hasAttribute("cached")) {
- handleHandlerRegistration();
+ clickEventHandler.handleHandlerRegistration();
// Handle caption displaying and style names, prior generics.
// Affects size
}
- private HandlerRegistration clickHandlerRegistration;
-
- private void handleHandlerRegistration() {
- // Handle registering/unregistering of click handler depending on if
- // server side listeners have been added or removed.
- if (client.hasEventListeners(this, CLICK_EVENT_IDENTIFIER)) {
- if (clickHandlerRegistration == null) {
- clickHandlerRegistration = addDomHandler(this, ClickEvent
- .getType());
- }
- } else {
- if (clickHandlerRegistration != null) {
- clickHandlerRegistration.removeHandler();
- clickHandlerRegistration = null;
-
- }
- }
-
- }
-
@Override
public void setStyleName(String style) {
if (!style.equals(previousStyleName)) {
detectContainerBorders();
}
- public void onClick(ClickEvent event) {
- // This is only called if there are click listeners registered on server
- // side
- MouseEventDetails details = new MouseEventDetails(event
- .getNativeEvent());
- client.updateVariable(client.getPid(this), CLICK_EVENT_IDENTIFIER,
- details.serialize(), true);
- }
-
}
private void fireClick(Map<String, Object> parameters) {
MouseEventDetails mouseDetails = MouseEventDetails
- .deserialize((String) parameters.get("mouseDetails"));
+ .deSerialize((String) parameters.get("mouseDetails"));
Component childComponent = (Component) parameters.get("component");
fireEvent(new LayoutClickEvent(this, mouseDetails, childComponent));
private void fireClick(Map<String, Object> parameters) {
MouseEventDetails mouseDetails = MouseEventDetails
- .deserialize((String) parameters.get("mouseDetails"));
+ .deSerialize((String) parameters.get("mouseDetails"));
Component childComponent = (Component) parameters.get("component");
fireEvent(new LayoutClickEvent(this, mouseDetails, childComponent));
private void fireClick(Map<String, Object> parameters) {
MouseEventDetails mouseDetails = MouseEventDetails
- .deserialize((String) parameters.get("mouseDetails"));
+ .deSerialize((String) parameters.get("mouseDetails"));
fireEvent(new ClickEvent(this, mouseDetails));
}
private void fireClick(Map<String, Object> parameters) {
MouseEventDetails mouseDetails = MouseEventDetails
- .deserialize((String) parameters.get("mouseDetails"));
+ .deSerialize((String) parameters.get("mouseDetails"));
Component childComponent = (Component) parameters.get("component");
fireEvent(new LayoutClickEvent(this, mouseDetails, childComponent));
super.changeVariables(source, variables);
if (variables.containsKey(CLICK_EVENT)) {
- fireClick(variables.get(CLICK_EVENT));
+ fireClick((Map<String, Object>) variables.get(CLICK_EVENT));
}
// Get new size
* @param object
* The raw "value" of the variable change from the client side.
*/
- private void fireClick(Object object) {
+ private void fireClick(Map<String, Object> parameters) {
MouseEventDetails mouseDetails = MouseEventDetails
- .deserialize((String) object);
+ .deSerialize((String) parameters.get("mouseDetails"));
fireEvent(new ClickEvent(this, mouseDetails));
}
propertyId = columnIdMap.get(colkey);
}
MouseEventDetails evt = MouseEventDetails
- .deserialize((String) variables.get("clickEvent"));
+ .deSerialize((String) variables.get("clickEvent"));
Item item = getItem(itemId);
if (item != null) {
fireEvent(new ItemClickEvent(this, item, itemId,
Object id = itemIdMapper.get(key);
MouseEventDetails details = MouseEventDetails
- .deserialize((String) variables.get("clickEvent"));
+ .deSerialize((String) variables.get("clickEvent"));
Item item = getItem(id);
if (item != null) {
fireEvent(new ItemClickEvent(this, item, id, null, details));