1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 /***
19 * <p>Title: WSMO Studio</p>
20 * <p>Description: Semantic Web Service Editor</p>
21 * <p>Copyright: Copyright (c) 2004-2008</p>
22 * <p>Company: Ontotext Lab. / SIRMA </p>
23 */
24
25 package org.wsmostudio.bpmo.ui.actions;
26
27 import org.eclipse.gef.EditPart;
28 import org.eclipse.gef.ui.actions.SelectionAction;
29 import org.eclipse.ui.ISharedImages;
30 import org.eclipse.ui.IWorkbenchPart;
31 import org.eclipse.ui.actions.ActionFactory;
32 import org.wsmostudio.bpmo.model.WorkflowEntityNode;
33 import org.wsmostudio.bpmo.ui.editor.ClipboardManager;
34
35 public class CopyAction extends SelectionAction {
36
37 public CopyAction(IWorkbenchPart part) {
38 super(part);
39 setId(ActionFactory.COPY.getId());
40 setText("&Copy");
41 ISharedImages sharedImages =
42 part.getSite().getWorkbenchWindow().getWorkbench().getSharedImages();
43 setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
44 setDisabledImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED));
45 }
46
47 @Override
48 protected boolean calculateEnabled() {
49 return findSelectedNode() != null;
50 }
51
52 public void run() {
53 if (calculateEnabled() == false) {
54 return;
55 }
56 ClipboardManager.getDefault().setContent(findSelectedNode());
57 }
58
59 private WorkflowEntityNode findSelectedNode() {
60 for(Object sel : getSelectedObjects()) {
61 if (sel instanceof EditPart
62 && ((EditPart)sel).getModel() instanceof WorkflowEntityNode) {
63 return (WorkflowEntityNode)((EditPart)sel).getModel();
64 }
65 }
66 return null;
67 }
68
69 }