1
2
3
4
5
6
7 package pl.edu.agh.cast.ui.wizards;
8
9 import java.util.LinkedList;
10 import java.util.List;
11
12 import org.eclipse.gef.commands.CommandStack;
13 import org.eclipse.jface.viewers.ISelection;
14 import org.eclipse.jface.viewers.IStructuredSelection;
15 import org.eclipse.jface.wizard.IWizard;
16 import org.eclipse.jface.wizard.Wizard;
17 import org.eclipse.ui.IEditorPart;
18 import org.eclipse.ui.PlatformUI;
19
20 import pl.edu.agh.cast.backward.editor.operation.SelectMediatorsParameters;
21 import pl.edu.agh.cast.backward.editor.operation.SelectMediatorsParameters.SelectMediatorsMode;
22 import pl.edu.agh.cast.model.visual.backward.Node;
23 import pl.edu.agh.cast.schema.command.SelectMediatorsCommand;
24 import pl.edu.agh.cast.schema.editpart.SchemaNodeEditPart;
25 import pl.edu.agh.cast.schema.util.Messages;
26
27
28
29
30
31 public class GetSelectMediatorsParametersWizard extends Wizard implements IWizard {
32
33 private SelectRootNumbersWizardPage _wizardPage;
34
35 public GetSelectMediatorsParametersWizard() {
36 super();
37 _wizardPage = new SelectRootNumbersWizardPage(Messages.SelectRootNumbersWizard_0);
38 }
39
40
41
42
43
44
45 public boolean performFinish() {
46
47
48 String numberOfNodes = _wizardPage.getNodesNumber();
49 int numNodes = Integer.parseInt(numberOfNodes);
50
51 String numberOfConnections = _wizardPage.getConnectionsNumber();
52 int numConnections = Integer.parseInt(numberOfConnections);
53
54 SelectMediatorsParameters params = new SelectMediatorsParameters();
55 params.setMinMainConnections(numNodes);
56
57 if (_wizardPage.isEachModeSelected()) {
58 params.setMode(SelectMediatorsMode.EACH);
59 params.setMinEachConnections(numConnections);
60 } else {
61 params.setMode(SelectMediatorsMode.SUM);
62 params.setMinTotalConnections(numConnections);
63 }
64
65
66 IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
67 ISelection selection = editor.getSite().getSelectionProvider().getSelection();
68
69 List<Node> selectedNodes = new LinkedList<Node>();
70 IStructuredSelection structuredSelection = (IStructuredSelection)selection;
71 for (Object item : structuredSelection.toList()) {
72 if (item instanceof SchemaNodeEditPart) {
73 SchemaNodeEditPart ep = (SchemaNodeEditPart)item;
74 selectedNodes.add(ep.getModelCasted());
75 }
76 }
77
78 SelectMediatorsCommand command = new SelectMediatorsCommand(params, selectedNodes);
79 CommandStack commandStack = (CommandStack)editor.getAdapter(CommandStack.class);
80 commandStack.execute(command);
81
82 return true;
83
84 }
85
86
87
88
89
90
91 public void addPages() {
92 super.addPages();
93 setWindowTitle(Messages.SelectRootNumbersWizard_3);
94 setNeedsProgressMonitor(true);
95 addPage(_wizardPage);
96 }
97
98 public SelectRootNumbersWizardPage getFirstPage() {
99 return _wizardPage;
100 }
101 }