Package net.cis.common.model.diagram.shiptype.edit.parts

Source Code of net.cis.common.model.diagram.shiptype.edit.parts.ShipEditPart$ShipFigure

package net.cis.common.model.diagram.shiptype.edit.parts;

import net.cis.common.model.diagram.shiptype.edit.policies.ShipCanonicalEditPolicy;
import net.cis.common.model.diagram.shiptype.edit.policies.ShipItemSemanticEditPolicy;
import net.cis.common.model.diagram.shiptype.part.CismodelVisualIDRegistry;

import org.eclipse.draw2d.FlowLayout;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.RectangleFigure;
import org.eclipse.draw2d.Shape;
import org.eclipse.draw2d.StackLayout;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.LayoutEditPolicy;
import org.eclipse.gef.requests.CreateRequest;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.FlowLayoutEditPolicy;
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent;
import org.eclipse.swt.graphics.Color;

/**
* @generated
*/
public class ShipEditPart extends ShapeNodeEditPart {

  /**
   * @generated
   */
  public static final int VISUAL_ID = 2001;

  /**
   * @generated
   */
  protected IFigure contentPane;

  /**
   * @generated
   */
  protected IFigure primaryShape;

  /**
   * @generated
   */
  public ShipEditPart(View view) {
    super(view);
  }

