package org.insightech.er.editor.view.action.line; import java.util.ArrayList; import java.util.List; import org.eclipse.gef.EditPart; import org.eclipse.gef.GraphicalViewer; import org.eclipse.gef.commands.Command; import org.eclipse.swt.widgets.Event; import org.insightech.er.Activator; import org.insightech.er.ImageKey; import org.insightech.er.ResourceString; import org.insightech.er.editor.ERDiagramEditor; import org.insightech.er.editor.controller.command.diagram_contents.element.node.MoveElementCommand; import org.insightech.er.editor.controller.editpart.element.node.ERTableEditPart; import org.insightech.er.editor.controller.editpart.element.node.IResizable; import org.insightech.er.editor.controller.editpart.element.node.NodeElementEditPart; import org.insightech.er.editor.controller.editpart.element.node.NoteEditPart; import org.insightech.er.editor.model.diagram_contents.element.node.NodeElement; import org.insightech.er.editor.view.action.AbstractBaseSelectionAction; public class ResizeModelAction extends AbstractBaseSelectionAction { public static final String ID = ResizeModelAction.class.getName(); public ResizeModelAction(ERDiagramEditor editor) { super(ID, ResourceString.getResourceString("action.title.auto.resize"), editor); this.setImageDescriptor(Activator.getImageDescriptor(ImageKey.RESIZE)); } /** * {@inheritDoc} */ @Override protected List<Command> getCommand(EditPart editPart, Event event) { List<Command> commandList = new ArrayList<Command>(); if (editPart instanceof IResizable) { NodeElement nodeElement = (NodeElement) editPart.getModel(); MoveElementCommand command = new MoveElementCommand(this .getDiagram(), ((NodeElementEditPart) editPart).getFigure() .getBounds(), nodeElement.getX(), nodeElement.getY(), -1, -1, nodeElement); commandList.add(command); } return commandList; } /** * {@inheritDoc} */ @Override protected boolean calculateEnabled() { GraphicalViewer viewer = this.getGraphicalViewer(); for (Object object : viewer.getSelectedEditParts()) { if (object instanceof NodeElementEditPart) { NodeElementEditPart nodeElementEditPart = (NodeElementEditPart) object; if (nodeElementEditPart instanceof ERTableEditPart || nodeElementEditPart instanceof NoteEditPart) { return true; } } } return false; } }