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

12345678910111213141516171819202122232425262728293031323334353637383940
  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. Paintable childComponent = getChildComponent((Element) event
  24. .getEventTarget().cast());
  25. Map<String, Object> parameters = new HashMap<String, Object>();
  26. parameters.put("mouseDetails", mouseDetails.serialize());
  27. parameters.put("component", childComponent);
  28. client.updateVariable(pid, clickEventIdentifier, parameters, true);
  29. }
  30. }