View Javadoc

1   /*
2    * This file is a part of CAST project.
3    * (c) Copyright 2007, AGH University of Science & Technology
4    * All rights reserved. Check the documentation for licensing terms.
5    * https://caribou.iisg.agh.edu.pl/trac/cast
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   * @author
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       * (non-Javadoc)
42       *
43       * @see org.eclipse.jface.wizard.Wizard#performFinish()
44       */
45      public boolean performFinish() {
46          // String pattern = "[0-9]{1}";
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          // get active editor
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       * (non-Javadoc)
88       *
89       * @see org.eclipse.jface.wizard.IWizard#addPages()
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 }