Package pl.tecna.gwt.connectors.client.elements

Source Code of pl.tecna.gwt.connectors.client.elements.ShapeConnectorStart

package pl.tecna.gwt.connectors.client.elements;

import pl.tecna.gwt.connectors.client.ConnectionPoint;
import pl.tecna.gwt.connectors.client.images.ConnectorsBundle;
import pl.tecna.gwt.connectors.client.util.ConnectorsClientBundle;

import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.event.dom.client.MouseOverEvent;
import com.google.gwt.event.dom.client.MouseOverHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Widget;

public class ShapeConnectorStart extends EndPoint {

  public Shape shape;
  private Timer endPointsTimer;
  private HandlerRegistration overHandlerReg;
  private HandlerRegistration outHandlerReg;
  private ConnectionPoint overlapingCP;

  public ShapeConnectorStart(Integer left, Integer top, Shape shape, Timer endPointsTimer, ConnectionPoint overlapingCP) {
    super(left, top);
    this.shape = shape;
    this.endPointsTimer = endPointsTimer;
    this.overlapingCP = overlapingCP;
    addHandlers();
    setStyle();
    DOM.setStyleAttribute(this.getElement(), "cursor", "pointer");
  }

  protected void setStyle() {
    setStyleName(ConnectorsClientBundle.INSTANCE.css().gwtConnectorsShapeConnectorStart());
  }

  public void removeStyle() {
    removeStyleName(ConnectorsClientBundle.INSTANCE.css().gwtConnectorsShapeConnectorStart());
  }

  private void addHandlers() {

    MouseOverHandler mouseOverHandler = new MouseOverHandler() {

      public void onMouseOver(MouseOverEvent event) {
        endPointsTimer.cancel();
      }
    };

    MouseOutHandler mouseOutHandler = new MouseOutHandler() {

      public void onMouseOut(MouseOutEvent event) {
        endPointsTimer.schedule(Shape.END_POINTS_VIS_DELAY);
      }
    };

    outHandlerReg = addMouseOutHandler(mouseOutHandler);
    overHandlerReg = addMouseOverHandler(mouseOverHandler);

  }

  public void removeHandlers() {
    outHandlerReg.removeHandler();
    overHandlerReg.removeHandler();
  }

  public ConnectionPoint getOverlapingCP() {
    return overlapingCP;
  }

  public Shape getShape() {
    return shape;
  }

  @Override
  protected Widget createImage() {
    Widget w = new AbsolutePanel();
    w.addStyleName(ConnectorsClientBundle.INSTANCE.css().gwtConnectorsShapeConnectorStartInner());
    return w;
  }

  public Image createEndPointImage() {
    Image img = AbstractImagePrototype.create(ConnectorsBundle.INSTANCE.end_point()).createImage();
    img.addStyleName(ConnectorsClientBundle.INSTANCE.css().imageDispBlock());
    return img;
  }

}
TOP

Related Classes of pl.tecna.gwt.connectors.client.elements.ShapeConnectorStart

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.