  /**
   * @generated
   */
  protected void createDefaultEditPolicies() {
    installEditPolicy(EditPolicyRoles.CREATION_ROLE,
        new CreationEditPolicyWithCustomReparent(
            CismodelVisualIDRegistry.TYPED_INSTANCE));
    super.createDefaultEditPolicies();
    installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
        new ShipItemSemanticEditPolicy());
    installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
        new DragDropEditPolicy());
    installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
        new ShipCanonicalEditPolicy());
    installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
    // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
    // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
  }

  /**
   * @generated
   */
  protected LayoutEditPolicy createLayoutEditPolicy() {

    FlowLayoutEditPolicy lep = new FlowLayoutEditPolicy() {

      protected Command createAddCommand(EditPart child, EditPart after) {
        return null;
      }

      protected Command createMoveChildCommand(EditPart child,
          EditPart after) {
        return null;
      }

      protected Command getCreateCommand(CreateRequest request) {
        return null;
      }
    };
    return lep;
  }

  /**
   * @generated
   */
  protected IFigure createNodeShape() {
    return primaryShape = new ShipFigure();
  }

  /**
   * @generated
   */
  public ShipFigure getPrimaryShape() {
    return (ShipFigure) primaryShape;
  }

  /**
   * @generated
   */
  protected boolean addFixedChild(EditPart childEditPart) {
    if (childEditPart instanceof ShipNameEditPart) {
      ((ShipNameEditPart) childEditPart).setLabel(getPrimaryShape()
          .getFigureShipNameFigure());
      return true;
    }
    if (childEditPart instanceof ShipShipTypeEditPart) {
      ((ShipShipTypeEditPart) childEditPart).setLabel(getPrimaryShape()
          .getFigureShipShipTypeFigure());
      return true;
    }
    return false;
  }

  /**
   * @generated
   */
  protected boolean removeFixedChild(EditPart childEditPart) {
    if (childEditPart instanceof ShipNameEditPart) {
      return true;
    }
    if (childEditPart instanceof ShipShipTypeEditPart) {
      return true;
    }
    return false;
  }

  /**
   * @generated
   */
  protected void addChildVisual(EditPart childEditPart, int index) {
    if (addFixedChild(childEditPart)) {
      return;
    }
    super.addChildVisual(childEditPart, -1);
  }

  /**
   * @generated
   */
  protected void removeChildVisual(EditPart childEditPart) {
    if (removeFixedChild(childEditPart)) {
      return;
    }
    super.removeChildVisual(childEditPart);
  }

  /**
   * @generated
   */
  protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
    return getContentPane();
  }

  /**
   * @generated
   */
  protected NodeFigure createNodePlate() {
    DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
    return result;
  }

  /**
   * Creates figure for this edit part.
   *
   * Body of this method does not depend on settings in generation model
   * so you may safely remove <i>generated</i> tag and modify it.
   *
   * @generated
   */
  protected NodeFigure createNodeFigure() {
    NodeFigure figure = createNodePlate();
    figure.setLayoutManager(new StackLayout());
    IFigure shape = createNodeShape();
    figure.add(shape);
    contentPane = setupContentPane(shape);
    return figure;
  }

  /**
   * Default implementation treats passed figure as content pane.
   * Respects layout one may have set for generated figure.
   * @param nodeShape instance of generated figure class
   * @generated
   */
  protected IFigure setupContentPane(IFigure nodeShape) {
    if (nodeShape.getLayoutManager() == null) {
      ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
      layout.setSpacing(5);
      nodeShape.setLayoutManager(layout);
    }
    return nodeShape; // use nodeShape itself as contentPane
  }

  /**
   * @generated
   */
  public IFigure getContentPane() {
    if (contentPane != null) {
      return contentPane;
    }
    return super.getContentPane();
  }

  /**
   * @generated
   */
  protected void setForegroundColor(Color color) {
    if (primaryShape != null) {
      primaryShape.setForegroundColor(color);
    }
  }

  /**
   * @generated
   */
  protected void setBackgroundColor(Color color) {
    if (primaryShape != null) {
      primaryShape.setBackgroundColor(color);
    }
  }

  /**
   * @generated
   */
  protected void setLineWidth(int width) {
    if (primaryShape instanceof Shape) {
      ((Shape) primaryShape).setLineWidth(width);
    }
  }

  /**
   * @generated
   */
  protected void setLineType(int style) {
    if (primaryShape instanceof Shape) {
      ((Shape) primaryShape).setLineStyle(style);
    }
  }

  /**
   * @generated
   */
  public EditPart getPrimaryChildEditPart() {
    return getChildBySemanticHint(CismodelVisualIDRegistry
        .getType(ShipNameEditPart.VISUAL_ID));
  }

  /**
   * @generated
   */
  protected void handleNotificationEvent(Notification event) {
    if (event.getNotifier() == getModel()
        && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
            .equals(event.getFeature())) {
      handleMajorSemanticChange();
    } else {
      super.handleNotificationEvent(event);
    }
  }

  /**
   * @generated
   */
  public class ShipFigure extends RectangleFigure {

    /**
     * @generated
     */
    private WrappingLabel fFigureShipNameFigure;
    /**
     * @generated
     */
    private WrappingLabel fFigureShipShipTypeFigure;

    /**
     * @generated
     */
    public ShipFigure() {

      FlowLayout layoutThis = new FlowLayout();
      layoutThis.setStretchMinorAxis(false);
      layoutThis.setMinorAlignment(FlowLayout.ALIGN_LEFTTOP);

      layoutThis.setMajorAlignment(FlowLayout.ALIGN_LEFTTOP);
      layoutThis.setMajorSpacing(5);
      layoutThis.setMinorSpacing(5);
      layoutThis.setHorizontal(true);

      this.setLayoutManager(layoutThis);

      createContents();
    }

    /**
     * @generated
     */
    private void createContents() {

      fFigureShipNameFigure = new WrappingLabel();

      fFigureShipNameFigure.setText("<...>");

      this.add(fFigureShipNameFigure);

      fFigureShipShipTypeFigure = new WrappingLabel();

      fFigureShipShipTypeFigure.setText("<...>");

      this.add(fFigureShipShipTypeFigure);

    }

    /**
     * @generated
     */
    public WrappingLabel getFigureShipNameFigure() {
      return fFigureShipNameFigure;
    }

    /**
     * @generated
     */
    public WrappingLabel getFigureShipShipTypeFigure() {
      return fFigureShipShipTypeFigure;
    }

  }

}
TOP

Related Classes of net.cis.common.model.diagram.shiptype.edit.parts.ShipEditPart$ShipFigure

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.