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

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import com.google.gwt.dom.client.NativeEvent;
  6. import com.google.gwt.user.client.Element;
  7. import com.vaadin.shared.MouseEventDetails;
  8. import com.vaadin.shared.ui.LayoutClickRpc;
  9. import com.vaadin.terminal.gwt.client.ComponentConnector;
  10. import com.vaadin.terminal.gwt.client.MouseEventDetailsBuilder;
  11. public abstract class LayoutClickEventHandler extends AbstractClickEventHandler {
  12. public static final String LAYOUT_CLICK_EVENT_IDENTIFIER = "lClick";
  13. public LayoutClickEventHandler(ComponentConnector connector) {
  14. this(connector, LAYOUT_CLICK_EVENT_IDENTIFIER);
  15. }
  16. public LayoutClickEventHandler(ComponentConnector connector,
  17. String clickEventIdentifier) {
  18. super(connector, clickEventIdentifier);
  19. }
  20. protected abstract ComponentConnector getChildComponent(Element element);
  21. protected ComponentConnector getChildComponent(NativeEvent event) {
  22. return getChildComponent((Element) event.getEventTarget().cast());
  23. }
  24. @Override
  25. protected void fireClick(NativeEvent event) {
  26. MouseEventDetails mouseDetails = MouseEventDetailsBuilder
  27. .buildMouseEventDetails(event, getRelativeToElement());
  28. getLayoutClickRPC().layoutClick(mouseDetails, getChildComponent(event));
  29. }
  30. protected abstract LayoutClickRpc getLayoutClickRPC();
  31. }