use of org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAttributeAdapter in project webtools.sourceediting by eclipse.
the class DragAndDropEditPolicy method getCommand.
public org.eclipse.gef.commands.Command getCommand(Request request) {
BaseDragAndDropCommand command = null;
if (request instanceof ChangeBoundsRequest) {
ChangeBoundsRequest changeBoundsRequest = (ChangeBoundsRequest) request;
Point location = changeBoundsRequest.getLocation();
GraphicalEditPart target = (GraphicalEditPart) viewer.findObjectAt(location);
location = getPointerLocation(changeBoundsRequest.getLocation());
((GraphicalEditPart) viewer.getRootEditPart()).getFigure().translateToRelative(location);
List list = changeBoundsRequest.getEditParts();
// allow drag and drop of only one selected object
if (list.size() == 1) {
Object itemToDrag = list.get(0);
if (itemToDrag instanceof XSDBaseFieldEditPart) {
XSDBaseFieldEditPart selected = (XSDBaseFieldEditPart) itemToDrag;
if (selected.getModel() instanceof XSDElementDeclarationAdapter) {
command = new XSDElementDragAndDropCommand(viewer, (ChangeBoundsRequest) request, target, selected, location);
selectionHandlesEditPolicy.setDragAndDropCommand(command);
} else if (selected.getModel() instanceof XSDBaseAttributeAdapter) {
command = new XSDAttributeDragAndDropCommand(viewer, (ChangeBoundsRequest) request, target, selected, location);
selectionHandlesEditPolicy.setDragAndDropCommand(command);
}
}
}
}
return command;
}
Aggregations