Ignore:
Timestamp:
09/24/11 04:17:48 (13 years ago)
Author:
sherbold
Message:

Work on the SWT GUI prototype. The prototype is still incomplete and should not be used.

Location:
trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/GenerateSequencesDialog.java

    r188 r194  
    33import org.eclipse.swt.widgets.Dialog; 
    44import org.eclipse.swt.widgets.Display; 
     5import org.eclipse.swt.widgets.MessageBox; 
    56import org.eclipse.swt.widgets.Shell; 
    67import org.eclipse.swt.widgets.Group; 
     
    1415import org.eclipse.swt.layout.GridData; 
    1516 
     17import de.ugoe.cs.util.console.CommandExecuter; 
     18 
     19import org.eclipse.swt.events.SelectionAdapter; 
     20import org.eclipse.swt.events.SelectionEvent; 
     21 
    1622public class GenerateSequencesDialog extends Dialog { 
    1723 
     24        private String processName; 
     25         
     26        protected Button btnNumberAll; 
     27        protected Button btnLengthAll; 
     28        protected Spinner numberSpinner; 
     29        protected Spinner iterationsSpinner; 
     30        protected Spinner minLengthSpinner; 
     31        protected Spinner maxLengthSpinner; 
     32         
    1833        protected Object result; 
    1934        protected Shell shlGenerateSequences; 
    20         private Text text; 
     35        private Text sequencesNameText; 
    2136        private final FormToolkit formToolkit = new FormToolkit(Display.getDefault()); 
    2237 
     
    5368        private void createContents() { 
    5469                shlGenerateSequences = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); 
    55                 shlGenerateSequences.setSize(201, 248); 
     70                shlGenerateSequences.setSize(201, 303); 
    5671                shlGenerateSequences.setText("Generate Sequences"); 
    5772                shlGenerateSequences.setLayout(new GridLayout(2, false)); 
     
    6277                group.setLayout(new GridLayout(1, false)); 
    6378                 
    64                 text = new Text(group, SWT.BORDER); 
    65                 text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
     79                sequencesNameText = new Text(group, SWT.BORDER); 
     80                sequencesNameText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
    6681                 
    6782                Group grpNumber = new Group(shlGenerateSequences, SWT.NONE); 
     
    7085                grpNumber.setLayout(new GridLayout(2, false)); 
    7186                 
    72                 Spinner spinner = new Spinner(grpNumber, SWT.BORDER); 
    73                 spinner.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
    74                  
    75                 Button btnAll = new Button(grpNumber, SWT.CHECK); 
    76                 btnAll.setText("All"); 
     87                numberSpinner = new Spinner(grpNumber, SWT.BORDER); 
     88                numberSpinner.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
     89                numberSpinner.setMinimum(1); 
     90                numberSpinner.setMaximum(Integer.MAX_VALUE); 
     91                 
     92                btnNumberAll = new Button(grpNumber, SWT.CHECK); 
     93                btnNumberAll.addSelectionListener(new SelectionAdapter() { 
     94                        @Override 
     95                        public void widgetSelected(SelectionEvent e) { 
     96                                numberSpinner.setEnabled(!btnNumberAll.getSelection()); 
     97                                btnLengthAll.setEnabled(!btnNumberAll.getSelection()); 
     98                                iterationsSpinner.setEnabled(!btnNumberAll.getSelection()); 
     99                        } 
     100                }); 
     101                btnNumberAll.setText("All"); 
     102                 
     103                Group grpIterations = new Group(shlGenerateSequences, SWT.NONE); 
     104                grpIterations.setLayout(new GridLayout(1, false)); 
     105                grpIterations.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); 
     106                grpIterations.setText("Iterations");; 
     107                 
     108                iterationsSpinner = new Spinner(grpIterations, SWT.BORDER); 
     109                iterationsSpinner.setMinimum(1); 
     110                iterationsSpinner.setMaximum(Integer.MAX_VALUE); 
     111                iterationsSpinner.setSelection(100000); 
     112                iterationsSpinner.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
    77113                 
    78114                Group grpLength = new Group(shlGenerateSequences, SWT.NONE); 
     
    81117                grpLength.setLayout(new GridLayout(4, false)); 
    82118                 
    83                 Button btnAll_1 = new Button(grpLength, SWT.CHECK); 
    84                 btnAll_1.setText("All"); 
     119                btnLengthAll = new Button(grpLength, SWT.CHECK); 
     120                btnLengthAll.addSelectionListener(new SelectionAdapter() { 
     121                        @Override 
     122                        public void widgetSelected(SelectionEvent e) { 
     123                                minLengthSpinner.setEnabled(!btnLengthAll.getSelection()); 
     124                                maxLengthSpinner.setEnabled(!btnLengthAll.getSelection()); 
     125                        } 
     126                }); 
     127                btnLengthAll.setText("All"); 
    85128                new Label(grpLength, SWT.NONE); 
    86129                new Label(grpLength, SWT.NONE); 
     
    91134                label.setText("Min."); 
    92135                 
    93                 Spinner spinner_2 = new Spinner(grpLength, SWT.BORDER); 
    94                 spinner_2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); 
     136                minLengthSpinner = new Spinner(grpLength, SWT.BORDER); 
     137                minLengthSpinner.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); 
     138                minLengthSpinner.setMinimum(1); 
    95139                 
    96140                Label label_1 = new Label(grpLength, SWT.NONE); 
     
    98142                label_1.setText("Max."); 
    99143                 
    100                 Spinner spinner_1 = new Spinner(grpLength, SWT.BORDER); 
    101                 spinner_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); 
    102                 spinner_1.setToolTipText("0 means no limitations"); 
     144                maxLengthSpinner = new Spinner(grpLength, SWT.BORDER); 
     145                maxLengthSpinner.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); 
     146                maxLengthSpinner.setToolTipText("0 means no limitations"); 
     147                maxLengthSpinner.setMinimum(1); 
    103148                 
    104149                Button btnGenerate = formToolkit.createButton(shlGenerateSequences, "Generate!", SWT.NONE); 
     150                btnGenerate.addSelectionListener(new SelectionAdapter() { 
     151                        @Override 
     152                        public void widgetSelected(SelectionEvent e) { 
     153                                if("".equals(sequencesNameText.getText())) { 
     154                                        MessageBox messageBox = new MessageBox(shlGenerateSequences, SWT.ERROR); 
     155                                        messageBox.setText("Error"); 
     156                                        messageBox.setMessage("Sequences name not defined!"); 
     157                                        messageBox.open(); 
     158                                        return; 
     159                                } 
     160                                String sequencesName = sequencesNameText.getText(); 
     161                                int number = numberSpinner.getSelection(); 
     162                                int minLength = minLengthSpinner.getSelection(); 
     163                                int maxLength = maxLengthSpinner.getSelection(); 
     164                                int maxIter = iterationsSpinner.getSelection(); 
     165                                if( maxIter<=number ) { 
     166                                        maxIter = number; 
     167                                } 
     168                                String command = ""; 
     169                                if( btnNumberAll.getSelection() ) { 
     170                                        if( minLength>maxLength ) { 
     171                                                MessageBox messageBox = new MessageBox(shlGenerateSequences, SWT.ERROR); 
     172                                                messageBox.setText("Error"); 
     173                                                messageBox.setMessage("Min. length must be smaller than or equal to max. length!"); 
     174                                                messageBox.open(); 
     175                                                return; 
     176                                        } 
     177                                        command = "generateFixedLengthSequences " + processName + " " + sequencesName + " " + minLength + " " + maxLength + " true"; 
     178                                } else { 
     179                                        command = "generateRandomSequences " + processName + " " + sequencesName + " " + number + " " + maxIter; 
     180                                        if( !btnLengthAll.getSelection() ) { 
     181                                                if( minLength>maxLength ) { 
     182                                                        MessageBox messageBox = new MessageBox(shlGenerateSequences, SWT.ERROR); 
     183                                                        messageBox.setText("Error"); 
     184                                                        messageBox.setMessage("Min. length must be smaller than or equal to max. length!"); 
     185                                                        messageBox.open(); 
     186                                                        return; 
     187                                                } 
     188                                                command += " " + minLength + " " + maxLength; 
     189                                        } 
     190                                } 
     191                                CommandExecuter.getInstance().exec(command); 
     192                                shlGenerateSequences.dispose(); 
     193                        } 
     194                }); 
    105195                 
    106196                Button btnAbort = formToolkit.createButton(shlGenerateSequences, "Abort", SWT.NONE); 
    107  
     197                btnAbort.addSelectionListener(new SelectionAdapter() { 
     198                        @Override 
     199                        public void widgetSelected(SelectionEvent e) { 
     200                                shlGenerateSequences.dispose(); 
     201                        } 
     202                }); 
     203 
     204        } 
     205         
     206        public void setProcessName(String name) { 
     207                this.processName = name; 
    108208        } 
    109209} 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/ModelPropertiesDialog.java

    r192 r194  
    33import org.eclipse.swt.widgets.Dialog; 
    44import org.eclipse.swt.widgets.Display; 
     5import org.eclipse.swt.widgets.MessageBox; 
    56import org.eclipse.swt.widgets.Shell; 
    67import org.eclipse.swt.widgets.List; 
     
    1314import org.eclipse.swt.layout.FillLayout; 
    1415 
     16import de.ugoe.cs.eventbench.models.FirstOrderMarkovModel; 
     17import de.ugoe.cs.eventbench.models.IStochasticProcess; 
     18import org.eclipse.swt.events.SelectionAdapter; 
     19import org.eclipse.swt.events.SelectionEvent; 
     20 
    1521public class ModelPropertiesDialog extends Dialog { 
    1622 
     23        private IStochasticProcess process; 
     24         
    1725        protected Object result; 
    1826        protected Shell shlModelProperties; 
     
    6371                 
    6472                List list = new List(grpEvents, SWT.BORDER | SWT.V_SCROLL); 
     73                for( String symbol : process.getSymbolStrings() ) { 
     74                        list.add(symbol); 
     75                } 
    6576                 
    6677                Group grpStatistics = new Group(shlModelProperties, SWT.NONE); 
     
    7586                Label label = new Label(grpStatistics, SWT.RIGHT); 
    7687                label.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false, 1, 1)); 
    77                 label.setText("####"); 
     88                label.setText(""+process.getNumSymbols()); 
    7889                 
    7990                Label lblNumTrieLeafs = new Label(grpStatistics, SWT.NONE); 
    8091                lblNumTrieLeafs.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1)); 
    81                 lblNumTrieLeafs.setText("Size (#Trie Leafs)"); 
     92                lblNumTrieLeafs.setText("Size (Flattend FOM)"); 
    8293                 
    8394                Label label_1 = new Label(grpStatistics, SWT.RIGHT); 
    8495                label_1.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false, 1, 1)); 
    85                 label_1.setText("####"); 
     96                label_1.setText(""+process.getNumFOMStates()); 
    8697                 
    8798                Label lblEntropy = new Label(grpStatistics, SWT.NONE); 
     
    89100                lblEntropy.setText("Entropy"); 
    90101                 
    91                 Label label_2 = new Label(grpStatistics, SWT.RIGHT); 
    92                 label_2.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false, 1, 1)); 
     102                final Label label_2 = new Label(grpStatistics, SWT.RIGHT); 
     103                label_2.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1)); 
    93104                label_2.setText("####"); 
    94105                 
    95106                Button btnCalculateEntropy = new Button(shlModelProperties, SWT.NONE); 
     107                btnCalculateEntropy.addSelectionListener(new SelectionAdapter() { 
     108                        @Override 
     109                        public void widgetSelected(SelectionEvent e) { 
     110                                if( process instanceof FirstOrderMarkovModel) { 
     111                                        label_2.setText(""+((FirstOrderMarkovModel) process).calcEntropy()); 
     112                                } else { 
     113                                        MessageBox messageBox = new MessageBox(shlModelProperties, SWT.NONE); 
     114                                        messageBox.setText("Feature Not Available"); 
     115                                        messageBox.setMessage("The feature is currently only available for first-order Markov models."); 
     116                                        messageBox.open(); 
     117                                } 
     118                        } 
     119                }); 
    96120                btnCalculateEntropy.setText("Calculate Entropy"); 
    97121                 
     
    100124 
    101125        } 
     126         
     127        public void setStochasticProcess(IStochasticProcess process) { 
     128                this.process = process; 
     129        } 
    102130} 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/ModelsTabComposite.java

    r192 r194  
    55import org.eclipse.swt.widgets.Button; 
    66import org.eclipse.swt.widgets.List; 
     7import org.eclipse.swt.widgets.MessageBox; 
    78import org.eclipse.swt.layout.GridLayout; 
    89import org.eclipse.swt.layout.GridData; 
    910 
    1011import de.ugoe.cs.eventbench.data.GlobalDataContainer; 
     12import de.ugoe.cs.eventbench.models.FirstOrderMarkovModel; 
     13import de.ugoe.cs.eventbench.models.IDotCompatible; 
     14import de.ugoe.cs.eventbench.models.IStochasticProcess; 
     15import de.ugoe.cs.util.console.CommandExecuter; 
     16 
    1117import org.eclipse.swt.events.SelectionAdapter; 
    1218import org.eclipse.swt.events.SelectionEvent; 
     
    2935                setLayout(new GridLayout(5, false)); 
    3036                 
    31                 modelList = new List(this, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI); 
     37                modelList = new List(this, SWT.BORDER | SWT.V_SCROLL); 
    3238                modelList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1)); 
    3339                 
    3440                Button btnShow = new Button(this, SWT.NONE); 
     41                btnShow.addSelectionListener(new SelectionAdapter() { 
     42                        @Override 
     43                        public void widgetSelected(SelectionEvent e) { 
     44                                String[] selectedStrings = modelList.getSelection(); 
     45                                if( selectedStrings.length==0 ) { 
     46                                        SWTHelpers.noSelectionError(getShell()); 
     47                                        return; 
     48                                } 
     49                                IStochasticProcess process = (IStochasticProcess) GlobalDataContainer.getInstance().getData(selectedStrings[0]); 
     50                                if( process instanceof FirstOrderMarkovModel ) { 
     51                                        String command = "showMarkovModel " + selectedStrings[0]; 
     52                                        CommandExecuter.getInstance().exec(command); 
     53                                } else { 
     54                                        MessageBox messageBox = new MessageBox(getShell(), SWT.NONE); 
     55                                        messageBox.setText("Feature Not Available"); 
     56                                        messageBox.setMessage("The feature is currently only available for first-order Markov models."); 
     57                                        messageBox.open(); 
     58                                } 
     59                        } 
     60                }); 
    3561                btnShow.setText("Visualize"); 
    3662                 
     
    4975                 
    5076                Button btnGenSequences = new Button(this, SWT.NONE); 
     77                btnGenSequences.addSelectionListener(new SelectionAdapter() { 
     78                        @Override 
     79                        public void widgetSelected(SelectionEvent e) { 
     80                                String[] selectedStrings = modelList.getSelection(); 
     81                                if( selectedStrings.length==0 ) { 
     82                                        SWTHelpers.noSelectionError(getShell()); 
     83                                        return; 
     84                                } 
     85                                GenerateSequencesDialog generateSequencesDialog = new GenerateSequencesDialog(getShell(), SWT.NONE); 
     86                                generateSequencesDialog.setProcessName(selectedStrings[0]); 
     87                                generateSequencesDialog.open(); 
     88                        } 
     89                }); 
    5190                btnGenSequences.setText("Gen. Sequences"); 
    5291                 
    5392                Button btnProperties = new Button(this, SWT.NONE); 
     93                btnProperties.addSelectionListener(new SelectionAdapter() { 
     94                        @Override 
     95                        public void widgetSelected(SelectionEvent e) { 
     96                                String[] selectedStrings = modelList.getSelection(); 
     97                                if( selectedStrings.length==0 ) { 
     98                                        SWTHelpers.noSelectionError(getShell()); 
     99                                        return; 
     100                                } 
     101                                IStochasticProcess process = (IStochasticProcess) GlobalDataContainer.getInstance().getData(selectedStrings[0]); 
     102                                ModelPropertiesDialog modelPropertiesDialog = new ModelPropertiesDialog(getShell(), SWT.NONE); 
     103                                modelPropertiesDialog.setStochasticProcess(process); 
     104                                modelPropertiesDialog.open(); 
     105                        } 
     106                }); 
    54107                btnProperties.setText("Properties"); 
    55108                 
    56109                Button btnCreateDot = new Button(this, SWT.NONE); 
     110                btnCreateDot.addSelectionListener(new SelectionAdapter() { 
     111                        @Override 
     112                        public void widgetSelected(SelectionEvent e) { 
     113                                String[] selectedStrings = modelList.getSelection(); 
     114                                if( selectedStrings.length==0 ) { 
     115                                        SWTHelpers.noSelectionError(getShell()); 
     116                                        return; 
     117                                } 
     118                                IStochasticProcess process = (IStochasticProcess) GlobalDataContainer.getInstance().getData(selectedStrings[0]); 
     119                                String command = ""; 
     120                                if( process instanceof IDotCompatible ) { 
     121                                        command = "printDot "; 
     122                                } else { 
     123                                        command = "printTrieDot "; 
     124                                } 
     125                                command += selectedStrings[0]; 
     126                                CommandExecuter.getInstance().exec(command); 
     127                        } 
     128                }); 
    57129                btnCreateDot.setText("Create DOT"); 
    58130        } 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/TrainModelDialog.java

    r192 r194  
    1717 
    1818import de.ugoe.cs.util.console.CommandExecuter; 
    19 import de.ugoe.cs.util.console.Console; 
    2019 
    2120public class TrainModelDialog extends Dialog { 
     
    172171                                        messageBox.setText("Error"); 
    173172                                        messageBox.setMessage("No modelname defined!"); 
     173                                        messageBox.open(); 
    174174                                        return; 
    175175                                } 
     
    189189                                                messageBox.setText("Error"); 
    190190                                                messageBox.setMessage("Min. Order must be smaller than or equal to max. order!"); 
     191                                                messageBox.open(); 
    191192                                                return; 
    192193                                        } 
     
    196197                                                messageBox.setText("Error"); 
    197198                                                messageBox.setMessage("Escape probability must be in [0,1]!"); 
     199                                                messageBox.open(); 
    198200                                                return; 
    199201                                        } 
Note: See TracChangeset for help on using the changeset viewer.