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-2006</p>
22 * <p>Company: OntoText Lab. / SIRMA </p>
23 */
24
25 package org.wsmostudio.choreography.navigator.actions;
26
27 import org.eclipse.jface.viewers.*;
28 import org.omwg.ontology.*;
29 import org.wsmo.service.choreography.Choreography;
30 import org.wsmo.service.signature.*;
31 import org.wsmostudio.runtime.*;
32 import org.wsmostudio.ui.editors.common.WSMOChooser;
33 import org.wsmostudio.ui.editors.model.*;
34 import org.wsmostudio.ui.views.navigator.actions.AbstractAction;
35
36 public abstract class AddModeAction extends AbstractAction {
37
38 public void run() {
39 StateSignature selected = (StateSignature)
40 ((IStructuredSelection)navigator.getTree().getSelection()).getFirstElement();
41 Choreography chor = (Choreography)
42 navigator.getTree().getTree().getSelection()[0].getParentItem().getData();
43
44 ObservableModel uiModel =
45 (ObservableModel)navigator.getWsmoInput().getAdapter(ObservableModel.class);
46
47 WSMOChooser chooser = WSMOChooser.createConceptChooser(
48 navigator.getTree().getTree().getShell(),
49 WSMORuntime.getRuntime());
50
51 Concept newConcept = (Concept)chooser.open();
52 if (newConcept == null) {
53 return;
54 }
55 Mode newMode = createMode(newConcept);
56 selected.addMode(newMode);
57 uiModel.setChanged();
58 navigator.fireEntityChanged(chor);
59 navigator.fireEntityChanged(selected);
60 navigator.getTree().refresh(selected);
61 navigator.getTree().setExpandedState(selected, true);
62 }
63
64 protected abstract Mode createMode(Concept target);
65 }
66
67
68
69
70
71
72
73
74
75
76
77
78
79