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

Source Code of net.cis.common.model.diagram.shiptype.edit.parts.ModelerEditPart$NodeLabelDragPolicy

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

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import net.cis.common.model.diagram.shiptype.edit.commands.CismodelCreateShortcutDecorationsCommand;
import net.cis.common.model.diagram.shiptype.edit.policies.ModelerCanonicalEditPolicy;
import net.cis.common.model.diagram.shiptype.edit.policies.ModelerItemSemanticEditPolicy;
import net.cis.common.model.diagram.shiptype.part.CismodelVisualIDRegistry;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
import org.eclipse.gef.handles.MoveHandle;
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DiagramDragDropEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent;

/**
* @generated
*/
public class ModelerEditPart extends DiagramEditPart {

  /**
   * @generated
   */
  public final static String MODEL_ID = "shiptype"; //$NON-NLS-1$

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

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

  /**
   * @generated
   */
  protected void createDefaultEditPolicies() {
    super.createDefaultEditPolicies();
    installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
        new ModelerItemSemanticEditPolicy());
    installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
        new ModelerCanonicalEditPolicy());
    installEditPolicy(EditPolicyRoles.CREATION_ROLE,
        new CreationEditPolicyWithCustomReparent(
            CismodelVisualIDRegistry.TYPED_INSTANCE));
    installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
        new DiagramDragDropEditPolicy() {
          public Command getDropObjectsCommand(
              DropObjectsRequest dropRequest) {
            ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>();
            for (Iterator<?> it = dropRequest.getObjects()
                .iterator(); it.hasNext();) {
              Object nextObject = it.next();
              if (false == nextObject instanceof EObject) {
                continue;
              }
              viewDescriptors
                  .add(new CreateViewRequest.ViewDescriptor(
                      new EObjectAdapter(
                          (EObject) nextObject),
                      Node.class, null,
                      getDiagramPreferencesHint()));
            }
            return createShortcutsCommand(dropRequest,
                viewDescriptors);
          }

          private Command createShortcutsCommand(
              DropObjectsRequest dropRequest,
              List<CreateViewRequest.ViewDescriptor> viewDescriptors) {
            Command command = createViewsAndArrangeCommand(
                dropRequest, viewDescriptors);
            if (command != null) {
              return command
                  .chain(new ICommandProxy(
                      new CismodelCreateShortcutDecorationsCommand(
                          getEditingDomain(),
                          (View) getModel(),
                          viewDescriptors)));
            }
            return null;
          }
        });
    // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE);
  }

  /**
   * @generated
   */
  /*package-local*/static class NodeLabelDragPolicy extends
      NonResizableEditPolicy {

    /**
     * @generated
     */
    @SuppressWarnings("rawtypes")
    protected List createSelectionHandles() {
      MoveHandle h = new MoveHandle((GraphicalEditPart) getHost());
      h.setBorder(null);
      return Collections.singletonList(h);
    }

    /**
     * @generated
     */
    public Command getCommand(Request request) {
      return null;
    }

    /**
     * @generated
     */
    public boolean understandsRequest(Request request) {
      return false;
    }
  }

}
TOP

Related Classes of net.cis.common.model.diagram.shiptype.edit.parts.ModelerEditPart$NodeLabelDragPolicy

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.