EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][de.uka.ipd.sdq.pcmsolver.runconfig]

COVERAGE SUMMARY FOR SOURCE FILE [MainConfigTab.java]

nameclass, %method, %block, %line, %
MainConfigTab.java0%   (0/8)0%   (0/39)0%   (0/1893)0%   (0/411)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MainConfigTab0%   (0/1)0%   (0/21)0%   (0/1740)0%   (0/371)
MainConfigTab (): void 0%   (0/1)0%   (0/16)0%   (0/3)
access$0 (MainConfigTab, boolean): void 0%   (0/1)0%   (0/4)0%   (0/1)
access$1 (MainConfigTab): void 0%   (0/1)0%   (0/3)0%   (0/1)
access$2 (MainConfigTab, String): void 0%   (0/1)0%   (0/4)0%   (0/1)
access$3 (MainConfigTab): String 0%   (0/1)0%   (0/3)0%   (0/1)
access$4 (MainConfigTab): String 0%   (0/1)0%   (0/3)0%   (0/1)
activated (ILaunchConfigurationWorkingCopy): void 0%   (0/1)0%   (0/1)0%   (0/1)
createControl (Composite): void 0%   (0/1)0%   (0/95)0%   (0/19)
createFolderSelectionButtons (Group, Text): void 0%   (0/1)0%   (0/33)0%   (0/7)
createLQNSWidgets (Composite): Group 0%   (0/1)0%   (0/410)0%   (0/77)
createLQSIMWidgets (Composite): Group 0%   (0/1)0%   (0/326)0%   (0/61)
createSREWidgets (Composite): Group 0%   (0/1)0%   (0/202)0%   (0/38)
deactivated (ILaunchConfigurationWorkingCopy): void 0%   (0/1)0%   (0/1)0%   (0/1)
getName (): String 0%   (0/1)0%   (0/2)0%   (0/1)
initializeFrom (ILaunchConfiguration): void 0%   (0/1)0%   (0/351)0%   (0/88)
isValid (ILaunchConfiguration): boolean 0%   (0/1)0%   (0/73)0%   (0/25)
openFileSystemFolderDialog (): String 0%   (0/1)0%   (0/20)0%   (0/6)
openWorkspaceResourceFolderDialog (): String 0%   (0/1)0%   (0/30)0%   (0/9)
performApply (ILaunchConfigurationWorkingCopy): void 0%   (0/1)0%   (0/128)0%   (0/22)
setDefaults (ILaunchConfigurationWorkingCopy): void 0%   (0/1)0%   (0/1)0%   (0/1)
setVisibleConfigurationOptions (String): void 0%   (0/1)0%   (0/34)0%   (0/8)
     
class MainConfigTab$10%   (0/1)0%   (0/2)0%   (0/14)0%   (0/5)
MainConfigTab$1 (MainConfigTab): void 0%   (0/1)0%   (0/6)0%   (0/2)
modifyText (ModifyEvent): void 0%   (0/1)0%   (0/8)0%   (0/3)
     
class MainConfigTab$20%   (0/1)0%   (0/3)0%   (0/22)0%   (0/8)
MainConfigTab$2 (MainConfigTab): void 0%   (0/1)0%   (0/6)0%   (0/2)
widgetDefaultSelected (SelectionEvent): void 0%   (0/1)0%   (0/8)0%   (0/3)
widgetSelected (SelectionEvent): void 0%   (0/1)0%   (0/8)0%   (0/3)
     
class MainConfigTab$30%   (0/1)0%   (0/3)0%   (0/22)0%   (0/8)
MainConfigTab$3 (MainConfigTab): void 0%   (0/1)0%   (0/6)0%   (0/2)
widgetDefaultSelected (SelectionEvent): void 0%   (0/1)0%   (0/8)0%   (0/3)
widgetSelected (SelectionEvent): void 0%   (0/1)0%   (0/8)0%   (0/3)
     
class MainConfigTab$40%   (0/1)0%   (0/3)0%   (0/22)0%   (0/8)
MainConfigTab$4 (MainConfigTab): void 0%   (0/1)0%   (0/6)0%   (0/2)
widgetDefaultSelected (SelectionEvent): void 0%   (0/1)0%   (0/8)0%   (0/3)
widgetSelected (SelectionEvent): void 0%   (0/1)0%   (0/8)0%   (0/3)
     
