Changeset 192


Ignore:
Timestamp:
09/24/11 02:44:33 (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:
6 added
3 edited
2 moved

Legend:

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

    r188 r192  
    1111import org.eclipse.swt.layout.GridData; 
    1212 
    13 public class CommandHistory extends Dialog { 
     13public class CommandHistoryDialog extends Dialog { 
    1414 
    1515        protected Object result; 
     
    2121         * @param style 
    2222         */ 
    23         public CommandHistory(Shell parent, int style) { 
     23        public CommandHistoryDialog(Shell parent, int style) { 
    2424                super(parent, style); 
    2525                setText("SWT Dialog"); 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/MainWindow.java

    r188 r192  
    11package de.ugoe.cs.eventbench.swt; 
    2  
    3 import java.util.Collection; 
    42 
    53import org.eclipse.swt.widgets.Display; 
     
    97import org.eclipse.swt.widgets.MenuItem; 
    108import org.eclipse.swt.widgets.Text; 
    11 import org.eclipse.swt.widgets.Label; 
    129import org.eclipse.swt.widgets.TabFolder; 
    1310import org.eclipse.swt.widgets.TabItem; 
    14 import org.eclipse.swt.widgets.Composite; 
    15 import org.eclipse.swt.widgets.Button; 
    16 import org.eclipse.swt.widgets.List; 
    1711import org.eclipse.swt.layout.GridLayout; 
    1812import org.eclipse.swt.layout.GridData; 
     
    2014import org.eclipse.swt.events.SelectionEvent; 
    2115 
    22 import de.ugoe.cs.eventbench.data.Event; 
    23 import de.ugoe.cs.eventbench.data.GlobalDataContainer; 
    24 import de.ugoe.cs.util.console.CommandExecuter; 
    25 import de.ugoe.cs.util.console.TextConsole; 
    26 import org.eclipse.swt.events.KeyAdapter; 
    27 import org.eclipse.swt.events.KeyEvent; 
    28  
    2916public class MainWindow { 
    3017 
    3118        protected Shell shell; 
    32         private Text textCommand; 
    33         private Text textConsoleOutput; 
    34         private List list; 
     19         
     20        protected TabItem consoleTab; 
     21        protected TabItem sequencesTab; 
     22        protected TabItem modelsTab; 
     23        protected TabItem dataTab; 
     24        protected ConsoleTabComposite consoleTabComposite; 
     25        protected SequencesTabComposite sequencesTabComposite; 
     26        protected ModelsTabComposite modelsTabComposite; 
     27        protected DataTabComposite dataTabComposite; 
    3528 
    36         /** 
    37          * Launch the application. 
    38          * @param args 
    39          */ 
    40         public static void main(String[] args) { 
    41                 // TODO this main method needs to be removed/remodeled when merging with other project 
    42                 try { 
    43                         CommandExecuter.getInstance().addCommandPackage( 
    44                                         "de.ugoe.cs.eventbench.commands"); 
    45                         CommandExecuter.getInstance().addCommandPackage( 
    46                                         "de.ugoe.cs.eventbench.windows.commands"); 
    47                         CommandExecuter.getInstance().addCommandPackage( 
    48                                         "de.ugoe.cs.eventbench.web.commands"); 
    49                         new TextConsole(); 
    50                          
    51                         MainWindow window = new MainWindow(); 
    52                         window.open(); 
    53                 } catch (Exception e) { 
    54                         e.printStackTrace(); 
    55                 } 
    56         } 
    5729 
    5830        /** 
    5931         * Open the window. 
     32         * @wbp.parser.entryPoint 
    6033         */ 
    6134        public void open() { 
    6235                Display display = Display.getDefault(); 
    6336                createContents(); 
    64                 new SWTConsole(textConsoleOutput); 
     37                new SWTConsole(getTextConsoleOutput()); 
    6538                shell.open(); 
    6639                shell.layout(); 
     
    11992                 
    12093                TabFolder tabFolder = new TabFolder(shell, SWT.NONE); 
    121                 tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
    122                  
    123                 TabItem tbtmConsoleMode = new TabItem(tabFolder, SWT.NONE); 
    124                 tbtmConsoleMode.setText("Console"); 
    125                  
    126                 Composite composite = new Composite(tabFolder, SWT.NO_BACKGROUND); 
    127                 tbtmConsoleMode.setControl(composite); 
    128                 composite.setLayout(new GridLayout(3, false)); 
    129                  
    130                 Label lblCommand = new Label(composite, SWT.NONE); 
    131                 lblCommand.setText("Command:"); 
    132                  
    133                 textCommand = new Text(composite, SWT.BORDER); 
    134                 textCommand.addKeyListener(new KeyAdapter() { 
     94                tabFolder.addSelectionListener(new SelectionAdapter() { 
    13595                        @Override 
    136                         public void keyReleased(KeyEvent e) { 
    137                                 if( e.keyCode==SWT.CR ) { 
    138                                         String command = textCommand.getText().trim(); 
    139                                         CommandExecuter.getInstance().exec(command); 
     96                        public void widgetSelected(SelectionEvent e) { 
     97                                if( e.item == sequencesTab ) { 
     98                                        sequencesTabComposite.updateSequenceList(); 
     99                                } 
     100                                else if(e.item == modelsTab ) { 
     101                                        modelsTabComposite.updateModelList(); 
     102                                } 
     103                                else if(e.item == dataTab) { 
     104                                        dataTabComposite.updateDataList(); 
    140105                                } 
    141106                        } 
    142107                }); 
    143                 GridData gd_textCommand = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); 
    144                 gd_textCommand.widthHint = 304; 
    145                 textCommand.setLayoutData(gd_textCommand); 
     108                tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
    146109                 
    147                 Button btnEnter = new Button(composite, SWT.NONE); 
    148                 btnEnter.addSelectionListener(new SelectionAdapter() { 
    149                         @Override 
    150                         public void widgetSelected(SelectionEvent e) { 
    151                                 // Event handler for executing commands 
    152                                 String command = textCommand.getText().trim(); 
    153                                 CommandExecuter.getInstance().exec(command); 
    154                         } 
    155                 }); 
    156                 btnEnter.setText("Enter"); 
     110                consoleTab = new TabItem(tabFolder, SWT.NONE); 
     111                consoleTab.setText("Console"); 
    157112                 
    158                 textConsoleOutput = new Text(composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CANCEL); 
    159                 GridData gd_textConsoleOutput = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1); 
    160                 gd_textConsoleOutput.heightHint = 102; 
    161                 gd_textConsoleOutput.widthHint = 456; 
    162                 textConsoleOutput.setLayoutData(gd_textConsoleOutput); 
     113                consoleTabComposite = new ConsoleTabComposite(tabFolder, SWT.NO_BACKGROUND); 
     114                consoleTab.setControl(consoleTabComposite); 
    163115                 
    164                 TabItem tbtmSequences = new TabItem(tabFolder, SWT.NONE); 
    165                 tbtmSequences.setText("Sequences"); 
     116                sequencesTab = new TabItem(tabFolder, SWT.NONE); 
     117                sequencesTab.setText("Sequences"); 
    166118                 
    167                 Composite composite_2 = new Composite(tabFolder, SWT.NO_BACKGROUND); 
    168                 tbtmSequences.setControl(composite_2); 
    169                 composite_2.setLayout(new GridLayout(5, false)); 
     119                sequencesTabComposite = new SequencesTabComposite(tabFolder, SWT.NO_BACKGROUND); 
     120                sequencesTab.setControl(sequencesTabComposite); 
    170121                 
    171                 list = new List(composite_2, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI); 
    172                 list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1)); 
    173                 list.setItems(new String[] {}); 
    174                 for( String sequencesName : GlobalDataContainer.getInstance().getAllSequencesNames() ) { 
    175                         list.add(sequencesName); 
    176                 } 
     122                modelsTab = new TabItem(tabFolder, SWT.NONE); 
     123                modelsTab.setText("Models"); 
    177124                 
    178                 Button btnEdit = new Button(composite_2, SWT.NONE); 
    179                 btnEdit.addSelectionListener(new SelectionAdapter() { 
    180                         @Override 
    181                         public void widgetSelected(SelectionEvent e) { 
    182                                 // TODO edit sequences event handler 
    183                         } 
    184                 }); 
    185                 btnEdit.setText("Edit"); 
     125                modelsTabComposite = new ModelsTabComposite(tabFolder, SWT.NO_BACKGROUND); 
     126                modelsTab.setControl(modelsTabComposite); 
     127                                 
     128                dataTab = new TabItem(tabFolder, SWT.NONE); 
     129                dataTab.setText("Data"); 
    186130                 
    187                 Button btnDelete = new Button(composite_2, SWT.NONE); 
    188                 btnDelete.addSelectionListener(new SelectionAdapter() { 
    189                         @Override 
    190                         public void widgetSelected(SelectionEvent e) { 
    191                                 String[] selectedSequences = list.getSelection(); 
    192                                 for( String selected : selectedSequences) { 
    193                                         GlobalDataContainer.getInstance().removeData(selected); 
    194                                 } 
    195                         } 
    196                 }); 
    197                 btnDelete.setText("Delete"); 
     131                dataTabComposite = new DataTabComposite(tabFolder, SWT.NO_BACKGROUND); 
     132                dataTab.setControl(dataTabComposite); 
    198133                 
    199                 Button btnReplay = new Button(composite_2, SWT.NONE); 
    200                 btnReplay.setText("Replay"); 
    201                  
    202                 Button btnTrainModel = new Button(composite_2, SWT.NONE); 
    203                 btnTrainModel.setText("Train Model"); 
    204                  
    205                 Button btnParse = new Button(composite_2, SWT.NONE); 
    206                 btnParse.setText("Parse"); 
    207                  
    208                 TabItem tbtmModels = new TabItem(tabFolder, SWT.NONE); 
    209                 tbtmModels.setText("Models"); 
    210                  
    211                 Composite composite_1 = new Composite(tabFolder, SWT.NO_BACKGROUND); 
    212                 tbtmModels.setControl(composite_1); 
    213                 composite_1.setLayout(new GridLayout(5, false)); 
    214                  
    215                 List list_1 = new List(composite_1, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI); 
    216                 list_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1)); 
    217                  
    218                 Button btnShow = new Button(composite_1, SWT.NONE); 
    219                 btnShow.setText("Visualize"); 
    220                  
    221                 Button btnDelete_1 = new Button(composite_1, SWT.NONE); 
    222                 btnDelete_1.setText("Delete"); 
    223                  
    224                 Button btnGenSequences = new Button(composite_1, SWT.NONE); 
    225                 btnGenSequences.setText("Gen. Sequences"); 
    226                  
    227                 Button btnProperties = new Button(composite_1, SWT.NONE); 
    228                 btnProperties.setText("Properties"); 
    229                  
    230                 Button btnCreateDot = new Button(composite_1, SWT.NONE); 
    231                 btnCreateDot.setText("Create DOT"); 
    232                  
    233                 TabItem tbtmData = new TabItem(tabFolder, SWT.NONE); 
    234                 tbtmData.setText("Data"); 
    235                  
    236                 Composite composite_3 = new Composite(tabFolder, SWT.NO_BACKGROUND); 
    237                 tbtmData.setControl(composite_3); 
    238                 composite_3.setLayout(new GridLayout(3, false)); 
    239                  
    240                 List list_2 = new List(composite_3, SWT.BORDER | SWT.V_SCROLL); 
    241                 list_2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1)); 
    242                  
    243                 Button btnLoad = new Button(composite_3, SWT.NONE); 
    244                 btnLoad.setText("Load"); 
    245                  
    246                 Button btnSave = new Button(composite_3, SWT.NONE); 
    247                 btnSave.setText("Save"); 
    248                  
    249                 Button btnDelete_2 = new Button(composite_3, SWT.NONE); 
    250                 btnDelete_2.setText("Delete"); 
    251  
    252134        } 
    253135        public Text getTextConsoleOutput() { 
    254                 return textConsoleOutput; 
     136                return consoleTabComposite.textConsoleOutput; 
    255137        } 
    256138} 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/ModelPropertiesDialog.java

    r188 r192  
    1313import org.eclipse.swt.layout.FillLayout; 
    1414 
    15 public class ModelProperties extends Dialog { 
     15public class ModelPropertiesDialog extends Dialog { 
    1616 
    1717        protected Object result; 
     
    2323         * @param style 
    2424         */ 
    25         public ModelProperties(Shell parent, int style) { 
     25        public ModelPropertiesDialog(Shell parent, int style) { 
    2626                super(parent, style); 
    2727                setText("SWT Dialog"); 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/SWTConsole.java

    r188 r192  
    33import org.eclipse.swt.widgets.Text; 
    44 
     5import de.ugoe.cs.util.StringTools; 
    56import de.ugoe.cs.util.console.Console; 
    67import de.ugoe.cs.util.console.ConsoleObserver; 
     
    3839        @Override 
    3940        public void commandNotification(String command) { 
    40                 output.append("> " + command);   
     41                output.append("> " + command + StringTools.ENDLINE);     
    4142        } 
    4243} 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/TrainModelDialog.java

    r188 r192  
    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.Button; 
     
    1213import org.eclipse.swt.layout.GridLayout; 
    1314import org.eclipse.swt.layout.GridData; 
     15import org.eclipse.swt.events.SelectionAdapter; 
     16import org.eclipse.swt.events.SelectionEvent; 
     17 
     18import de.ugoe.cs.util.console.CommandExecuter; 
     19import de.ugoe.cs.util.console.Console; 
    1420 
    1521public class TrainModelDialog extends Dialog { 
     
    1723        protected Object result; 
    1824        protected Shell shlTrainUsageModel; 
    19         private Text text_1; 
     25         
     26        private Button btnFirstorderMarkovModel; 
     27        private Button btnHighorderMarkovModel; 
     28        private Button btnPredictionByPartial; 
     29        private Button btnDeterministicFiniteAutomaton; 
     30         
     31        private Spinner minOrderSpinner; 
     32        private Spinner maxOrderSpinner; 
     33        private Text modelnameText; 
     34         
     35        private String[] sequenceNames; 
     36        private Text probEscapeText; 
     37        private Label lblEscapeProbability; 
    2038 
    2139        /** 
     
    5169        private void createContents() { 
    5270                shlTrainUsageModel = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.MIN | SWT.APPLICATION_MODAL); 
    53                 shlTrainUsageModel.setSize(219, 279); 
     71                shlTrainUsageModel.setSize(219, 330); 
    5472                shlTrainUsageModel.setText("Train Usage Model"); 
    5573                shlTrainUsageModel.setLayout(new GridLayout(2, false)); 
     
    6078                grpGeneralInformation.setLayout(new GridLayout(1, false)); 
    6179                 
    62                 text_1 = new Text(grpGeneralInformation, SWT.BORDER); 
    63                 text_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1)); 
     80                modelnameText = new Text(grpGeneralInformation, SWT.BORDER); 
     81                modelnameText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1)); 
    6482                 
    6583                Group grpType = new Group(shlTrainUsageModel, SWT.NONE); 
    6684                grpType.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1)); 
    6785                grpType.setText("Type"); 
    68                 grpType.setLayout(new GridLayout(1, false)); 
    69                  
    70                 Button btnFirstorderMarkovModel = new Button(grpType, SWT.RADIO); 
    71                 btnFirstorderMarkovModel.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); 
     86                grpType.setLayout(new GridLayout(2, false)); 
     87                 
     88                btnFirstorderMarkovModel = new Button(grpType, SWT.RADIO); 
     89                btnFirstorderMarkovModel.addSelectionListener(new SelectionAdapter() { 
     90                        @Override 
     91                        public void widgetSelected(SelectionEvent e) { 
     92                                minOrderSpinner.setEnabled(false); 
     93                                maxOrderSpinner.setEnabled(false); 
     94                                probEscapeText.setEnabled(false); 
     95                        } 
     96                }); 
     97                btnFirstorderMarkovModel.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 2, 1)); 
    7298                btnFirstorderMarkovModel.setText("First-Order Markov Model"); 
    73                  
    74                 Button btnHighorderMarkovModel = new Button(grpType, SWT.RADIO); 
    75                 btnHighorderMarkovModel.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); 
     99                btnFirstorderMarkovModel.setSelection(true); 
     100                 
     101                btnHighorderMarkovModel = new Button(grpType, SWT.RADIO); 
     102                btnHighorderMarkovModel.addSelectionListener(new SelectionAdapter() { 
     103                        @Override 
     104                        public void widgetSelected(SelectionEvent e) { 
     105                                minOrderSpinner.setEnabled(false); 
     106                                maxOrderSpinner.setEnabled(true); 
     107                                probEscapeText.setEnabled(false); 
     108                        } 
     109                }); 
     110                btnHighorderMarkovModel.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 2, 1)); 
    76111                btnHighorderMarkovModel.setText("High-Order Markov Model"); 
    77112                 
    78                 Button btnPredictionByPartial = new Button(grpType, SWT.RADIO); 
    79                 btnPredictionByPartial.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); 
     113                btnPredictionByPartial = new Button(grpType, SWT.RADIO); 
     114                btnPredictionByPartial.addSelectionListener(new SelectionAdapter() { 
     115                        @Override 
     116                        public void widgetSelected(SelectionEvent e) { 
     117                                minOrderSpinner.setEnabled(true); 
     118                                maxOrderSpinner.setEnabled(true); 
     119                                probEscapeText.setEnabled(true); 
     120                        } 
     121                }); 
     122                btnPredictionByPartial.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, true, false, 2, 1)); 
    80123                btnPredictionByPartial.setText("Prediction by Partial Match"); 
    81124                 
    82                 Button btnDeterministicFiniteAutomaton = new Button(grpType, SWT.RADIO); 
    83                 btnDeterministicFiniteAutomaton.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1)); 
     125                lblEscapeProbability = new Label(grpType, SWT.NONE); 
     126                lblEscapeProbability.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 1, 1)); 
     127                lblEscapeProbability.setText("Escape Probability:"); 
     128                 
     129                probEscapeText = new Text(grpType, SWT.BORDER); 
     130                probEscapeText.setText("0.1"); 
     131                probEscapeText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); 
     132                probEscapeText.setEnabled(false); 
     133                 
     134                btnDeterministicFiniteAutomaton = new Button(grpType, SWT.RADIO); 
     135                btnDeterministicFiniteAutomaton.addSelectionListener(new SelectionAdapter() { 
     136                        @Override 
     137                        public void widgetSelected(SelectionEvent e) { 
     138                                minOrderSpinner.setEnabled(false); 
     139                                maxOrderSpinner.setEnabled(false); 
     140                                probEscapeText.setEnabled(false); 
     141                        } 
     142                }); 
     143                btnDeterministicFiniteAutomaton.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 2, 1)); 
    84144                btnDeterministicFiniteAutomaton.setText("Deterministic Finite Automaton"); 
    85145                 
     
    92152                lblMin.setText("Min."); 
    93153                 
    94                 Spinner spinner_1 = new Spinner(grpModelProperties, SWT.BORDER); 
     154                minOrderSpinner = new Spinner(grpModelProperties, SWT.BORDER); 
     155                minOrderSpinner.setEnabled(false); 
    95156                 
    96157                Label lblMax = new Label(grpModelProperties, SWT.NONE); 
    97158                lblMax.setText("Max."); 
    98159                 
    99                 Spinner spinner = new Spinner(grpModelProperties, SWT.BORDER); 
    100                 new Label(grpModelProperties, SWT.NONE); 
    101                 new Label(grpModelProperties, SWT.NONE); 
    102                 new Label(grpModelProperties, SWT.NONE); 
    103                 new Label(grpModelProperties, SWT.NONE); 
     160                maxOrderSpinner = new Spinner(grpModelProperties, SWT.BORDER); 
     161                maxOrderSpinner.setEnabled(false); 
     162                maxOrderSpinner.setMinimum(2); 
    104163                 
    105164                Button btnTrain = new Button(shlTrainUsageModel, SWT.NONE); 
     165                btnTrain.addSelectionListener(new SelectionAdapter() { 
     166                        @Override 
     167                        public void widgetSelected(SelectionEvent e) { 
     168                                String command = ""; 
     169                                String modelname = modelnameText.getText(); 
     170                                if( modelname.equals("")) { 
     171                                        MessageBox messageBox = new MessageBox(shlTrainUsageModel, SWT.ERROR); 
     172                                        messageBox.setText("Error"); 
     173                                        messageBox.setMessage("No modelname defined!"); 
     174                                        return; 
     175                                } 
     176                                if( btnFirstorderMarkovModel.getSelection() ) { 
     177                                        command = "trainMarkovModel " + modelname + " " + sequenceNames[0]; 
     178                                         
     179                                } 
     180                                else if( btnHighorderMarkovModel.getSelection() ) { 
     181                                        int modelOrder = maxOrderSpinner.getSelection(); 
     182                                        command = "trainMarkovModel " + modelname + " " + sequenceNames[0] + " " + modelOrder; 
     183                                } 
     184                                else if( btnPredictionByPartial.getSelection() ) { 
     185                                        int minOrder = minOrderSpinner.getSelection(); 
     186                                        int maxOrder = maxOrderSpinner.getSelection(); 
     187                                        if( minOrder>maxOrder ) { 
     188                                                MessageBox messageBox = new MessageBox(shlTrainUsageModel, SWT.ERROR); 
     189                                                messageBox.setText("Error"); 
     190                                                messageBox.setMessage("Min. Order must be smaller than or equal to max. order!"); 
     191                                                return; 
     192                                        } 
     193                                        double probEscape = Double.parseDouble(probEscapeText.getText()); 
     194                                        if( probEscape<0.0 || probEscape>1.0) { 
     195                                                MessageBox messageBox = new MessageBox(shlTrainUsageModel, SWT.ERROR); 
     196                                                messageBox.setText("Error"); 
     197                                                messageBox.setMessage("Escape probability must be in [0,1]!"); 
     198                                                return; 
     199                                        } 
     200                                        command = "trainPPM " + modelname + " " + sequenceNames[0] + " " + probEscape + " " + maxOrder + " " + minOrder; 
     201                                } 
     202                                else if( btnDeterministicFiniteAutomaton.getSelection() ) { 
     203                                        command = "trainDFA " + modelname + " " + sequenceNames[0]; 
     204                                } 
     205                                CommandExecuter.getInstance().exec(command); 
     206                                for( int i=1; i<sequenceNames.length; i++ ) { 
     207                                        command = "updateModel " + sequenceNames[i]; 
     208                                        CommandExecuter.getInstance().exec(command); 
     209                                } 
     210                                shlTrainUsageModel.dispose(); 
     211                        } 
     212                }); 
    106213                btnTrain.setText("Train!"); 
    107214                 
    108215                Button btnAbort = new Button(shlTrainUsageModel, SWT.NONE); 
     216                btnAbort.addSelectionListener(new SelectionAdapter() { 
     217                        @Override 
     218                        public void widgetSelected(SelectionEvent e) { 
     219                                shlTrainUsageModel.dispose(); 
     220                        } 
     221                }); 
    109222                btnAbort.setText("Abort"); 
    110223 
    111224        } 
     225         
     226        public void setSequenceNames(String[] sequenceNames) { 
     227                this.sequenceNames = sequenceNames; 
     228        } 
    112229} 
Note: See TracChangeset for help on using the changeset viewer.