/* | |
* | |
*/ | |
package comrel.diagram.edit.parts; | |
import java.util.ArrayList; | |
import java.util.Collections; | |
import java.util.Iterator; | |
import java.util.List; | |
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 comrel.diagram.edit.commands.ComrelCreateShortcutDecorationsCommand; | |
import comrel.diagram.edit.policies.CompositeRefactoringCanonicalEditPolicy; | |
import comrel.diagram.edit.policies.CompositeRefactoringItemSemanticEditPolicy; | |
/** | |
* @generated | |
*/ | |
public class CompositeRefactoringEditPart extends DiagramEditPart { | |
/** | |
* @generated | |
*/ | |
public final static String MODEL_ID = "Comrel"; //$NON-NLS-1$ | |
/** | |
* @generated | |
*/ | |
public static final int VISUAL_ID = 1000; | |
/** | |
* @generated | |
*/ | |
public CompositeRefactoringEditPart(View view) { | |
super(view); | |
} | |
/** | |
* @generated | |
*/ | |
protected void createDefaultEditPolicies() { | |
super.createDefaultEditPolicies(); | |
installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, | |
new CompositeRefactoringItemSemanticEditPolicy()); | |
installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, | |
new CompositeRefactoringCanonicalEditPolicy()); | |
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 ComrelCreateShortcutDecorationsCommand( | |
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; | |
} | |
} | |
} |