class MainConfigTab$ComboBoxListener0%   (0/1)0%   (0/3)0%   (0/23)0%   (0/5)
MainConfigTab$ComboBoxListener (MainConfigTab): void 0%   (0/1)0%   (0/6)0%   (0/1)
MainConfigTab$ComboBoxListener (MainConfigTab, MainConfigTab$ComboBoxListener... 0%   (0/1)0%   (0/4)0%   (0/1)
widgetSelected (SelectionEvent): void 0%   (0/1)0%   (0/13)0%   (0/4)
     
class MainConfigTab$FileSystemButtonSelectionAdapter0%   (0/1)0%   (0/2)0%   (0/25)0%   (0/7)
MainConfigTab$FileSystemButtonSelectionAdapter (MainConfigTab, Text): void 0%   (0/1)0%   (0/9)0%   (0/3)
widgetSelected (SelectionEvent): void 0%   (0/1)0%   (0/16)0%   (0/4)
     
class MainConfigTab$WorkspaceButtonSelectionListener0%   (0/1)0%   (0/2)0%   (0/25)0%   (0/7)
MainConfigTab$WorkspaceButtonSelectionListener (MainConfigTab, Text): void 0%   (0/1)0%   (0/9)0%   (0/3)
widgetSelected (SelectionEvent): void 0%   (0/1)0%   (0/16)0%   (0/4)

1package de.uka.ipd.sdq.pcmsolver.runconfig;
2 
3import java.util.ArrayList;
4 
5import org.eclipse.core.resources.IContainer;
6import org.eclipse.core.runtime.CoreException;
7import org.eclipse.debug.core.ILaunchConfiguration;
8import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
9import org.eclipse.emf.common.ui.dialogs.WorkspaceResourceDialog;
10import org.eclipse.jface.viewers.ViewerFilter;
11import org.eclipse.swt.SWT;
12import org.eclipse.swt.custom.StackLayout;
13import org.eclipse.swt.events.ModifyEvent;
14import org.eclipse.swt.events.ModifyListener;
15import org.eclipse.swt.events.SelectionAdapter;
16import org.eclipse.swt.events.SelectionEvent;
17import org.eclipse.swt.events.SelectionListener;
18import org.eclipse.swt.layout.GridData;
19import org.eclipse.swt.layout.GridLayout;
20import org.eclipse.swt.widgets.Button;
21import org.eclipse.swt.widgets.Combo;
22import org.eclipse.swt.widgets.Composite;
23import org.eclipse.swt.widgets.DirectoryDialog;
24import org.eclipse.swt.widgets.Group;
25import org.eclipse.swt.widgets.Label;
26import org.eclipse.swt.widgets.Text;
27 
28import de.uka.ipd.sdq.workflow.pcm.runconfig.FileNamesInputTab;
29 
30public class MainConfigTab extends FileNamesInputTab {
31 
32        private Text textSamplingDist;
33        private Text textMaxDomain;
34        
35        private Text lqnsConfig1;
36        private Text lqnsConfig2;
37        private Text lqnsConfig3;
38        private Text lqnsConfig4;
39        private Button  lqnsConfigStopOnMessageLoss;
40        private Button  lqnsConfigInfTaskMult;
41        protected Combo comboLqnsOutput;
42                
43        private Text lqsimConfig1;
44        private Text lqsimConfig2;
45        private Text lqsimConfig3;
46        private Button  lqsimConfigStopOnMessageLoss;
47        protected Combo comboLqsimOutput;
48        
49        private Text lqnsConfigPragma;
50        private Text lqnsimConfigPragma;
51        
52        private Group sresConfigGroup; 
53        private Group lqnsConfigGroup; 
54        private Group lqsimConfigGroup;
55 
56        private StackLayout stackLayout;
57        
58        protected Combo comboSolver;
59        private Text textLqnsOutputDir;        
60        private Text textLqsimOutputDir;
61        private Text textSREOutputFile;
62        
63        private Button checkboxUseExpressionAsInput;
64        
65        // Create a listener for GUI modification events:
66        final ModifyListener listener = new ModifyListener() {
67 
68                public void modifyText(ModifyEvent e) {
69                        MainConfigTab.this.setDirty(true);
70                        MainConfigTab.this.updateLaunchConfigurationDialog();
71                }
72        };
73        
74//        private class MainConfigTabListener extends SelectionAdapter implements ModifyListener {
75//                public void modifyText(ModifyEvent e) {
76//                        updateLaunchConfigurationDialog();
77//                        MainConfigTab.this.setDirty(true);
78//                }
79//        }
80 
81        private class ComboBoxListener extends SelectionAdapter implements SelectionListener{
82                @Override
83                public void widgetSelected(SelectionEvent e) {
84                        super.widgetSelected(e);
85                        String selectedText = ((Combo)e.getSource()).getText();
86                        setVisibleConfigurationOptions(selectedText);
87                }
88        }
89 
90        
91        //private MainConfigTabListener listener = new MainConfigTabListener();
92        private ComboBoxListener comboListener = new ComboBoxListener();
93 
94        
95 
96        
97        @Override
98        public void createControl(Composite parent) {
99                Composite container = new Composite(parent, SWT.NONE);
100                setControl(container);
101                container.setLayout(new GridLayout());
102                
103                comboSolver = new Combo (container, SWT.READ_ONLY);
104                comboSolver.setItems (new String [] {
105                                MessageStrings.SRE_SOLVER,
106                                MessageStrings.LQNS_SOLVER,
107                                MessageStrings.LQSIM_SOLVER
108                                });
109                comboSolver.setSize (400, 200);
110                comboSolver.addModifyListener(listener);
111                comboSolver.addSelectionListener(comboListener);
112                
113                Composite innerContainer = new Composite(container, SWT.NONE);
114                stackLayout = new StackLayout();
115                innerContainer.setLayout(stackLayout);
116                innerContainer.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1));
117 
118                
119                sresConfigGroup = createSREWidgets(innerContainer);
120                lqnsConfigGroup = createLQNSWidgets(innerContainer);
121                lqsimConfigGroup = createLQSIMWidgets(innerContainer);
122        }
123 
124        
125        
126        private Group createLQSIMWidgets(Composite container) {
127                
128                final SelectionListener selectionListener = new SelectionListener() {
129 
130                        public void widgetDefaultSelected(SelectionEvent e) {
131                                MainConfigTab.this.setDirty(true);
132                                MainConfigTab.this.updateLaunchConfigurationDialog();
133                        }
134 
135                        public void widgetSelected(SelectionEvent e) {
136                                MainConfigTab.this.setDirty(true);
137                                MainConfigTab.this.updateLaunchConfigurationDialog();
138                        }
139                };
140                
141                final GridLayout analysisGL = new GridLayout();
142                analysisGL.numColumns = 4;
143 
144                final Group group = new Group(container, SWT.NONE);
145                group.setLayout(analysisGL);
146                group.setText("Configuration (see LQSim manual for details or use defaults)");
147                group.setLayoutData(new GridData(500, SWT.DEFAULT));
148 
149                GridData threeColumnGridData = new GridData(SWT.LEFT, SWT.CENTER, true, false);
150                threeColumnGridData.horizontalSpan = 3;
151                
152                Label label1 = new Label(group, SWT.NONE);
153                label1.setText("Run Time (optional):");
154                label1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
155                
156                lqsimConfig1 = new Text(group, SWT.SINGLE | SWT.BORDER);
157                lqsimConfig1.setLayoutData(threeColumnGridData);
158                lqsimConfig1.addModifyListener(listener);
159 
160                Label label2 = new Label(group, SWT.NONE);
161                label2.setText("Blocks (optional):");
162                label2.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
163                
164                lqsimConfig2 = new Text(group, SWT.SINGLE | SWT.BORDER);
165                lqsimConfig2.setLayoutData(threeColumnGridData);
166                lqsimConfig2.addModifyListener(listener);
167 
168                Label label3 = new Label(group, SWT.NONE);
169                label3.setText("Processor Sharing Time Quantum:");
170                label3.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
171                
172                lqsimConfig3 = new Text(group, SWT.SINGLE | SWT.BORDER);
173                lqsimConfig3.setLayoutData(threeColumnGridData);
174                lqsimConfig3.addModifyListener(listener);
175                
176                Label labelStopOnMessageLoss = new Label(group, SWT.NONE);
177                labelStopOnMessageLoss.setText("\"Stop On Message Loss\" Pragma:");
178                labelStopOnMessageLoss.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
179                
180                lqsimConfigStopOnMessageLoss = new Button(group,  SWT.CHECK);
181                lqsimConfigStopOnMessageLoss.setEnabled(true);
182                lqsimConfigStopOnMessageLoss.setText("Stop on message loss");
183                lqsimConfigStopOnMessageLoss.addSelectionListener(selectionListener);
184                lqsimConfigStopOnMessageLoss.setSelection(true);
185                lqsimConfigStopOnMessageLoss.setLayoutData(threeColumnGridData);
186 
187                Label label4 = new Label(group, SWT.NONE);
188                label4.setText("Output Type:");
189                label4.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
190                
191                comboLqsimOutput = new Combo(group, SWT.READ_ONLY);
192                comboLqsimOutput.setItems (new String [] {
193                                MessageStrings.LQN_OUTPUT_HTML,
194                                MessageStrings.LQN_OUTPUT_HUMAN,
195                                MessageStrings.LQN_OUTPUT_XML
196                                });
197                comboLqsimOutput.setSize (400, 200);
198                comboLqsimOutput.setLayoutData(threeColumnGridData);
199                comboLqsimOutput.addModifyListener(listener);
200//                comboLqsimOutput.addSelectionListener(comboListener);
201 
202                Label label5 = new Label(group, SWT.NONE);
203                label5.setText("Output Dir:");
204                label5.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
205                
206                textLqsimOutputDir = new Text(group, SWT.SINGLE | SWT.BORDER);
207                textLqsimOutputDir.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
208                textLqsimOutputDir.addModifyListener(listener);
209 
210                createFolderSelectionButtons(group,textLqsimOutputDir);
211                
212                Label labelPragma = new Label(group, SWT.NONE);
213                labelPragma.setText("Additional Pragmas:");
214                labelPragma.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
215                
216                lqnsimConfigPragma = new Text(group, SWT.SINGLE | SWT.BORDER);
217                lqnsimConfigPragma.setLayoutData(threeColumnGridData);
218                lqnsimConfigPragma.addModifyListener(listener);
219 
220                return group;
221        }
222 
223 
224 
225        private Group createLQNSWidgets(Composite container) {
226                final SelectionListener selectionListener = new SelectionListener() {
227 
228                        public void widgetDefaultSelected(SelectionEvent e) {
229                                MainConfigTab.this.setDirty(true);
230                                MainConfigTab.this.updateLaunchConfigurationDialog();
231                        }
232 
233                        public void widgetSelected(SelectionEvent e) {
234                                MainConfigTab.this.setDirty(true);
235                                MainConfigTab.this.updateLaunchConfigurationDialog();
236                        }
237                };
238                
239                final GridLayout analysisGL = new GridLayout();
240                analysisGL.numColumns = 4;
241 
242                final Group group = new Group(container, SWT.NONE);
243                group.setLayout(analysisGL);
244                group.setText("Configuration (see LQNS manual for details or use defaults)");
245                group.setLayoutData(new GridData(500, SWT.DEFAULT));
246 
247                GridData threeColumnGridData = new GridData(SWT.LEFT, SWT.CENTER, true, false);
248                threeColumnGridData.horizontalSpan = 3;
249 
250                Label label1 = new Label(group, SWT.NONE);
251                label1.setText("Convergence Value:");
252                label1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
253                
254                lqnsConfig1 = new Text(group, SWT.SINGLE | SWT.BORDER);
255                lqnsConfig1.setLayoutData(threeColumnGridData);
256                lqnsConfig1.addModifyListener(listener);
257                
258                Label label2 = new Label(group, SWT.NONE);
259                label2.setText("Iteration Limit:");
260                label2.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
261                
262                lqnsConfig2 = new Text(group, SWT.SINGLE | SWT.BORDER);
263                lqnsConfig2.setLayoutData(threeColumnGridData);
264                lqnsConfig2.addModifyListener(listener);
265                
266                Label label3 = new Label(group, SWT.NONE);
267                label3.setText("Print Interval Intermediate Results:");
268                label3.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
269                
270                lqnsConfig3 = new Text(group, SWT.SINGLE | SWT.BORDER);
271                lqnsConfig3.setLayoutData(threeColumnGridData);
272                lqnsConfig3.addModifyListener(listener);
273                
274                Label label4 = new Label(group, SWT.NONE);
275                label4.setText("Under-relaxation Coefficient:");
276                label4.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
277                
278                lqnsConfig4 = new Text(group, SWT.SINGLE | SWT.BORDER);
279                lqnsConfig4.setLayoutData(threeColumnGridData);
280                lqnsConfig4.addModifyListener(listener);
281                
282                Label labelStopOnMessageLoss = new Label(group, SWT.NONE);
283                labelStopOnMessageLoss.setText("\"Stop On Message Loss\" Pragma:");
284                labelStopOnMessageLoss.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
285                
286                lqnsConfigStopOnMessageLoss = new Button(group,  SWT.CHECK);
287                lqnsConfigStopOnMessageLoss.setEnabled(true);
288                lqnsConfigStopOnMessageLoss.setText("Stop on message loss");
289                lqnsConfigStopOnMessageLoss.addSelectionListener(selectionListener);
290                lqnsConfigStopOnMessageLoss.setSelection(true);
291                lqnsConfigStopOnMessageLoss.setLayoutData(threeColumnGridData);
292                
293                Label labelInfTaskMult = new Label(group, SWT.NONE);
294                labelInfTaskMult.setText("Infinite Task Multiplicity:");
295                labelInfTaskMult.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
296                
297                lqnsConfigInfTaskMult = new Button(group,  SWT.CHECK);
298                lqnsConfigInfTaskMult.setEnabled(true);
299                lqnsConfigInfTaskMult.setText("");
300                lqnsConfigInfTaskMult.addSelectionListener(selectionListener);
301                lqnsConfigInfTaskMult.setSelection(true);
302                lqnsConfigInfTaskMult.setLayoutData(threeColumnGridData);
303                
304                Label label5 = new Label(group, SWT.NONE);
305                label5.setText("Output Type:");
306                label5.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
307                
308                comboLqnsOutput = new Combo(group, SWT.READ_ONLY);
309                comboLqnsOutput.setItems (new String [] {
310                                MessageStrings.LQN_OUTPUT_HTML,
311                                MessageStrings.LQN_OUTPUT_HUMAN,
312                                MessageStrings.LQN_OUTPUT_XML
313                                });
314                comboLqnsOutput.setSize (400, 200);
315                comboLqnsOutput.setLayoutData(threeColumnGridData);
316                comboLqnsOutput.addModifyListener(listener);
317                comboLqnsOutput.addSelectionListener(comboListener);
318                
319                Label label6 = new Label(group, SWT.NONE);
320                label6.setText("Output Dir:");
321                label6.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
322                
323                textLqnsOutputDir = new Text(group, SWT.SINGLE | SWT.BORDER);
324                textLqnsOutputDir.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
325                textLqnsOutputDir.addModifyListener(listener);
326 
327                createFolderSelectionButtons(group,textLqnsOutputDir);
328                
329                Label labelPragma = new Label(group, SWT.NONE);
330                labelPragma.setText("Additional Pragmas:");
331                labelPragma.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
332                
333                lqnsConfigPragma = new Text(group, SWT.SINGLE | SWT.BORDER);
334                lqnsConfigPragma.setLayoutData(threeColumnGridData);
335                lqnsConfigPragma.addModifyListener(listener);
336                
337                return group;
338        }
339 
340 
341 
342        private void createFolderSelectionButtons(final Group group, Text text) {
343                final Button workspaceButton = new Button(group, SWT.NONE);
344                workspaceButton.setText("Workspace...");
345                workspaceButton.addSelectionListener(new WorkspaceButtonSelectionListener(text));
346                
347                final Button fileSystemButton = new Button(group, SWT.NONE);
348                fileSystemButton.setText("File System...");
349                fileSystemButton.addSelectionListener(new FileSystemButtonSelectionAdapter(text));
350        }
351 
352 
353 
354        private Group createSREWidgets(Composite container) {
355                
356                final SelectionListener selectionListener = new SelectionListener() {
357 
358                        public void widgetDefaultSelected(SelectionEvent e) {
359                                MainConfigTab.this.setDirty(true);
360                                MainConfigTab.this.updateLaunchConfigurationDialog();
361                        }
362 
363                        public void widgetSelected(SelectionEvent e) {
364                                MainConfigTab.this.setDirty(true);
365                                MainConfigTab.this.updateLaunchConfigurationDialog();
366                        }
367                };
368                
369                final GridLayout analysisGL = new GridLayout();
370                analysisGL.numColumns = 4;
371                
372                GridData threeColumnGridData = new GridData(SWT.LEFT, SWT.CENTER, true, false);
373                threeColumnGridData.horizontalSpan = 3;
374                
375        
376                final Group group = new Group(container, SWT.NONE);
377                group.setLayout(analysisGL);
378                group.setText("Configuration");
379                group.setLayoutData(new GridData(500, SWT.DEFAULT));
380 
381                Label samplingDist = new Label(group, SWT.NONE);
382                samplingDist.setText("Sampling Distance:");
383                samplingDist.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
384                
385                textSamplingDist = new Text(group, SWT.SINGLE | SWT.BORDER);
386                textSamplingDist.setLayoutData(threeColumnGridData);
387                textSamplingDist.addModifyListener(listener);
388                
389                Label maxDomain = new Label(group, SWT.NONE);
390                maxDomain.setText("Maximum Domain Size:");
391                maxDomain.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
392                
393                textMaxDomain = new Text(group, SWT.SINGLE | SWT.BORDER);
394                textMaxDomain.setLayoutData(threeColumnGridData);
395                textMaxDomain.addModifyListener(listener);
396                
397                Label useExpressionLabel = new Label(group, SWT.NONE);
398                useExpressionLabel.setText("Use of Expression Model File:");
399                useExpressionLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
400                
401                // Create the check box to choose whether Expression model should be read in
402                checkboxUseExpressionAsInput = new Button(group,  SWT.CHECK);
403                checkboxUseExpressionAsInput.setEnabled(true);
404                checkboxUseExpressionAsInput.setText("Use expression file below as input. If not checked, file is used as output file.");
405                checkboxUseExpressionAsInput.addSelectionListener(selectionListener);
406                checkboxUseExpressionAsInput.setLayoutData(threeColumnGridData);
407                checkboxUseExpressionAsInput.setSelection(false);
408                
409                Label label6 = new Label(group, SWT.NONE);
410                label6.setText("Expression Model File:");
411                label6.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
412                
413                textSREOutputFile = new Text(group, SWT.SINGLE | SWT.BORDER);
414                textSREOutputFile.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
415                textSREOutputFile.addModifyListener(listener);
416 
417                //createFolderSelectionButtons(group,textSREOutputFile);
418                //String[] filenameExtensions = {".expression", ".spa"};
419                //this.createFileInputSection(group, modifyListener, "Expression Model File (use as input or output):", filenameExtensions, textSREOutputFile);
420                createFolderSelectionButtons(group,textSREOutputFile);
421                                
422                return group;
423 
424        }
425 
426        @Override
427        public String getName() {
428                return "Solver";
429        }
430 
431        @Override
432        public void initializeFrom(ILaunchConfiguration configuration) {
433                try{
434                        String solverStr = configuration.getAttribute(MessageStrings.SOLVER, 
435                                        MessageStrings.SRE_SOLVER);
436                        String[] items = comboSolver.getItems();
437                        for (int i=0; i<items.length; i++){
438                                String str = items[i];
439                                if (str.equals(solverStr)){
440                                        comboSolver.select(i);
441                                }
442                        }
443                        setVisibleConfigurationOptions(solverStr);
444                } catch(CoreException e){
445                        comboSolver.select(0);
446                }
447                try{
448                        String outputStr = configuration.getAttribute(MessageStrings.LQNS_OUTPUT, 
449                                        MessageStrings.LQN_OUTPUT_HUMAN);
450                        String[] items = comboLqnsOutput.getItems();
451                        for (int i=0; i<items.length; i++){
452                                String str = items[i];
453                                if (str.equals(outputStr)){
454                                        comboLqnsOutput.select(i);
455                                }
456                        }
457                } catch(CoreException e){
458                        comboLqnsOutput.select(0);
459                }
460                try{
461                        String outputStr = configuration.getAttribute(MessageStrings.LQSIM_OUTPUT, 
462                                        MessageStrings.LQN_OUTPUT_HUMAN);
463                        String[] items = comboLqsimOutput.getItems();
464                        for (int i=0; i<items.length; i++){
465                                String str = items[i];
466                                if (str.equals(outputStr)){
467                                        comboLqsimOutput.select(i);
468                                }
469                        }
470                } catch(CoreException e){
471                        comboLqsimOutput.select(0);
472                }
473                try{
474                        textSamplingDist.setText(configuration.getAttribute(MessageStrings.SAMPLING_DIST, "1.0"));
475                } catch(CoreException e){
476                        textSamplingDist.setText("1.0");
477                }
478                try{
479                        textMaxDomain.setText(configuration.getAttribute(MessageStrings.MAX_DOMAIN, "256"));
480                } catch(CoreException e){
481                        textMaxDomain.setText("256");
482                }
483                try{
484                        textSREOutputFile.setText(configuration.getAttribute(MessageStrings.SRE_OUTPUT_FILE, System.getProperty("user.dir")));
485                } catch(CoreException e){
486                        textSREOutputFile.setText(System.getProperty("user.dir"));
487                }
488                
489                
490                try{
491                        lqnsConfig1.setText(configuration.getAttribute(MessageStrings.CONV_VALUE, "0.001"));
492                } catch(CoreException e){
493                        lqnsConfig1.setText("0.001");
494                }
495                try{
496                        lqnsConfig2.setText(configuration.getAttribute(MessageStrings.IT_LIMIT, "50"));
497                } catch(CoreException e){
498                        lqnsConfig2.setText("50");
499                }
500                try{
501                        lqnsConfig3.setText(configuration.getAttribute(MessageStrings.PRINT_INT, "10"));
502                } catch(CoreException e){
503                        lqnsConfig3.setText("10");
504                }
505                try{
506                        lqnsConfig4.setText(configuration.getAttribute(MessageStrings.UNDER_COEFF, "0.5"));
507                } catch(CoreException e){
508                        lqnsConfig4.setText("0.5");
509                }
510                
511                try{
512                        textLqnsOutputDir.setText(configuration.getAttribute(MessageStrings.LQNS_OUTPUT_DIR, System.getProperty("user.dir")));
513                } catch(CoreException e){
514                        textLqnsOutputDir.setText(System.getProperty("user.dir"));
515                }
516                
517                try{
518                        lqnsConfigPragma.setText(configuration.getAttribute(MessageStrings.PRAGMAS, ""));
519                } catch(CoreException e){
520                        lqnsConfigPragma.setText("");
521                }
522                
523                try{
524                        lqsimConfig1.setText(configuration.getAttribute(MessageStrings.RUN_TIME, ""));
525                } catch(CoreException e){
526                        lqsimConfig1.setText("");
527                }
528                try{
529                        lqsimConfig2.setText(configuration.getAttribute(MessageStrings.BLOCKS, ""));
530                } catch(CoreException e){
531                        lqsimConfig2.setText("");
532                }
533                try{
534                        lqsimConfig3.setText(configuration.getAttribute(MessageStrings.PS_QUANTUM, "0.001"));
535                } catch(CoreException e){
536                        lqsimConfig3.setText("0.001");
537                }
538                try{
539                        textLqsimOutputDir.setText(configuration.getAttribute(MessageStrings.LQSIM_OUTPUT_DIR, System.getProperty("user.dir")));
540                } catch(CoreException e){
541                        textLqsimOutputDir.setText(System.getProperty("user.dir"));
542                }
543                
544                try {
545                        this.checkboxUseExpressionAsInput.setSelection(configuration.getAttribute(
546                                        MessageStrings.SRE_IS_USE_INPUT_MODEL, false));
547                } catch (CoreException e) {
548                        this.checkboxUseExpressionAsInput.setSelection(false);
549                }
550                try {
551                        this.lqnsConfigStopOnMessageLoss.setSelection(configuration.getAttribute(
552                                        MessageStrings.STOP_ON_MESSAGE_LOSS_LQNS, true));
553                } catch (CoreException e) {
554                        this.lqnsConfigStopOnMessageLoss.setSelection(true);
555                }
556                try {
557                        this.lqsimConfigStopOnMessageLoss.setSelection(configuration.getAttribute(
558                                        MessageStrings.STOP_ON_MESSAGE_LOSS_LQSIM, true));
559                } catch (CoreException e) {
560                        this.lqsimConfigStopOnMessageLoss.setSelection(true);
561                }
562                
563                try{
564                        lqnsimConfigPragma.setText(configuration.getAttribute(MessageStrings.PRAGMAS, ""));
565                } catch(CoreException e){
566                        lqnsimConfigPragma.setText("");
567                }
568                
569                try {
570                        this.lqnsConfigInfTaskMult.setSelection(configuration.getAttribute(
571                                        MessageStrings.INFINITE_TASK_MULTIPLICITY, true));
572                } catch (CoreException e) {
573                        this.lqnsConfigInfTaskMult.setSelection(true);
574                }
575 
576                updateLaunchConfigurationDialog();
577        }
578 
579        private void setVisibleConfigurationOptions(String solverStr) {
580                if (solverStr.equals("SRES (Stochastic Regular Expression Solver)"))
581                        stackLayout.topControl = sresConfigGroup;
582                else if (solverStr.equals("LQNS (Layered Queueing Network Solver)"))
583                        stackLayout.topControl = lqnsConfigGroup;
584                else if (solverStr.equals("LQSIM (Layered Queueing Simulation)"))
585                        stackLayout.topControl = lqsimConfigGroup;
586                
587                lqsimConfigGroup.getParent().layout();
588        }
589 
590        @Override
591        public void performApply(ILaunchConfigurationWorkingCopy configuration) {
592                configuration.setAttribute(MessageStrings.SOLVER, comboSolver.getText());
593                configuration.setAttribute(MessageStrings.SAMPLING_DIST, textSamplingDist.getText());
594                configuration.setAttribute(MessageStrings.MAX_DOMAIN, Integer.parseInt(textMaxDomain.getText()));
595 
596                configuration.setAttribute(MessageStrings.CONV_VALUE, lqnsConfig1.getText());
597                configuration.setAttribute(MessageStrings.IT_LIMIT, lqnsConfig2.getText());
598                configuration.setAttribute(MessageStrings.PRINT_INT, lqnsConfig3.getText());
599                configuration.setAttribute(MessageStrings.UNDER_COEFF, lqnsConfig4.getText());
600                configuration.setAttribute(MessageStrings.LQNS_OUTPUT, comboLqnsOutput.getText());
601                configuration.setAttribute(MessageStrings.LQSIM_OUTPUT, comboLqsimOutput.getText());
602                
603                configuration.setAttribute(MessageStrings.STOP_ON_MESSAGE_LOSS_LQNS, lqnsConfigStopOnMessageLoss.getSelection());
604                configuration.setAttribute(MessageStrings.STOP_ON_MESSAGE_LOSS_LQSIM, lqsimConfigStopOnMessageLoss.getSelection());
605 
606                configuration.setAttribute(MessageStrings.INFINITE_TASK_MULTIPLICITY, lqnsConfigInfTaskMult.getSelection());
607                
608                configuration.setAttribute(MessageStrings.RUN_TIME, lqsimConfig1.getText());
609                configuration.setAttribute(MessageStrings.BLOCKS, lqsimConfig2.getText());
610                configuration.setAttribute(MessageStrings.PS_QUANTUM, lqsimConfig3.getText());
611                
612                configuration.setAttribute(MessageStrings.PRAGMAS, lqnsimConfigPragma.getText());
613                configuration.setAttribute(MessageStrings.PRAGMAS, lqnsConfigPragma.getText());
614                
615                configuration.setAttribute(MessageStrings.LQNS_OUTPUT_DIR, textLqnsOutputDir.getText());
616                configuration.setAttribute(MessageStrings.LQSIM_OUTPUT_DIR, textLqsimOutputDir.getText());
617                configuration.setAttribute(MessageStrings.SRE_OUTPUT_FILE, textSREOutputFile.getText());
618                
619                configuration.setAttribute(MessageStrings.SRE_IS_USE_INPUT_MODEL, checkboxUseExpressionAsInput.getSelection());
620        }
621 
622        @Override
623        public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
624                // TODO Auto-generated method stub
625 
626        }
627        
628        @Override
629        public boolean isValid(ILaunchConfiguration launchConfig) {
630            setErrorMessage(null);
631            
632            String sampDist = textSamplingDist.getText();
633            if (sampDist.equals("")){
634                    setErrorMessage("Sampling distance is missing!");
635                    return false;
636            }
637            try {        
638                    Double.parseDouble(sampDist);
639            } catch (NumberFormatException e){
640                    setErrorMessage("Sampling distance is not a Double Value!");
641                    return false;
642            }
643            
644            String maxDom = textMaxDomain.getText();
645            if (maxDom.equals("")){
646                    setErrorMessage("Maximum domain size is missing!");
647                    return false;
648            }
649            try {        
650                    Integer.parseInt(maxDom);
651            } catch (NumberFormatException e){
652                    setErrorMessage("Maximum domain is not an Integer Value!");
653                    return false;
654            }
655            
656            String outputDir = textLqnsOutputDir.getText();
657            if(outputDir.equals("")){
658                    setErrorMessage("Output folder must be set!");
659                    return false;
660            }
661            if (outputDir.contains(" ")){
662                    setErrorMessage("Output folder must not contain a space character, as the LQN solvers cannot handle that.");
663                    return false;
664            }
665            return true;
666        }
667 
668        @Override
669        public void activated(ILaunchConfigurationWorkingCopy workingCopy) {
670                // Leave this method empty to prevent unnecessary invocation of
671                // initializeFrom() and multiple resulting invocations of
672                // performApply().
673}
674 
675        @Override
676        public void deactivated(ILaunchConfigurationWorkingCopy workingCopy) {}
677        
678        class FileSystemButtonSelectionAdapter extends SelectionAdapter {
679                
680                private Text field;
681                
682                public FileSystemButtonSelectionAdapter(Text field){
683                        this.field = field;
684                }
685                
686                /* (non-Javadoc)
687                 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
688                 */
689                @Override
690                public void widgetSelected(SelectionEvent e) {
691                        String resultOpenFolderDialog = openFileSystemFolderDialog();
692                        if (!resultOpenFolderDialog.equals(new String(""))) {
693                                field.setText(resultOpenFolderDialog);                        
694                        }
695                }
696        }
697 
698 
699        /** Button SelectionListener - call a WorkspaceResourceDialog */
700        class WorkspaceButtonSelectionListener extends SelectionAdapter {
701 
702                private Text field;
703 
704                public WorkspaceButtonSelectionListener(Text field) {
705                        this.field = field;
706                }
707 
708                @Override
709                public void widgetSelected(SelectionEvent e) {
710                        String resultOpenFolderDialog = openWorkspaceResourceFolderDialog();
711                        if (!resultOpenFolderDialog.equals(new String(""))) {
712                                field.setText(resultOpenFolderDialog);                        
713                        }
714                }
715        }
716        
717        private String openFileSystemFolderDialog(){
718                String folderName = "";
719                
720                DirectoryDialog dirDialog = new DirectoryDialog(getShell(), SWT.OPEN);
721                dirDialog.setText("Select a folder.");
722                
723                if (dirDialog.open() != null) {
724                        folderName = dirDialog.getFilterPath();
725                                
726                }        
727                return folderName;
728        }
729        
730        private String openWorkspaceResourceFolderDialog(){
731                String msg = "Select a folder.";
732                
733                IContainer container = null;
734                IContainer[] containers = WorkspaceResourceDialog.openFolderSelection(getShell(), 
735                                null, msg, false, null, new ArrayList<ViewerFilter>());
736                
737                if (containers.length != 0)
738                        container = containers[0];
739                if (container != null)
740                        return container.getLocation().toOSString();
741                
742                return "";
743        }
744}

[all classes][de.uka.ipd.sdq.pcmsolver.runconfig]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov