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.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. @ITMillApache2LicenseForJavaFiles@
  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.Paintable;
  12. public abstract class LayoutClickEventHandler extends ClickEventHandler {
  13. public LayoutClickEventHandler(Paintable paintable,
  14. String clickEventIdentifier) {
  15. super(paintable, clickEventIdentifier);
  16. }
  17. protected abstract Paintable getChildComponent(Element element);
  18. @Override
  19. protected void fireClick(NativeEvent event) {
  20. ApplicationConnection client = getApplicationConnection();
  21. String pid = getApplicationConnection().getPid(paintable);
  22. MouseEventDetails mouseDetails = new MouseEventDetails(event,
  23. getRelativeToElement());
  24. Paintable childComponent = getChildComponent((Element) event
  25. .getEventTarget().cast());
  26. Map<String, Object> parameters = new HashMap<String, Object>();
  27. parameters.put("mouseDetails", mouseDetails.serialize());
  28. parameters.put("component", childComponent);
  29. client.updateVariable(pid, clickEventIdentifier, parameters, true);
  30. }
  31. }