Changeset 174


Ignore:
Timestamp:
09/09/11 21:38:00 (13 years ago)
Author:
jhall
Message:

Code refactoring, some new methods and comments added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swing/DlgSequenceDetails.java

    r158 r174  
    2828import javax.swing.border.EtchedBorder; 
    2929 
     30/** 
     31 * <p> 
     32 * This class provides a dialog to have a look on the events of the sequence, 
     33 * that was selected in {@link DlgSequences}. Furthermore, assertions can be 
     34 * added. 
     35 * </p> 
     36 *  
     37 * @author Jeffrey Hall 
     38 * @version 1.0 
     39 */ 
    3040public class DlgSequenceDetails { 
    3141 
     
    3444 
    3545        /** 
    36          * Launch the application, the index of the sequence to work on is stored in 
    37          * sequenceIndex 
     46         * <p> 
     47         * Create the dialog. 
     48         * </p> 
     49         *  
     50         * @param parent 
     51         *            the parent window of type {@link DlgSequences}. 
     52         * @param events 
     53         *            list of events that is to be displayed. 
     54         */ 
     55        public DlgSequenceDetails(JFrame parent, final List<Event<?>> events) { 
     56                frmParent = parent; 
     57                initialize(events); 
     58        } 
     59 
     60        /** 
     61         * <p> 
     62         * Launch the dialog. 
     63         * </p> 
     64         *  
     65         * @param parent 
     66         *            the parent window of type {@link DlgSequences}. 
     67         * @param events 
     68         *            list of events that is to be displayed. 
    3869         */ 
    3970        public void showDialog(JFrame parent, final List<Event<?>> events) { 
     
    5485 
    5586        /** 
    56          * Create the application. 
    57          */ 
    58         public DlgSequenceDetails(JFrame parent, final List<Event<?>> events) { 
    59                 frmParent = parent; 
    60                 initialize(events); 
    61         } 
    62  
    63         /** 
     87         * <p> 
    6488         * Initialize the contents of the frame. 
     89         * </p> 
     90         *  
     91         * @param events 
     92         *            list of events that is to be displayed. 
    6593         */ 
    6694        private void initialize(final List<Event<?>> events) { 
     
    7098                final JList listEvents = new JList(modelListEvents); 
    7199                final JList listTargets = new JList(modelListTargets); 
    72                 // *** 
    73  
    74                 // JFrame: frmEvents 
     100 
    75101                frmEvents = new JFrame(); 
    76                 frmEvents.setResizable(false); 
    77102                frmEvents.setTitle("Sequence details"); 
    78103                frmEvents.setBounds(100, 100, 731, 589); 
     
    80105                frmEvents.getContentPane().setLayout(null); 
    81106 
     107                // before closing the window, set parent to visible 
    82108                frmEvents.addWindowListener(new WindowAdapter() { 
    83109                        public void windowClosing(WindowEvent arg0) { 
     
    86112                        } 
    87113                }); 
    88  
    89                 updateLists(events, modelListEvents, modelListTargets); 
    90114 
    91115                JPanel panel = new JPanel(); 
     
    94118                frmEvents.getContentPane().add(panel); 
    95119                panel.setLayout(null); 
     120 
    96121                final JButton btnInsertBefore = new JButton("Insert before"); 
     122                btnInsertBefore.setEnabled(false); 
    97123                btnInsertBefore.setBounds(10, 11, 135, 31); 
    98124                panel.add(btnInsertBefore); 
    99                 // *** 
    100  
    101                 // JButton: btnInsertBefore *** 
     125 
     126                final JButton btnInsertAfter = new JButton("Insert after"); 
     127                btnInsertAfter.setEnabled(false); 
     128                btnInsertAfter.setBounds(155, 11, 135, 31); 
     129                panel.add(btnInsertAfter); 
     130 
     131                updateLists(events, modelListEvents, modelListTargets, listEvents, 
     132                                listTargets); 
     133 
     134                // listener for clicking the "Insert before" button 
    102135                btnInsertBefore.addMouseListener(new MouseAdapter() { 
    103136                        public void mouseClicked(MouseEvent arg0) { 
     
    105138                                        return; 
    106139 
    107                                 int selectedIndex = listEvents.getSelectedIndex(); 
    108                                 DlgInsert.showDialog(events, selectedIndex, true); 
    109  
    110                                 updateLists(events, modelListEvents, modelListTargets); 
    111                                 listEvents.setSelectedIndex(selectedIndex); 
    112                         } 
    113                 }); 
    114  
    115                 btnInsertBefore.setEnabled(false); 
    116                 final JButton btnInsertAfter = new JButton("Insert after"); 
    117                 btnInsertAfter.setBounds(155, 11, 135, 31); 
    118                 panel.add(btnInsertAfter); 
    119                 // *** 
    120  
    121                 // JButton: btnInsertAfter 
     140                                addAssertion(events, modelListEvents, modelListTargets, 
     141                                                listEvents, listTargets, true); 
     142                        } 
     143                }); 
     144 
     145                // listener for clicking the "Insert after" button 
    122146                btnInsertAfter.addMouseListener(new MouseAdapter() { 
    123147                        public void mouseClicked(MouseEvent arg0) { 
     
    125149                                        return; 
    126150 
    127                                 int selectedIndex = listEvents.getSelectedIndex(); 
    128                                 DlgInsert.showDialog(events, selectedIndex, false); 
    129  
    130                                 updateLists(events, modelListEvents, modelListTargets); 
    131                                 listEvents.setSelectedIndex(selectedIndex + 1); 
    132                         } 
    133                 }); 
    134  
    135                 btnInsertAfter.setEnabled(false); 
     151                                addAssertion(events, modelListEvents, modelListTargets, 
     152                                                listEvents, listTargets, false); 
     153                        } 
     154                }); 
    136155 
    137156                final JButton btnClose = new JButton("Back to sequences"); 
     
    149168                panel_1.add(scrollPaneEvents); 
    150169                scrollPaneEvents.setViewportView(listEvents); 
    151                 // *** 
    152  
    153                 // JList: listEvents *** 
     170 
    154171                listEvents.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, 
    155172                                null, null, null)); 
    156173                listEvents.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    157174 
    158                 // JScrollPane: scrollPane 
    159175                final JScrollPane scrollPaneTargets = new JScrollPane(); 
    160176                scrollPaneTargets.setBounds(229, 29, 466, 436); 
    161177                panel_1.add(scrollPaneTargets); 
    162                  
     178 
     179                // if there are more events than the list is able to display without 
     180                // vertical scrollbar, the event list has to be resized to fit to the 
     181                // target list 
    163182                Rectangle r = scrollPaneEvents.getBounds(); 
    164183                r.height -= 18; 
    165                 if(scrollPaneEvents.getVerticalScrollBar().isVisible()) scrollPaneEvents.setBounds(r); 
    166  
     184                if (scrollPaneEvents.getVerticalScrollBar().isVisible()) { 
     185                        scrollPaneEvents.setBounds(r); 
     186                } 
     187 
     188                // listener for selecting a target: select the fitting event 
    167189                listTargets.addListSelectionListener(new ListSelectionListener() { 
    168190                        public void valueChanged(ListSelectionEvent arg0) { 
    169191                                if (listTargets.getSelectedIndex() > -1) { 
    170                                          
    171                                         JScrollBar bar1 = scrollPaneEvents.getVerticalScrollBar(); 
    172                                         JScrollBar bar2 = scrollPaneTargets.getVerticalScrollBar(); 
    173                                         bar1.setValue(bar2.getValue()); 
    174  
    175                                         listEvents.setSelectedIndex(listTargets 
    176                                                         .getSelectedIndex()); 
    177                                         btnInsertAfter.setEnabled(true); 
    178  
    179                                         if (listTargets.getSelectedIndex() == 0) { 
    180                                                 btnInsertBefore.setEnabled(false); 
    181                                         } else { 
    182                                                 btnInsertBefore.setEnabled(true); 
    183                                         } 
     192 
     193                                        changeSelection(listEvents, listTargets, btnInsertBefore, 
     194                                                        btnInsertAfter, scrollPaneEvents, scrollPaneTargets); 
    184195                                } 
    185196                        } 
    186197                }); 
    187198                scrollPaneTargets.setViewportView(listTargets); 
    188                 // *** 
    189  
    190                 // JList for targets *** 
     199 
    191200                listTargets.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, 
    192201                                null, null, null)); 
     
    201210                panel_1.add(lblTargets); 
    202211 
     212                // listener for selecting an event: select the fitting target 
    203213                listEvents.addListSelectionListener(new ListSelectionListener() { 
    204214                        public void valueChanged(ListSelectionEvent arg0) { 
    205215                                if (listEvents.getSelectedIndex() > -1) { 
    206                                          
    207                                         JScrollBar bar1 = scrollPaneEvents.getVerticalScrollBar(); 
    208                                         JScrollBar bar2 = scrollPaneTargets.getVerticalScrollBar(); 
    209                                         bar2.setValue(bar1.getValue()); 
    210                                          
    211                                         listTargets.setSelectedIndex(listEvents 
    212                                                         .getSelectedIndex());                            
    213  
    214                                         if (listEvents.getSelectedIndex() == 0) { 
    215                                                 btnInsertBefore.setEnabled(false); 
    216                                                 btnInsertAfter.setEnabled(true); 
    217                                         } else { 
    218                                                 btnInsertBefore.setEnabled(true); 
    219                                                 btnInsertAfter.setEnabled(true); 
    220                                         } 
     216 
     217                                        changeSelection(listTargets, listEvents, btnInsertBefore, 
     218                                                        btnInsertAfter, scrollPaneTargets, scrollPaneEvents); 
    221219                                } 
    222220                        } 
    223221                }); 
    224                 // *** 
    225  
    226                 // JButton: btnClose *** 
     222 
     223                // before closing the window, set parent to visible 
    227224                btnClose.addMouseListener(new MouseAdapter() { 
    228225                        public void mouseClicked(MouseEvent arg0) { 
     
    231228                        } 
    232229                }); 
    233                 // *** 
    234         } 
    235  
     230        } 
     231 
     232        /** 
     233         * <p> 
     234         * the value of one of the lists changed so the other has to be set to the 
     235         * fitting selection. 
     236         * </p> 
     237         *  
     238         * @param listValueHasToBeChanged 
     239         *            the selection of this list has to be corrected. 
     240         * @param listValueHasBeenChanged 
     241         *            the selection of this list is already correct. 
     242         * @param btnInsertBefore 
     243         *            to enable the "Insert before" button. 
     244         * @param btnInsertAfter 
     245         *            to enable the "Insert after" button. 
     246         * @param scrollPaneValueHasToBeChanged 
     247         *            the position of the scrollBar of this scrollPane has to be 
     248         *            corrected. 
     249         * @param scrollPaneValueHasBeenChanged 
     250         *            the position of the scrollBar of this scrollPane is already 
     251         *            correct. 
     252         */ 
     253        private void changeSelection(final JList listValueHasToBeChanged, 
     254                        final JList listValueHasBeenChanged, final JButton btnInsertBefore, 
     255                        final JButton btnInsertAfter, 
     256                        final JScrollPane scrollPaneValueHasToBeChanged, 
     257                        final JScrollPane scrollPaneValueHasBeenChanged) { 
     258 
     259                JScrollBar bar1 = scrollPaneValueHasBeenChanged.getVerticalScrollBar(); 
     260                JScrollBar bar2 = scrollPaneValueHasToBeChanged.getVerticalScrollBar(); 
     261                bar2.setValue(bar1.getValue()); 
     262 
     263                listValueHasToBeChanged.setSelectedIndex(listValueHasBeenChanged 
     264                                .getSelectedIndex()); 
     265 
     266                btnInsertBefore.setEnabled(true); 
     267                btnInsertAfter.setEnabled(true); 
     268        } 
     269 
     270        /** 
     271         * <p> 
     272         * updates both lists, eventList and targetList to display the current 
     273         * status. 
     274         * </p> 
     275         *  
     276         * @param events 
     277         *            list of the current events that has to be displayed. 
     278         * @param modelListEvents 
     279         *            DefaultListModel to display the events. 
     280         * @param modelListTargets 
     281         *            DefaultListModel to display the targets. 
     282         * @param listEvents 
     283         *            the listEvents to store and reset the selection. 
     284         * @param listTargets 
     285         *            the listTargets to reset the selection after updating. 
     286         */ 
    236287        private void updateLists(final List<Event<?>> events, 
    237288                        final javax.swing.DefaultListModel modelListEvents, 
    238                         final javax.swing.DefaultListModel modelListTargets) { 
     289                        final javax.swing.DefaultListModel modelListTargets, 
     290                        JList listEvents, JList listTargets) { 
     291 
     292                int selectedIndex = listEvents.getSelectedIndex(); 
    239293 
    240294                modelListEvents.clear(); 
     
    244298                        modelListTargets.addElement(events.get(i).getTarget()); 
    245299                } 
     300 
     301                if (selectedIndex > -1) { 
     302                        listEvents.setSelectedIndex(selectedIndex); 
     303                        listTargets.setSelectedIndex(selectedIndex); 
     304                } 
     305        } 
     306 
     307        /** 
     308         * <p> 
     309         * opens {@link DlgInsert} dialog to insert an assertion and updates the 
     310         * lists. 
     311         * </p> 
     312         *  
     313         * @param events 
     314         *            list of the current events. 
     315         * @param modelListEvents 
     316         *            needed to call updateList. 
     317         * @param modelListTargets 
     318         *            needed to call updateList. 
     319         * @param listEvents 
     320         *            needed to get the currently selected index and to update the 
     321         *            lists. 
     322         * @param listTargets 
     323         *            needed to update the lists. 
     324         * @param insertBefore 
     325         *            to decide if the assertions has to be inserted before or after 
     326         *            the current selection. 
     327         */ 
     328        private void addAssertion(final List<Event<?>> events, 
     329                        final DefaultListModel modelListEvents, 
     330                        final DefaultListModel modelListTargets, final JList listEvents, 
     331                        final JList listTargets, boolean insertBefore) { 
     332 
     333                int selectedIndex = listEvents.getSelectedIndex(); 
     334                DlgInsert.showDialog(events, selectedIndex, insertBefore); 
     335                updateLists(events, modelListEvents, modelListTargets, listEvents, 
     336                                listTargets); 
    246337        } 
    247338} 
Note: See TracChangeset for help on using the changeset viewer.