You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LayoutClickEventHandler.java 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import com.google.gwt.dom.client.NativeEvent;
  8. import com.google.gwt.user.client.Element;
  9. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  10. import com.vaadin.terminal.gwt.client.MouseEventDetails;
  11. import com.vaadin.terminal.gwt.client.VPaintableMap;
  12. import com.vaadin.terminal.gwt.client.VPaintableWidget;
  13. public abstract class LayoutClickEventHandler extends ClickEventHandler {
  14. public LayoutClickEventHandler(VPaintableWidget paintable,
  15. String clickEventIdentifier) {
  16. super(paintable, clickEventIdentifier);
  17. }
  18. protected abstract VPaintableWidget getChildComponent(Element element);
  19. @Override
  20. protected void fireClick(NativeEvent event) {
  21. ApplicationConnection client = getApplicationConnection();
  22. String pid = VPaintableMap.get(getApplicationConnection()).getPid(
  23. paintable);
  24. MouseEventDetails mouseDetails = new MouseEventDetails(event,
  25. getRelativeToElement());
  26. VPaintableWidget childComponent = getChildComponent((Element) event
  27. .getEventTarget().cast());
  28. Map<String, Object> parameters = new HashMap<String, Object>();
  29. parameters.put("mouseDetails", mouseDetails.serialize());
  30. parameters.put("component", childComponent);
  31. client.updateVariable(pid, clickEventIdentifier, parameters, true);
  32. }
  33. }