/** * @author liuchunxia * * property action */ package net.ms.designer.editors.workflow.actions; import java.util.List; import net.ms.designer.editors.workflow.WorkflowPlugin; import net.ms.designer.editors.workflow.dialog.WorkflowPropertyDialog; import net.ms.designer.editors.workflow.editparts.WireEditPart; import net.ms.designer.editors.workflow.editparts.WorkflowBaseActivityEditPart; import net.ms.designer.editors.workflow.editparts.WorkflowDiagramEditPart; import net.ms.designer.editors.workflow.models.WorkflowDiagram; import org.eclipse.gef.EditPart; import org.eclipse.gef.Request; import org.eclipse.gef.commands.Command; import org.eclipse.gef.commands.CompoundCommand; import org.eclipse.gef.ui.actions.SelectionAction; import org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchPart; //import net.ms.designer.editors.workflow.models.PropertyActivityDialog; public class WorkflowPropertyAction extends SelectionAction { private GraphicalEditorWithFlyoutPalette editor = null; public static String WORKFLOW_PROPERTY = "WORKFLOW_ACTION_PROPERTY"; private static final String PROPERTY_REQUEST = "WORKFLOW_PROPERTY"; //$NON-NLS-1$ Request request; public WorkflowPropertyAction(IWorkbenchPart part) { super(part); request = new Request(PROPERTY_REQUEST); setText("Property"); setId(WORKFLOW_PROPERTY ); setImageDescriptor(ImageDescriptor.createFromFile(WorkflowPlugin.class,"/icons/sample.gif")); //$NON-NLS-1$ setHoverImageDescriptor(getImageDescriptor()); } public void run() { execute(getCommand()); // if(getSelectedObjects().get(0) instanceof WorkflowDiagramEditPart) try { WorkflowDiagramEditPart part = (WorkflowDiagramEditPart)getSelectedObjects().get(0); WorkflowPropertyDialog p = new WorkflowPropertyDialog(editor.getSite().getShell(),null,null); p.open(); } catch (ClassCastException e) { Display.getCurrent().beep(); } catch (IndexOutOfBoundsException e) { Display.getCurrent().beep(); } } //What happened for this action is defined by the edit part of this object. private Command getCommand() { List editparts = getSelectedObjects(); CompoundCommand cc = new CompoundCommand(); cc.setDebugLabel("debug");//$NON-NLS-1$ for (int i=0; i < editparts.size(); i++) { EditPart part = (EditPart)editparts.get(i); cc.add(part.getCommand(request)); } return cc; } protected boolean calculateEnabled() { if (getSelectedObjects().size() == 1 && ((getSelectedObjects().get(0) instanceof WorkflowDiagramEditPart))) { return true; } if(getSelectedObjects().size() == 1 && ((getSelectedObjects().get(0)instanceof WireEditPart))) { return true; } if(getSelectedObjects().size() == 1 && ((getSelectedObjects().get(0) instanceof WorkflowBaseActivityEditPart))) { return true; } return false; } }