source: tmcsimulator-scriptbuilder/trunk/src/scriptbuilder/gui/IncidentEditorFrame.java @ 98

Revision 98, 88.8 KB checked in by bmcguffin, 9 years ago (diff)

Added "Add 15 minutes" button, btnAddTime, to both Script Builder and Incident Editor windows. Clicking the button allows the user to add 15 minutes of scrollable space to the end of the timeline window, so that new events can be added after the end. This extra time does not interact with the model and so does not enter the save file, or persist between iterations of the program.

Line 
1/**
2 * Frame for the Individual Incident Editor.
3 *
4 * @author Bryan McGuffin
5 * @version 2017/08/08
6 */
7package scriptbuilder.gui;
8
9import java.awt.Adjustable;
10import java.awt.event.AdjustmentEvent;
11import java.awt.event.AdjustmentListener;
12import java.awt.event.KeyEvent;
13import java.awt.event.KeyListener;
14import java.io.IOException;
15import java.util.ArrayList;
16import java.util.Observable;
17import java.util.Observer;
18import java.util.Properties;
19import java.util.Random;
20import java.util.logging.Level;
21import java.util.logging.Logger;
22import javax.swing.DefaultListModel;
23import javax.swing.JButton;
24import scriptbuilder.gui.panels.IncidentTimelinePanel;
25import scriptbuilder.structures.ScriptEvent;
26import scriptbuilder.structures.ScriptEvent.ScriptEventType;
27import scriptbuilder.structures.ScriptIncident;
28import scriptbuilder.structures.ScriptIncident.IncidentFocusedEvent;
29import scriptbuilder.structures.ScriptIncident.SliceChangedEvent;
30import scriptbuilder.structures.TimeSlice;
31import scriptbuilder.structures.events.I_ScriptEvent;
32
33/**
34 * GUI for the script builder. Contains all panels and editor elements. Performs
35 * updates to reflect script model, which it observes.
36 *
37 * @author Greg Eddington
38 * @author Bryan McGuffin
39 */
40public class IncidentEditorFrame extends javax.swing.JFrame implements Observer
41{
42   
43    /**
44     * The script incident currently being edited.
45     */
46    private ScriptIncident theIncident;
47   
48    /**
49     * The current type of selected event.
50     */
51    public ScriptEventType currentEventType;
52    /**
53     * A list of all the event type buttons.
54     */
55    private ArrayList<JButton> eventButtons = null;
56
57    /**
58     * Get the script currently in use.
59     *
60     * @return the script model object
61     */
62    public ScriptIncident getIncident()
63    {
64        return theIncident;
65    }
66
67    /**
68     * Listener for the scroll pane.
69     */
70    class MyAdjustmentListener implements AdjustmentListener
71    {
72
73        /**
74         * If the incident timeline is scrolled horizontally, the timestamp
75         * panel is updated to reflect it.
76         *
77         * @param evt the adjustment event
78         */
79        @Override
80        public void adjustmentValueChanged(AdjustmentEvent evt)
81        {
82            if (evt.getAdjustable().getOrientation() == Adjustable.HORIZONTAL)
83            {
84                timeStampScrollPane.getHorizontalScrollBar()
85                        .setValue(timelinesScrollPane.getHorizontalScrollBar().getValue());
86            }
87            else
88            {
89                // Event from vertical scrollbar
90            }
91
92            repaint();
93        }
94    }
95
96    /**
97     * Listener for key presses. Used for hotkeys for different event types.
98     */
99    private class TimelineKeyListener implements KeyListener
100    {
101
102        /**
103         * If a hotkey is pressed, select that type of event.
104         *
105         * @param e the key event
106         */
107        @Override
108        public void keyPressed(KeyEvent e)
109        {
110            JButton lastButton = null;
111            for (JButton eb : eventButtons)
112            {
113                eb.setFocusPainted(false);
114                if (eb.isSelected())
115                {
116                    lastButton = eb;
117                }
118                eb.setSelected(false);
119            }
120
121            JButton newButton = lastButton;
122            switch (e.getKeyChar())
123            {
124                case 'u':
125                    currentEventType = ScriptEventType.AUDIO_EVENT;
126                    newButton = audioButton;
127                    break;
128                case 'c':
129                    currentEventType = ScriptEventType.CAD_EVENT;
130                    newButton = cadButton;
131                    break;
132                case 'v':
133                    currentEventType = ScriptEventType.CCTV_EVENT;
134                    newButton = cctvButton;
135                    break;
136                case 'h':
137                    currentEventType = ScriptEventType.CHP_RADIO_EVENT;
138                    newButton = chpRadioButton;
139                    break;
140                case 'p':
141                    currentEventType = ScriptEventType.PARAMICS_EVENT;
142                    newButton = paramicsButton;
143                    break;
144                case 'o':
145                    currentEventType = ScriptEventType.TOW_EVENT;
146                    newButton = towButton;
147                    break;
148                case 'n':
149                    currentEventType = ScriptEventType.UNIT_EVENT;
150                    newButton = unitButton;
151                    break;
152                case 'w':
153                    currentEventType = ScriptEventType.WITNESS_EVENT;
154                    newButton = witnessButton;
155                    break;
156                case 'm':
157                    currentEventType = ScriptEventType.MAINTENANCE_RADIO_EVENT;
158                    newButton = maintenanceRadioButton;
159                    break;
160                case 't':
161                    currentEventType = ScriptEventType.TMT_RADIO_EVENT;
162                    newButton = tmtRadioButton;
163                    break;
164                case 'e':
165                    currentEventType = ScriptEventType.TELEPHONE_EVENT;
166                    newButton = telephoneButton;
167                    break;
168                case 'a':
169                    currentEventType = ScriptEventType.ATMS_EVAL_EVENT;
170                    newButton = atmsEvalButton;
171                    break;
172                case 'l':
173                    currentEventType = ScriptEventType.ACTIVITY_LOG_EVAL_EVENT;
174                    newButton = activityLogEvalButton;
175                    break;
176                case 'd':
177                    currentEventType = ScriptEventType.CAD_EVAL_EVENT;
178                    newButton = cadEvalButton;
179                    break;
180                case 's':
181                    currentEventType = ScriptEventType.CMS_EVAL_EVENT;
182                    newButton = cmsEvalButton;
183                    break;
184                case 'f':
185                    currentEventType = ScriptEventType.FACILITATOR_EVAL_EVENT;
186                    newButton = facilitatorEvalButton;
187                    break;
188                case 'r':
189                    currentEventType = ScriptEventType.RADIO_EVAL_EVENT;
190                    newButton = radioEvalButton;
191                    break;
192                default:
193                    newButton = lastButton;
194            }
195
196            if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
197            {
198                currentEventType = null;
199                newButton = selectButton;
200            }
201
202            if (newButton != null)
203            {
204                newButton.setSelected(true);
205            }
206
207            repaint();
208        }
209
210        /**
211         * Take no action upon key release.
212         *
213         * @param e the key event
214         */
215        @Override
216        public void keyReleased(KeyEvent e)
217        {
218        }
219
220        /**
221         * Take no action upon key release.
222         *
223         * @param e the key event
224         */
225        @Override
226        public void keyTyped(KeyEvent e)
227        {
228        }
229    }
230
231    /**
232     * Constructor. Prep new script model, initialize the GUI, and add listeners
233     * for all buttons.
234     *
235     * @param theIncident the Script Incident which this window will edit.
236     */
237    public IncidentEditorFrame(ScriptIncident theIncident)
238    {
239        this.theIncident = theIncident;
240        initComponents();
241        this.update(null, theIncident);
242        selectButton.addKeyListener(new TimelineKeyListener());
243        cadButton.addKeyListener(new TimelineKeyListener());
244        cctvButton.addKeyListener(new TimelineKeyListener());
245        chpRadioButton.addKeyListener(new TimelineKeyListener());
246        paramicsButton.addKeyListener(new TimelineKeyListener());
247        towButton.addKeyListener(new TimelineKeyListener());
248        unitButton.addKeyListener(new TimelineKeyListener());
249        witnessButton.addKeyListener(new TimelineKeyListener());
250        maintenanceRadioButton.addKeyListener(new TimelineKeyListener());
251        tmtRadioButton.addKeyListener(new TimelineKeyListener());
252        telephoneButton.addKeyListener(new TimelineKeyListener());
253        atmsEvalButton.addKeyListener(new TimelineKeyListener());
254        activityLogEvalButton.addKeyListener(new TimelineKeyListener());
255        cadEvalButton.addKeyListener(new TimelineKeyListener());
256        cmsEvalButton.addKeyListener(new TimelineKeyListener());
257        facilitatorEvalButton.addKeyListener(new TimelineKeyListener());
258        radioEvalButton.addKeyListener(new TimelineKeyListener());
259
260//        // Hack to refresh the zoom
261//        zoomSlider.setValue(zoomSlider.getValue() - 1);
262//        zoomSlider.setValue(zoomSlider.getValue() + 1);
263
264        // Set listener for scroll pane
265        AdjustmentListener listener = new MyAdjustmentListener();
266        timelinesScrollPane.getHorizontalScrollBar().addAdjustmentListener(listener);
267        timelinesScrollPane.getVerticalScrollBar().addAdjustmentListener(listener);
268
269        // Button list
270        eventButtons = new ArrayList<JButton>();
271        eventButtons.add(maintenanceRadioButton);
272        eventButtons.add(tmtRadioButton);
273        eventButtons.add(telephoneButton);
274        eventButtons.add(paramicsButton);
275        eventButtons.add(towButton);
276        eventButtons.add(witnessButton);
277        eventButtons.add(unitButton);
278        eventButtons.add(audioButton);
279        eventButtons.add(cadButton);
280        eventButtons.add(cctvButton);
281        eventButtons.add(chpRadioButton);
282        eventButtons.add(selectButton);
283        eventButtons.add(cmsEvalButton);
284        eventButtons.add(atmsEvalButton);
285        eventButtons.add(cadEvalButton);
286        eventButtons.add(activityLogEvalButton);
287        eventButtons.add(facilitatorEvalButton);
288        eventButtons.add(radioEvalButton);
289       
290        incidentNumber.setText(""+this.theIncident.number);
291        incidentName.setText(""+this.theIncident.name);
292        incidentDescription.setText(""+this.theIncident.description);
293        zoomSlider.setValue(zoomSlider.getMinimum());
294    }
295
296    /**
297     * Update the GUI to reflect the model. If the script changed, update all
298     * the incident panels. If a timeslice changed, add any new events to the
299     * model. If an incident gained focus, update the incident info screen to
300     * display its details.
301     *
302     * @param o The observed object
303     * @param arg Either the script model or an incident event, depending on who
304     * called this update
305     */
306    @Override
307    public void update(Observable o, Object arg)
308    {
309        if (arg instanceof ScriptIncident)
310        {
311            theIncident = (ScriptIncident) arg;
312           
313            timelineTickPanel.update(theIncident, incidentTimelinePanel1);
314            timeStampPanel.update(theIncident, incidentTimelinePanel1);
315
316            incidentTimelinePanel1.timelinePanelUpdate(theIncident);
317
318            incidentNumberPanel1.update(theIncident);
319
320            /**
321             * DefaultComboBoxModel model = new DefaultComboBoxModel(); for
322             * (ScriptIncident i : script.incidents) { if (i != null)
323             * model.addElement(i); } gotoIncident.setModel(model);*
324             */
325            this.setPreferredSize(this.getSize());
326            pack();
327        }
328        else if (arg instanceof SliceChangedEvent)
329        {
330            TimeSlice slice = ((SliceChangedEvent) arg).slice;
331           
332            DefaultListModel model = new DefaultListModel();
333            for (I_ScriptEvent e : slice.events)
334            {
335                model.addElement(e);
336            }
337            scriptEventsList.setModel(model);
338        }
339        else if (arg instanceof IncidentFocusedEvent)
340        {
341            ScriptIncident i = ((IncidentFocusedEvent) arg).incident;
342
343            incidentNumber.setText(Integer.toString(i.number));
344            incidentName.setText(i.name);
345            incidentDescription.setText(i.description);
346
347            //gotoIncident.setSelectedItem(i);
348        }
349        zoomSlider.setMinimum(((timelineTickPanel.getVisibleRect().width - 20)
350                * ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION)
351                / Math.max(theIncident.length, ScriptBuilderGuiConstants.TICK_TIMELINE_SMALLEST_LENGTH));
352        zoomSlider.setMaximum(zoomSlider.getMinimum() + 20);
353    }
354
355    /**
356     * This method is called from within the constructor to initialize the form.
357     * WARNING: Do NOT modify this code. The content of this method is always
358     * regenerated by the Form Editor.
359     */
360    @SuppressWarnings("unchecked")
361    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
362    private void initComponents()
363    {
364
365        eventPopupMenu = new javax.swing.JPopupMenu();
366        cadEvent = new javax.swing.JMenuItem();
367        jMenuItem2 = new javax.swing.JMenuItem();
368        radioEvent = new javax.swing.JMenuItem();
369        jMenuItem4 = new javax.swing.JMenuItem();
370        jMenuItem5 = new javax.swing.JMenuItem();
371        jMenuItem6 = new javax.swing.JMenuItem();
372        cadEventFrame = new javax.swing.JFrame();
373        jLabel5 = new javax.swing.JLabel();
374        radioEventFrame = new javax.swing.JFrame();
375        radioTypeLabel = new javax.swing.JLabel();
376        jLabel7 = new javax.swing.JLabel();
377        radioTypeComboBox = new javax.swing.JComboBox();
378        radioMessageScrollPane = new javax.swing.JScrollPane();
379        radioMessage = new javax.swing.JTextArea();
380        okButton = new javax.swing.JButton();
381        cancelButton = new javax.swing.JButton();
382        eventListPopupMenu = new javax.swing.JPopupMenu();
383        editEventList = new javax.swing.JMenuItem();
384        deleteEventList = new javax.swing.JMenuItem();
385        addNoiseFrame = new javax.swing.JFrame();
386        jLabel13 = new javax.swing.JLabel();
387        jSlider1 = new javax.swing.JSlider();
388        jSlider2 = new javax.swing.JSlider();
389        jLabel14 = new javax.swing.JLabel();
390        jSlider3 = new javax.swing.JSlider();
391        jLabel15 = new javax.swing.JLabel();
392        jTextArea1 = new javax.swing.JTextArea();
393        jSlider4 = new javax.swing.JSlider();
394        jLabel16 = new javax.swing.JLabel();
395        jSlider5 = new javax.swing.JSlider();
396        jLabel17 = new javax.swing.JLabel();
397        jButton1 = new javax.swing.JButton();
398        jButton2 = new javax.swing.JButton();
399        jLabel20 = new javax.swing.JLabel();
400        jLabel21 = new javax.swing.JLabel();
401        timelinesScrollPane = new javax.swing.JScrollPane();
402        timelineTickPanel = new scriptbuilder.gui.panels.TimelineTickPanel();
403        incidentTimelinePanel1 = new scriptbuilder.gui.panels.IncidentTimelinePanel();
404        incidentNumberPanel1 = new scriptbuilder.gui.panels.IncidentNumberPanel();
405        scriptEventsPanel = new javax.swing.JPanel();
406        scriptEventsPane = new javax.swing.JScrollPane();
407        scriptEventsList = new javax.swing.JList();
408        zoomSlider = new javax.swing.JSlider();
409        scriptEventsPanel1 = new javax.swing.JPanel();
410        jLabel2 = new javax.swing.JLabel();
411        jLabel3 = new javax.swing.JLabel();
412        jLabel4 = new javax.swing.JLabel();
413        incidentName = new javax.swing.JTextField();
414        incidentDescriptionPane = new javax.swing.JScrollPane();
415        incidentDescription = new javax.swing.JTextArea();
416        incidentNumber = new javax.swing.JTextField();
417        selectButton = new javax.swing.JButton();
418        incidentEventsPanel = new javax.swing.JPanel();
419        maintenanceRadioButton = new javax.swing.JButton();
420        tmtRadioButton = new javax.swing.JButton();
421        telephoneButton = new javax.swing.JButton();
422        unitButton = new javax.swing.JButton();
423        witnessButton = new javax.swing.JButton();
424        paramicsButton = new javax.swing.JButton();
425        towButton = new javax.swing.JButton();
426        audioButton = new javax.swing.JButton();
427        cctvButton = new javax.swing.JButton();
428        cadButton = new javax.swing.JButton();
429        chpRadioButton = new javax.swing.JButton();
430        evaluationEventsPanel = new javax.swing.JPanel();
431        atmsEvalButton = new javax.swing.JButton();
432        cmsEvalButton = new javax.swing.JButton();
433        cadEvalButton = new javax.swing.JButton();
434        facilitatorEvalButton = new javax.swing.JButton();
435        activityLogEvalButton = new javax.swing.JButton();
436        radioEvalButton = new javax.swing.JButton();
437        zoomInIcon = new javax.swing.JLabel();
438        zoomOutIcon = new javax.swing.JLabel();
439        timeStampScrollPane = new javax.swing.JScrollPane();
440        timeStampPanel = new scriptbuilder.gui.panels.TimeStampPanel();
441        btnAddTime = new javax.swing.JButton();
442
443        cadEvent.setText("CAD Event");
444        cadEvent.addMouseListener(new java.awt.event.MouseAdapter()
445        {
446            public void mousePressed(java.awt.event.MouseEvent evt)
447            {
448                cadEventMousePressed(evt);
449            }
450            public void mouseReleased(java.awt.event.MouseEvent evt)
451            {
452                cadEventMouseReleased(evt);
453            }
454        });
455        eventPopupMenu.add(cadEvent);
456
457        jMenuItem2.setText("Paramics Event");
458        eventPopupMenu.add(jMenuItem2);
459
460        radioEvent.setText("Radio Event");
461        radioEvent.addMouseListener(new java.awt.event.MouseAdapter()
462        {
463            public void mousePressed(java.awt.event.MouseEvent evt)
464            {
465                radioEventMousePressed(evt);
466            }
467        });
468        eventPopupMenu.add(radioEvent);
469
470        jMenuItem4.setText("Telephone Event");
471        eventPopupMenu.add(jMenuItem4);
472
473        jMenuItem5.setText("Video Event");
474        eventPopupMenu.add(jMenuItem5);
475
476        jMenuItem6.setText("Evaluation Event");
477        eventPopupMenu.add(jMenuItem6);
478
479        cadEventFrame.setMinimumSize(new java.awt.Dimension(400, 300));
480
481        jLabel5.setText("CAD Entry");
482
483        javax.swing.GroupLayout cadEventFrameLayout = new javax.swing.GroupLayout(cadEventFrame.getContentPane());
484        cadEventFrame.getContentPane().setLayout(cadEventFrameLayout);
485        cadEventFrameLayout.setHorizontalGroup(
486            cadEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
487            .addGroup(cadEventFrameLayout.createSequentialGroup()
488                .addContainerGap()
489                .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
490                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
491        );
492        cadEventFrameLayout.setVerticalGroup(
493            cadEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
494            .addGroup(cadEventFrameLayout.createSequentialGroup()
495                .addContainerGap()
496                .addComponent(jLabel5)
497                .addContainerGap(1357, Short.MAX_VALUE))
498        );
499
500        radioEventFrame.setTitle("Add Radio Event");
501        radioEventFrame.setMinimumSize(new java.awt.Dimension(400, 300));
502
503        radioTypeLabel.setText("Radio Type:");
504
505        jLabel7.setText("Radio Message:");
506
507        radioTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "TMT", "Maintanence" }));
508
509        radioMessageScrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
510
511        radioMessage.setColumns(20);
512        radioMessage.setLineWrap(true);
513        radioMessage.setRows(5);
514        radioMessage.setWrapStyleWord(true);
515        radioMessageScrollPane.setViewportView(radioMessage);
516
517        okButton.setText("OK");
518        okButton.addActionListener(new java.awt.event.ActionListener()
519        {
520            public void actionPerformed(java.awt.event.ActionEvent evt)
521            {
522                okButtonActionPerformed(evt);
523            }
524        });
525
526        cancelButton.setText("Cancel");
527        cancelButton.addActionListener(new java.awt.event.ActionListener()
528        {
529            public void actionPerformed(java.awt.event.ActionEvent evt)
530            {
531                cancelButtonActionPerformed(evt);
532            }
533        });
534
535        javax.swing.GroupLayout radioEventFrameLayout = new javax.swing.GroupLayout(radioEventFrame.getContentPane());
536        radioEventFrame.getContentPane().setLayout(radioEventFrameLayout);
537        radioEventFrameLayout.setHorizontalGroup(
538            radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
539            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, radioEventFrameLayout.createSequentialGroup()
540                .addContainerGap()
541                .addGroup(radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
542                    .addComponent(radioMessageScrollPane, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
543                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, radioEventFrameLayout.createSequentialGroup()
544                        .addComponent(radioTypeLabel)
545                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
546                        .addComponent(radioTypeComboBox, 0, 312, Short.MAX_VALUE))
547                    .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.LEADING)
548                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, radioEventFrameLayout.createSequentialGroup()
549                        .addComponent(cancelButton)
550                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 246, Short.MAX_VALUE)
551                        .addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)))
552                .addContainerGap())
553        );
554        radioEventFrameLayout.setVerticalGroup(
555            radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
556            .addGroup(radioEventFrameLayout.createSequentialGroup()
557                .addContainerGap()
558                .addGroup(radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
559                    .addComponent(radioTypeLabel)
560                    .addComponent(radioTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
561                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
562                .addComponent(jLabel7)
563                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
564                .addComponent(radioMessageScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE)
565                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
566                .addGroup(radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
567                    .addComponent(okButton)
568                    .addComponent(cancelButton))
569                .addContainerGap())
570        );
571
572        editEventList.setText("Edit...");
573        editEventList.addActionListener(new java.awt.event.ActionListener()
574        {
575            public void actionPerformed(java.awt.event.ActionEvent evt)
576            {
577                editEventListActionPerformed(evt);
578            }
579        });
580        eventListPopupMenu.add(editEventList);
581
582        deleteEventList.setText("Delete...");
583        eventListPopupMenu.add(deleteEventList);
584
585        addNoiseFrame.setTitle("Generate Noise");
586        addNoiseFrame.setMinimumSize(new java.awt.Dimension(395, 315));
587        addNoiseFrame.setResizable(false);
588
589        jLabel13.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
590        jLabel13.setText("Radio Chatter: ");
591
592        jLabel14.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
593        jLabel14.setText("Lane Closures:");
594
595        jLabel15.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
596        jLabel15.setText("TMCAL Logs:");
597
598        jTextArea1.setEditable(false);
599        jTextArea1.setColumns(20);
600        jTextArea1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
601        jTextArea1.setLineWrap(true);
602        jTextArea1.setRows(5);
603        jTextArea1.setText("Noise events will be randomly generated for the simulation with frequencies based on the control selections made below");
604        jTextArea1.setWrapStyleWord(true);
605        jTextArea1.setAutoscrolls(false);
606        jTextArea1.setBorder(null);
607        jTextArea1.setDisabledTextColor(new java.awt.Color(0, 0, 0));
608        jTextArea1.setFocusable(false);
609        jTextArea1.setOpaque(false);
610
611        jLabel16.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
612        jLabel16.setText("Background Noise: ");
613
614        jLabel17.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
615        jLabel17.setText("Minor Events:");
616
617        jButton1.setText("Cancel");
618        jButton1.addActionListener(new java.awt.event.ActionListener()
619        {
620            public void actionPerformed(java.awt.event.ActionEvent evt)
621            {
622                jButton1ActionPerformed(evt);
623            }
624        });
625
626        jButton2.setText("Generate");
627        jButton2.addActionListener(new java.awt.event.ActionListener()
628        {
629            public void actionPerformed(java.awt.event.ActionEvent evt)
630            {
631                jButton2ActionPerformed(evt);
632            }
633        });
634
635        jLabel20.setText("Least Frequent");
636
637        jLabel21.setText("Most Frequent");
638
639        javax.swing.GroupLayout addNoiseFrameLayout = new javax.swing.GroupLayout(addNoiseFrame.getContentPane());
640        addNoiseFrame.getContentPane().setLayout(addNoiseFrameLayout);
641        addNoiseFrameLayout.setHorizontalGroup(
642            addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
643            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addNoiseFrameLayout.createSequentialGroup()
644                .addContainerGap(21, Short.MAX_VALUE)
645                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
646                    .addComponent(jTextArea1, javax.swing.GroupLayout.Alignment.LEADING)
647                    .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
648                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, addNoiseFrameLayout.createSequentialGroup()
649                            .addComponent(jButton1)
650                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
651                            .addComponent(jButton2))
652                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, addNoiseFrameLayout.createSequentialGroup()
653                            .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
654                                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
655                                    .addComponent(jLabel16)
656                                    .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
657                                    .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
658                                    .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE))
659                                .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE))
660                            .addGap(4, 4, 4)
661                            .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
662                                .addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
663                                .addComponent(jSlider2, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
664                                .addComponent(jSlider3, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
665                                .addComponent(jSlider5, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
666                                .addComponent(jSlider4, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
667                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addNoiseFrameLayout.createSequentialGroup()
668                                    .addComponent(jLabel20)
669                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
670                                    .addComponent(jLabel21))))))
671                .addGap(20, 20, 20))
672        );
673        addNoiseFrameLayout.setVerticalGroup(
674            addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
675            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addNoiseFrameLayout.createSequentialGroup()
676                .addContainerGap()
677                .addComponent(jTextArea1, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
678                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
679                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
680                    .addComponent(jLabel21)
681                    .addComponent(jLabel20))
682                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
683                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
684                    .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
685                    .addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
686                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
687                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
688                    .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
689                    .addComponent(jSlider2, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE))
690                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
691                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
692                    .addComponent(jLabel15)
693                    .addComponent(jSlider3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
694                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
695                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
696                    .addComponent(jSlider4, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
697                    .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
698                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
699                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
700                    .addComponent(jSlider5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
701                    .addComponent(jLabel17))
702                .addGap(18, 18, 18)
703                .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
704                    .addComponent(jButton1)
705                    .addComponent(jButton2))
706                .addContainerGap())
707        );
708
709        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
710        setTitle("Script Builder");
711        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
712        setMinimumSize(new java.awt.Dimension(800, 700));
713
714        timelinesScrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
715        timelinesScrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
716        timelinesScrollPane.setFocusCycleRoot(true);
717        timelinesScrollPane.setFocusTraversalPolicyProvider(true);
718        timelinesScrollPane.setPreferredSize(new java.awt.Dimension(72000, 1341));
719
720        timelineTickPanel.setMaximumSize(new java.awt.Dimension(7200, 32767));
721        timelineTickPanel.setMinimumSize(new java.awt.Dimension(7200, 0));
722        timelineTickPanel.setPreferredSize(new java.awt.Dimension(7200, 1317));
723
724        incidentTimelinePanel1.setMaximumSize(new java.awt.Dimension(32767, 100));
725        incidentTimelinePanel1.setOpaque(false);
726        incidentTimelinePanel1.setPreferredSize(new java.awt.Dimension(691, 100));
727
728        javax.swing.GroupLayout incidentTimelinePanel1Layout = new javax.swing.GroupLayout(incidentTimelinePanel1);
729        incidentTimelinePanel1.setLayout(incidentTimelinePanel1Layout);
730        incidentTimelinePanel1Layout.setHorizontalGroup(
731            incidentTimelinePanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
732            .addGap(0, 6776, Short.MAX_VALUE)
733        );
734        incidentTimelinePanel1Layout.setVerticalGroup(
735            incidentTimelinePanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
736            .addGap(0, 334, Short.MAX_VALUE)
737        );
738
739        incidentNumberPanel1.setOpaque(false);
740
741        javax.swing.GroupLayout incidentNumberPanel1Layout = new javax.swing.GroupLayout(incidentNumberPanel1);
742        incidentNumberPanel1.setLayout(incidentNumberPanel1Layout);
743        incidentNumberPanel1Layout.setHorizontalGroup(
744            incidentNumberPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
745            .addGap(0, 106, Short.MAX_VALUE)
746        );
747        incidentNumberPanel1Layout.setVerticalGroup(
748            incidentNumberPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
749            .addGap(0, 0, Short.MAX_VALUE)
750        );
751
752        javax.swing.GroupLayout timelineTickPanelLayout = new javax.swing.GroupLayout(timelineTickPanel);
753        timelineTickPanel.setLayout(timelineTickPanelLayout);
754        timelineTickPanelLayout.setHorizontalGroup(
755            timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
756            .addGroup(timelineTickPanelLayout.createSequentialGroup()
757                .addContainerGap()
758                .addComponent(incidentNumberPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
759                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
760                .addComponent(incidentTimelinePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 6776, javax.swing.GroupLayout.PREFERRED_SIZE)
761                .addContainerGap(300, Short.MAX_VALUE))
762        );
763        timelineTickPanelLayout.setVerticalGroup(
764            timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
765            .addGroup(timelineTickPanelLayout.createSequentialGroup()
766                .addContainerGap()
767                .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
768                    .addComponent(incidentTimelinePanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 334, Short.MAX_VALUE)
769                    .addComponent(incidentNumberPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
770                .addContainerGap(977, Short.MAX_VALUE))
771        );
772
773        timelinesScrollPane.setViewportView(timelineTickPanel);
774
775        scriptEventsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Script Events"));
776
777        scriptEventsPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
778
779        scriptEventsList.setModel(new DefaultListModel());
780        scriptEventsList.setComponentPopupMenu(eventListPopupMenu);
781        scriptEventsPane.setViewportView(scriptEventsList);
782
783        javax.swing.GroupLayout scriptEventsPanelLayout = new javax.swing.GroupLayout(scriptEventsPanel);
784        scriptEventsPanel.setLayout(scriptEventsPanelLayout);
785        scriptEventsPanelLayout.setHorizontalGroup(
786            scriptEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
787            .addGroup(scriptEventsPanelLayout.createSequentialGroup()
788                .addContainerGap()
789                .addComponent(scriptEventsPane)
790                .addContainerGap())
791        );
792        scriptEventsPanelLayout.setVerticalGroup(
793            scriptEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
794            .addGroup(scriptEventsPanelLayout.createSequentialGroup()
795                .addComponent(scriptEventsPane, javax.swing.GroupLayout.DEFAULT_SIZE, 215, Short.MAX_VALUE)
796                .addContainerGap())
797        );
798
799        zoomSlider.setMaximum(22);
800        zoomSlider.setMinimum(4);
801        zoomSlider.setOrientation(javax.swing.JSlider.VERTICAL);
802        zoomSlider.setValue(4);
803        zoomSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
804        zoomSlider.setFocusable(false);
805        zoomSlider.addChangeListener(new javax.swing.event.ChangeListener()
806        {
807            public void stateChanged(javax.swing.event.ChangeEvent evt)
808            {
809                zoomSliderStateChanged(evt);
810            }
811        });
812
813        scriptEventsPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Incident Information"));
814
815        jLabel2.setText("Incident Number:");
816
817        jLabel3.setText("Incident Name:");
818
819        jLabel4.setText("Incident Description:");
820
821        incidentName.setEditable(false);
822        incidentName.setText("Media");
823
824        incidentDescriptionPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
825
826        incidentDescription.setEditable(false);
827        incidentDescription.setColumns(20);
828        incidentDescription.setLineWrap(true);
829        incidentDescription.setRows(5);
830        incidentDescription.setText("All media message events are found in this incident.");
831        incidentDescription.setWrapStyleWord(true);
832        incidentDescriptionPane.setViewportView(incidentDescription);
833
834        incidentNumber.setEditable(false);
835        incidentNumber.setText("100");
836
837        javax.swing.GroupLayout scriptEventsPanel1Layout = new javax.swing.GroupLayout(scriptEventsPanel1);
838        scriptEventsPanel1.setLayout(scriptEventsPanel1Layout);
839        scriptEventsPanel1Layout.setHorizontalGroup(
840            scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
841            .addGroup(scriptEventsPanel1Layout.createSequentialGroup()
842                .addContainerGap()
843                .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
844                    .addComponent(incidentDescriptionPane, javax.swing.GroupLayout.Alignment.TRAILING)
845                    .addComponent(jLabel4)
846                    .addGroup(scriptEventsPanel1Layout.createSequentialGroup()
847                        .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
848                            .addComponent(jLabel2)
849                            .addComponent(jLabel3))
850                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
851                        .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
852                            .addComponent(incidentName)
853                            .addComponent(incidentNumber))))
854                .addContainerGap())
855        );
856        scriptEventsPanel1Layout.setVerticalGroup(
857            scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
858            .addGroup(scriptEventsPanel1Layout.createSequentialGroup()
859                .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
860                    .addComponent(jLabel2)
861                    .addComponent(incidentNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
862                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
863                .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
864                    .addComponent(incidentName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
865                    .addComponent(jLabel3))
866                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
867                .addComponent(jLabel4)
868                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
869                .addComponent(incidentDescriptionPane, javax.swing.GroupLayout.DEFAULT_SIZE, 125, Short.MAX_VALUE)
870                .addContainerGap())
871        );
872
873        selectButton.setToolTipText("Select");
874        selectButton.setFocusPainted(false);
875        selectButton.setIconTextGap(0);
876        selectButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
877        selectButton.setPreferredSize(new java.awt.Dimension(30, 25));
878        selectButton.addActionListener(new java.awt.event.ActionListener()
879        {
880            public void actionPerformed(java.awt.event.ActionEvent evt)
881            {
882                selectButtonActionPerformed(evt);
883            }
884        });
885
886        incidentEventsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Incident Events"));
887
888        maintenanceRadioButton.setText("Maintenance Radio");
889        maintenanceRadioButton.setToolTipText("");
890        maintenanceRadioButton.setFocusPainted(false);
891        maintenanceRadioButton.setIconTextGap(0);
892        maintenanceRadioButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
893        maintenanceRadioButton.setPreferredSize(new java.awt.Dimension(30, 25));
894        maintenanceRadioButton.addActionListener(new java.awt.event.ActionListener()
895        {
896            public void actionPerformed(java.awt.event.ActionEvent evt)
897            {
898                maintenanceRadioButtonActionPerformed(evt);
899            }
900        });
901
902        tmtRadioButton.setText("TMT Radio");
903        tmtRadioButton.setToolTipText("");
904        tmtRadioButton.setFocusPainted(false);
905        tmtRadioButton.setIconTextGap(0);
906        tmtRadioButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
907        tmtRadioButton.setPreferredSize(new java.awt.Dimension(30, 25));
908        tmtRadioButton.addActionListener(new java.awt.event.ActionListener()
909        {
910            public void actionPerformed(java.awt.event.ActionEvent evt)
911            {
912                tmtRadioButtonActionPerformed(evt);
913            }
914        });
915
916        telephoneButton.setText("Telephone");
917        telephoneButton.setToolTipText("");
918        telephoneButton.setFocusPainted(false);
919        telephoneButton.setIconTextGap(0);
920        telephoneButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
921        telephoneButton.setPreferredSize(new java.awt.Dimension(30, 25));
922        telephoneButton.addActionListener(new java.awt.event.ActionListener()
923        {
924            public void actionPerformed(java.awt.event.ActionEvent evt)
925            {
926                telephoneButtonActionPerformed(evt);
927            }
928        });
929
930        unitButton.setText("Unit");
931        unitButton.setToolTipText("");
932        unitButton.setFocusPainted(false);
933        unitButton.setIconTextGap(0);
934        unitButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
935        unitButton.setPreferredSize(new java.awt.Dimension(30, 25));
936        unitButton.addActionListener(new java.awt.event.ActionListener()
937        {
938            public void actionPerformed(java.awt.event.ActionEvent evt)
939            {
940                unitButtonActionPerformed(evt);
941            }
942        });
943
944        witnessButton.setText("Witness");
945        witnessButton.setToolTipText("");
946        witnessButton.setFocusPainted(false);
947        witnessButton.setIconTextGap(0);
948        witnessButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
949        witnessButton.setPreferredSize(new java.awt.Dimension(30, 25));
950        witnessButton.addActionListener(new java.awt.event.ActionListener()
951        {
952            public void actionPerformed(java.awt.event.ActionEvent evt)
953            {
954                witnessButtonActionPerformed(evt);
955            }
956        });
957
958        paramicsButton.setText("Paramics");
959        paramicsButton.setToolTipText("");
960        paramicsButton.setFocusPainted(false);
961        paramicsButton.setIconTextGap(0);
962        paramicsButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
963        paramicsButton.setPreferredSize(new java.awt.Dimension(30, 25));
964        paramicsButton.addActionListener(new java.awt.event.ActionListener()
965        {
966            public void actionPerformed(java.awt.event.ActionEvent evt)
967            {
968                paramicsButtonActionPerformed(evt);
969            }
970        });
971
972        towButton.setText("Tow");
973        towButton.setToolTipText("");
974        towButton.setFocusPainted(false);
975        towButton.setIconTextGap(0);
976        towButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
977        towButton.setPreferredSize(new java.awt.Dimension(30, 25));
978        towButton.addActionListener(new java.awt.event.ActionListener()
979        {
980            public void actionPerformed(java.awt.event.ActionEvent evt)
981            {
982                towButtonActionPerformed(evt);
983            }
984        });
985
986        audioButton.setText("Audio");
987        audioButton.setToolTipText("");
988        audioButton.setFocusPainted(false);
989        audioButton.setIconTextGap(0);
990        audioButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
991        audioButton.setPreferredSize(new java.awt.Dimension(30, 25));
992        audioButton.addActionListener(new java.awt.event.ActionListener()
993        {
994            public void actionPerformed(java.awt.event.ActionEvent evt)
995            {
996                audioButtonActionPerformed(evt);
997            }
998        });
999
1000        cctvButton.setText("CCTV");
1001        cctvButton.setToolTipText("");
1002        cctvButton.setFocusPainted(false);
1003        cctvButton.setIconTextGap(0);
1004        cctvButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1005        cctvButton.setPreferredSize(new java.awt.Dimension(30, 25));
1006        cctvButton.addActionListener(new java.awt.event.ActionListener()
1007        {
1008            public void actionPerformed(java.awt.event.ActionEvent evt)
1009            {
1010                cctvButtonActionPerformed(evt);
1011            }
1012        });
1013
1014        cadButton.setText("CAD");
1015        cadButton.setToolTipText("");
1016        cadButton.setFocusPainted(false);
1017        cadButton.setIconTextGap(0);
1018        cadButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1019        cadButton.setPreferredSize(new java.awt.Dimension(30, 25));
1020        cadButton.addActionListener(new java.awt.event.ActionListener()
1021        {
1022            public void actionPerformed(java.awt.event.ActionEvent evt)
1023            {
1024                cadButtonActionPerformed(evt);
1025            }
1026        });
1027
1028        chpRadioButton.setText("CHP Radio");
1029        chpRadioButton.setToolTipText("");
1030        chpRadioButton.setFocusPainted(false);
1031        chpRadioButton.setIconTextGap(0);
1032        chpRadioButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1033        chpRadioButton.setPreferredSize(new java.awt.Dimension(30, 25));
1034        chpRadioButton.addActionListener(new java.awt.event.ActionListener()
1035        {
1036            public void actionPerformed(java.awt.event.ActionEvent evt)
1037            {
1038                chpRadioButtonActionPerformed(evt);
1039            }
1040        });
1041
1042        javax.swing.GroupLayout incidentEventsPanelLayout = new javax.swing.GroupLayout(incidentEventsPanel);
1043        incidentEventsPanel.setLayout(incidentEventsPanelLayout);
1044        incidentEventsPanelLayout.setHorizontalGroup(
1045            incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1046            .addGroup(incidentEventsPanelLayout.createSequentialGroup()
1047                .addContainerGap()
1048                .addGroup(incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1049                    .addGroup(incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1050                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, incidentEventsPanelLayout.createSequentialGroup()
1051                            .addComponent(maintenanceRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1052                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1053                            .addComponent(tmtRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1054                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1055                            .addComponent(telephoneButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1056                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1057                            .addComponent(paramicsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))
1058                        .addGroup(incidentEventsPanelLayout.createSequentialGroup()
1059                            .addComponent(towButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1060                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1061                            .addComponent(unitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1062                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1063                            .addComponent(witnessButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1064                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1065                            .addComponent(audioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)))
1066                    .addGroup(incidentEventsPanelLayout.createSequentialGroup()
1067                        .addComponent(cadButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1068                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1069                        .addComponent(cctvButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
1070                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1071                        .addComponent(chpRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)))
1072                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
1073        );
1074        incidentEventsPanelLayout.setVerticalGroup(
1075            incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1076            .addGroup(incidentEventsPanelLayout.createSequentialGroup()
1077                .addGroup(incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1078                    .addGroup(incidentEventsPanelLayout.createSequentialGroup()
1079                        .addGroup(incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1080                            .addComponent(maintenanceRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1081                            .addComponent(tmtRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1082                            .addComponent(telephoneButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
1083                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1084                        .addGroup(incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1085                            .addComponent(towButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1086                            .addComponent(unitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1087                            .addComponent(witnessButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1088                            .addComponent(audioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
1089                    .addComponent(paramicsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
1090                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1091                .addGroup(incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1092                    .addGroup(incidentEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1093                        .addComponent(cctvButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1094                        .addComponent(chpRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
1095                    .addComponent(cadButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
1096        );
1097
1098        evaluationEventsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Evaluation Events"));
1099
1100        atmsEvalButton.setText("ATMS Evaluation");
1101        atmsEvalButton.setToolTipText("");
1102        atmsEvalButton.setFocusPainted(false);
1103        atmsEvalButton.setIconTextGap(0);
1104        atmsEvalButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1105        atmsEvalButton.setPreferredSize(new java.awt.Dimension(30, 25));
1106        atmsEvalButton.addActionListener(new java.awt.event.ActionListener()
1107        {
1108            public void actionPerformed(java.awt.event.ActionEvent evt)
1109            {
1110                atmsEvalButtonActionPerformed(evt);
1111            }
1112        });
1113
1114        cmsEvalButton.setText("CMS Evaluation");
1115        cmsEvalButton.setToolTipText("");
1116        cmsEvalButton.setFocusPainted(false);
1117        cmsEvalButton.setIconTextGap(0);
1118        cmsEvalButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1119        cmsEvalButton.setPreferredSize(new java.awt.Dimension(30, 25));
1120        cmsEvalButton.addActionListener(new java.awt.event.ActionListener()
1121        {
1122            public void actionPerformed(java.awt.event.ActionEvent evt)
1123            {
1124                cmsEvalButtonActionPerformed(evt);
1125            }
1126        });
1127
1128        cadEvalButton.setText("CAD Evaluation");
1129        cadEvalButton.setToolTipText("");
1130        cadEvalButton.setFocusPainted(false);
1131        cadEvalButton.setIconTextGap(0);
1132        cadEvalButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1133        cadEvalButton.setPreferredSize(new java.awt.Dimension(30, 25));
1134        cadEvalButton.addActionListener(new java.awt.event.ActionListener()
1135        {
1136            public void actionPerformed(java.awt.event.ActionEvent evt)
1137            {
1138                cadEvalButtonActionPerformed(evt);
1139            }
1140        });
1141
1142        facilitatorEvalButton.setText("Facilitator Evaluation");
1143        facilitatorEvalButton.setToolTipText("");
1144        facilitatorEvalButton.setFocusPainted(false);
1145        facilitatorEvalButton.setIconTextGap(0);
1146        facilitatorEvalButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1147        facilitatorEvalButton.setPreferredSize(new java.awt.Dimension(30, 25));
1148        facilitatorEvalButton.addActionListener(new java.awt.event.ActionListener()
1149        {
1150            public void actionPerformed(java.awt.event.ActionEvent evt)
1151            {
1152                facilitatorEvalButtonActionPerformed(evt);
1153            }
1154        });
1155
1156        activityLogEvalButton.setText("Activity Log Evaluation");
1157        activityLogEvalButton.setToolTipText("");
1158        activityLogEvalButton.setFocusPainted(false);
1159        activityLogEvalButton.setIconTextGap(0);
1160        activityLogEvalButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1161        activityLogEvalButton.setPreferredSize(new java.awt.Dimension(30, 25));
1162        activityLogEvalButton.addActionListener(new java.awt.event.ActionListener()
1163        {
1164            public void actionPerformed(java.awt.event.ActionEvent evt)
1165            {
1166                activityLogEvalButtonActionPerformed(evt);
1167            }
1168        });
1169
1170        radioEvalButton.setText("Radio Evaluation");
1171        radioEvalButton.setToolTipText("");
1172        radioEvalButton.setFocusPainted(false);
1173        radioEvalButton.setIconTextGap(0);
1174        radioEvalButton.setMargin(new java.awt.Insets(2, 10, 2, 10));
1175        radioEvalButton.setPreferredSize(new java.awt.Dimension(30, 25));
1176        radioEvalButton.addActionListener(new java.awt.event.ActionListener()
1177        {
1178            public void actionPerformed(java.awt.event.ActionEvent evt)
1179            {
1180                radioEvalButtonActionPerformed(evt);
1181            }
1182        });
1183
1184        javax.swing.GroupLayout evaluationEventsPanelLayout = new javax.swing.GroupLayout(evaluationEventsPanel);
1185        evaluationEventsPanel.setLayout(evaluationEventsPanelLayout);
1186        evaluationEventsPanelLayout.setHorizontalGroup(
1187            evaluationEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1188            .addGroup(evaluationEventsPanelLayout.createSequentialGroup()
1189                .addContainerGap()
1190                .addGroup(evaluationEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1191                    .addGroup(evaluationEventsPanelLayout.createSequentialGroup()
1192                        .addComponent(atmsEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
1193                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1194                        .addComponent(activityLogEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
1195                    .addGroup(evaluationEventsPanelLayout.createSequentialGroup()
1196                        .addComponent(cmsEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
1197                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1198                        .addComponent(facilitatorEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
1199                    .addGroup(evaluationEventsPanelLayout.createSequentialGroup()
1200                        .addComponent(cadEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
1201                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1202                        .addComponent(radioEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)))
1203                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
1204        );
1205        evaluationEventsPanelLayout.setVerticalGroup(
1206            evaluationEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1207            .addGroup(evaluationEventsPanelLayout.createSequentialGroup()
1208                .addGroup(evaluationEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1209                    .addComponent(cmsEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1210                    .addComponent(facilitatorEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
1211                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1212                .addGroup(evaluationEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1213                    .addComponent(atmsEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1214                    .addComponent(activityLogEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
1215                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1216                .addGroup(evaluationEventsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1217                    .addComponent(cadEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
1218                    .addComponent(radioEvalButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
1219        );
1220
1221        zoomInIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/ZoomIn.png"))); // NOI18N
1222        zoomInIcon.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
1223        zoomInIcon.addMouseListener(new java.awt.event.MouseAdapter()
1224        {
1225            public void mouseClicked(java.awt.event.MouseEvent evt)
1226            {
1227                zoomInIconMouseClicked(evt);
1228            }
1229        });
1230
1231        zoomOutIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/ZoomOut.png"))); // NOI18N
1232        zoomOutIcon.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
1233        zoomOutIcon.addMouseListener(new java.awt.event.MouseAdapter()
1234        {
1235            public void mouseClicked(java.awt.event.MouseEvent evt)
1236            {
1237                zoomOutIconMouseClicked(evt);
1238            }
1239        });
1240
1241        timeStampScrollPane.setBorder(null);
1242        timeStampScrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
1243        timeStampScrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
1244
1245        javax.swing.GroupLayout timeStampPanelLayout = new javax.swing.GroupLayout(timeStampPanel);
1246        timeStampPanel.setLayout(timeStampPanelLayout);
1247        timeStampPanelLayout.setHorizontalGroup(
1248            timeStampPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1249            .addGap(0, 1036, Short.MAX_VALUE)
1250        );
1251        timeStampPanelLayout.setVerticalGroup(
1252            timeStampPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1253            .addGap(0, 100, Short.MAX_VALUE)
1254        );
1255
1256        timeStampScrollPane.setViewportView(timeStampPanel);
1257
1258        btnAddTime.setText("+15:00");
1259        btnAddTime.addActionListener(new java.awt.event.ActionListener()
1260        {
1261            public void actionPerformed(java.awt.event.ActionEvent evt)
1262            {
1263                btnAddTimeActionPerformed(evt);
1264            }
1265        });
1266
1267        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
1268        getContentPane().setLayout(layout);
1269        layout.setHorizontalGroup(
1270            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1271            .addGroup(layout.createSequentialGroup()
1272                .addContainerGap()
1273                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1274                    .addGroup(layout.createSequentialGroup()
1275                        .addComponent(selectButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
1276                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1277                        .addComponent(incidentEventsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1278                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1279                        .addComponent(evaluationEventsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1280                        .addGap(18, 18, 18)
1281                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1282                            .addGroup(layout.createSequentialGroup()
1283                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1284                                    .addComponent(zoomInIcon)
1285                                    .addComponent(zoomOutIcon))
1286                                .addGap(0, 0, Short.MAX_VALUE))
1287                            .addGroup(layout.createSequentialGroup()
1288                                .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
1289                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1290                                .addComponent(btnAddTime, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
1291                    .addComponent(timelinesScrollPane, 0, 0, Short.MAX_VALUE)
1292                    .addComponent(timeStampScrollPane)
1293                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
1294                        .addComponent(scriptEventsPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
1295                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1296                        .addComponent(scriptEventsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
1297                .addContainerGap())
1298        );
1299        layout.setVerticalGroup(
1300            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1301            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
1302                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1303                    .addGroup(layout.createSequentialGroup()
1304                        .addContainerGap()
1305                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1306                            .addComponent(evaluationEventsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1307                            .addComponent(incidentEventsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1308                            .addGroup(layout.createSequentialGroup()
1309                                .addGap(47, 47, 47)
1310                                .addComponent(selectButton, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE))))
1311                    .addGroup(layout.createSequentialGroup()
1312                        .addGap(20, 20, 20)
1313                        .addComponent(zoomInIcon)
1314                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1315                            .addGroup(layout.createSequentialGroup()
1316                                .addGap(1, 1, 1)
1317                                .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))
1318                            .addGroup(layout.createSequentialGroup()
1319                                .addGap(17, 17, 17)
1320                                .addComponent(btnAddTime, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)))
1321                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1322                        .addComponent(zoomOutIcon)))
1323                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1324                .addComponent(timeStampScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
1325                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1326                .addComponent(timelinesScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 324, javax.swing.GroupLayout.PREFERRED_SIZE)
1327                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1328                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1329                    .addComponent(scriptEventsPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1330                    .addComponent(scriptEventsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1331                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
1332        );
1333
1334        pack();
1335    }// </editor-fold>//GEN-END:initComponents
1336
1337    /**
1338     * Scale the timeline width based on zoom slider position.
1339     *
1340     * @param evt the state change event
1341     */
1342    private void zoomSliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_zoomSliderStateChanged
1343        ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK = zoomSlider.getValue();
1344        this.update(null, theIncident);
1345        pack();
1346        repaint();
1347    }//GEN-LAST:event_zoomSliderStateChanged
1348
1349    private void cadEventMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cadEventMousePressed
1350    }//GEN-LAST:event_cadEventMousePressed
1351
1352    private void radioEventMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_radioEventMousePressed
1353    }//GEN-LAST:event_radioEventMousePressed
1354
1355    private void cadEventMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cadEventMouseReleased
1356    }//GEN-LAST:event_cadEventMouseReleased
1357
1358    private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
1359    }//GEN-LAST:event_okButtonActionPerformed
1360
1361    /**
1362     * If cancel button is pressed, close radio event editor
1363     *
1364     * @param evt the button press event
1365     */
1366    private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
1367        radioMessage.setText("");
1368        radioTypeComboBox.setSelectedIndex(0);
1369        radioEventFrame.setVisible(false);
1370    }//GEN-LAST:event_cancelButtonActionPerformed
1371
1372    private void editEventListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editEventListActionPerformed
1373    }//GEN-LAST:event_editEventListActionPerformed
1374
1375    /**
1376     * Deselects new event type upon click of blank "select" button.
1377     *
1378     * @param evt the button press event
1379     */
1380    private void selectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectButtonActionPerformed
1381        currentEventType = null;
1382        for (JButton eb : eventButtons)
1383        {
1384            eb.setSelected(false);
1385        }
1386        selectButton.setSelected(true);
1387    }//GEN-LAST:event_selectButtonActionPerformed
1388
1389    /**
1390     * Selects CAD_EVENT as the current type of new event, upon click of "CAD
1391     * Event" button.
1392     *
1393     * @param evt the button press event
1394     */
1395    private void cadButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cadButtonActionPerformed
1396        currentEventType = ScriptEventType.CAD_EVENT;
1397        for (JButton eb : eventButtons)
1398        {
1399            eb.setSelected(false);
1400        }
1401        cadButton.setSelected(true);
1402    }//GEN-LAST:event_cadButtonActionPerformed
1403
1404    /**
1405     * Selects CCTV_EVENT as the current type of new event, upon click of "CCTV
1406     * Event" button.
1407     *
1408     * @param evt the button press event
1409     */
1410    private void cctvButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cctvButtonActionPerformed
1411        currentEventType = ScriptEventType.CCTV_EVENT;
1412        for (JButton eb : eventButtons)
1413        {
1414            eb.setSelected(false);
1415        }
1416        cctvButton.setSelected(true);
1417    }//GEN-LAST:event_cctvButtonActionPerformed
1418
1419    /**
1420     * Selects CHP_RADIO_EVENT as the current type of new event, upon click of
1421     * "CHP Radio Event" button.
1422     *
1423     * @param evt the button press event
1424     */
1425    private void chpRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chpRadioButtonActionPerformed
1426        currentEventType = ScriptEventType.CHP_RADIO_EVENT;
1427        for (JButton eb : eventButtons)
1428        {
1429            eb.setSelected(false);
1430        }
1431        chpRadioButton.setSelected(true);
1432    }//GEN-LAST:event_chpRadioButtonActionPerformed
1433
1434    /**
1435     * Hides the noise generation screen upon click of the "Cancel" button.
1436     *
1437     * @param evt the button press event
1438     */
1439    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
1440        addNoiseFrame.setVisible(false);
1441    }//GEN-LAST:event_jButton1ActionPerformed
1442
1443    /**
1444     * Generates random noise upon click of the "OK" button, then hides the
1445     * noise generation screen.
1446     *
1447     * @param evt the button press event
1448     */
1449    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
1450        Random rng = new Random();
1451        ScriptEventType[] eventTypes = ScriptEventType.values();
1452
1453        /* For prototyping purpose, ignore the sliders and average their values */
1454        int total = jSlider1.getValue() + jSlider2.getValue() + jSlider3.getValue() + jSlider5.getValue() + jSlider4.getValue();
1455        total /= 5;
1456
1457        for (int i = 0; i < theIncident.slices.size(); i++)
1458        {
1459            theIncident.slices.get(i).events.clear();
1460        }
1461
1462        for (int i = 0; i < total; i++)
1463        {
1464            int n = rng.nextInt();
1465            int s = rng.nextInt();
1466            int e = rng.nextInt();
1467            if (n < 0)
1468            {
1469                n *= -1;
1470            }
1471            if (s < 0)
1472            {
1473                s *= -1;
1474            }
1475            if (e < 0)
1476            {
1477                e *= -1;
1478            }
1479
1480            theIncident.slices.get(s % (theIncident.slices.size())).addEvent(ScriptEvent.factoryByType(eventTypes[e % eventTypes.length]));
1481        }
1482
1483        addNoiseFrame.setVisible(false);
1484
1485        this.update(null, theIncident);
1486}//GEN-LAST:event_jButton2ActionPerformed
1487
1488    /**
1489     * Selects WITNESS_EVENT as the current type of new event, upon click of
1490     * "Witness Event" button.
1491     *
1492     * @param evt the button press event
1493     */
1494    private void witnessButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_witnessButtonActionPerformed
1495        currentEventType = ScriptEventType.WITNESS_EVENT;
1496        for (JButton eb : eventButtons)
1497        {
1498            eb.setSelected(false);
1499        }
1500        witnessButton.setSelected(true);
1501    }//GEN-LAST:event_witnessButtonActionPerformed
1502
1503    /**
1504     * Selects UNIT_EVENT as the current type of new event, upon click of "Unit
1505     * Event" button.
1506     *
1507     * @param evt the button press event
1508     */
1509    private void unitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_unitButtonActionPerformed
1510        currentEventType = ScriptEventType.UNIT_EVENT;
1511        for (JButton eb : eventButtons)
1512        {
1513            eb.setSelected(false);
1514        }
1515        unitButton.setSelected(true);
1516    }//GEN-LAST:event_unitButtonActionPerformed
1517
1518    /**
1519     * Selects TOW_EVENT as the current type of new event, upon click of "TOW
1520     * Event" button.
1521     *
1522     * @param evt the button press event
1523     */
1524    private void towButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_towButtonActionPerformed
1525        currentEventType = ScriptEventType.TOW_EVENT;
1526        for (JButton eb : eventButtons)
1527        {
1528            eb.setSelected(false);
1529        }
1530        towButton.setSelected(true);
1531    }//GEN-LAST:event_towButtonActionPerformed
1532
1533    /**
1534     * Selects PARAMICS_EVENT as the current type of new event, upon click of
1535     * "Paramics Event" button.
1536     *
1537     * @param evt the button press event
1538     */
1539    private void paramicsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_paramicsButtonActionPerformed
1540        currentEventType = ScriptEventType.PARAMICS_EVENT;
1541        for (JButton eb : eventButtons)
1542        {
1543            eb.setSelected(false);
1544        }
1545        paramicsButton.setSelected(true);
1546    }//GEN-LAST:event_paramicsButtonActionPerformed
1547
1548    /**
1549     * Selects MAINTENANCE_RADIO_EVENT as the current type of new event, upon
1550     * click of "Maintenance Radio Event" button.
1551     *
1552     * @param evt the button press event
1553     */
1554    private void maintenanceRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_maintenanceRadioButtonActionPerformed
1555        currentEventType = ScriptEventType.MAINTENANCE_RADIO_EVENT;
1556        for (JButton eb : eventButtons)
1557        {
1558            eb.setSelected(false);
1559        }
1560        maintenanceRadioButton.setSelected(true);
1561    }//GEN-LAST:event_maintenanceRadioButtonActionPerformed
1562
1563    /**
1564     * Selects ATMS_EVAL_EVENT as the current type of new event, upon click of
1565     * "ATMS Evaluation Event" button.
1566     *
1567     * @param evt the button press event
1568     */
1569    private void atmsEvalButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_atmsEvalButtonActionPerformed
1570        currentEventType = ScriptEventType.ATMS_EVAL_EVENT;
1571        for (JButton eb : eventButtons)
1572        {
1573            eb.setSelected(false);
1574        }
1575        atmsEvalButton.setSelected(true);
1576    }//GEN-LAST:event_atmsEvalButtonActionPerformed
1577
1578    /**
1579     * Selects TELEPHONE_EVENT as the current type of new event, upon click of
1580     * "Telephone Event" button.
1581     *
1582     * @param evt the button press event
1583     */
1584    private void telephoneButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_telephoneButtonActionPerformed
1585        currentEventType = ScriptEventType.TELEPHONE_EVENT;
1586        for (JButton eb : eventButtons)
1587        {
1588            eb.setSelected(false);
1589        }
1590        telephoneButton.setSelected(true);
1591    }//GEN-LAST:event_telephoneButtonActionPerformed
1592
1593    /**
1594     * Selects TMT_RADIO_EVENT as the current type of new event, upon click of
1595     * "TMT Radio Event" button.
1596     *
1597     * @param evt the button press event
1598     */
1599    private void tmtRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tmtRadioButtonActionPerformed
1600        currentEventType = ScriptEventType.TMT_RADIO_EVENT;
1601        for (JButton eb : eventButtons)
1602        {
1603            eb.setSelected(false);
1604        }
1605        tmtRadioButton.setSelected(true);
1606    }//GEN-LAST:event_tmtRadioButtonActionPerformed
1607
1608    /**
1609     * Selects CMS_EVAL_EVENT as the current type of new event, upon click of
1610     * "CMS Evaluation Event" button.
1611     *
1612     * @param evt the button press event
1613     */
1614    private void cmsEvalButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmsEvalButtonActionPerformed
1615        currentEventType = ScriptEventType.CMS_EVAL_EVENT;
1616        for (JButton eb : eventButtons)
1617        {
1618            eb.setSelected(false);
1619        }
1620        cmsEvalButton.setSelected(true);
1621    }//GEN-LAST:event_cmsEvalButtonActionPerformed
1622
1623    /**
1624     * Selects CAD_EVAL_EVENT as the current type of new event, upon click of
1625     * "CAD Evaluation Event" button.
1626     *
1627     * @param evt the button press event
1628     */
1629    private void cadEvalButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cadEvalButtonActionPerformed
1630        currentEventType = ScriptEventType.CAD_EVAL_EVENT;
1631        for (JButton eb : eventButtons)
1632        {
1633            eb.setSelected(false);
1634        }
1635        cadEvalButton.setSelected(true);
1636    }//GEN-LAST:event_cadEvalButtonActionPerformed
1637
1638    /**
1639     * Selects ACTIVITY_LOG_EVAL_EVENT as the current type of new event, upon
1640     * click of "Activity Log Evaluation Event" button.
1641     *
1642     * @param evt the button press event
1643     */
1644    private void activityLogEvalButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_activityLogEvalButtonActionPerformed
1645        currentEventType = ScriptEventType.ACTIVITY_LOG_EVAL_EVENT;
1646        for (JButton eb : eventButtons)
1647        {
1648            eb.setSelected(false);
1649        }
1650        activityLogEvalButton.setSelected(true);
1651    }//GEN-LAST:event_activityLogEvalButtonActionPerformed
1652
1653    /**
1654     * Selects RADIO_EVAL_EVENT as the current type of new event, upon click of
1655     * "Radio Evaluation Event" button.
1656     *
1657     * @param evt the button press event
1658     */
1659    private void radioEvalButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radioEvalButtonActionPerformed
1660        currentEventType = ScriptEventType.RADIO_EVAL_EVENT;
1661        for (JButton eb : eventButtons)
1662        {
1663            eb.setSelected(false);
1664        }
1665        radioEvalButton.setSelected(true);
1666    }//GEN-LAST:event_radioEvalButtonActionPerformed
1667
1668    /**
1669     * Selects FACILITATOR_EVAL_EVENT as the current type of new event, upon
1670     * click of "Facilitator Evaluation Event" button.
1671     *
1672     * @param evt the button press event
1673     */
1674    private void facilitatorEvalButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_facilitatorEvalButtonActionPerformed
1675        currentEventType = ScriptEventType.FACILITATOR_EVAL_EVENT;
1676        for (JButton eb : eventButtons)
1677        {
1678            eb.setSelected(false);
1679        }
1680        facilitatorEvalButton.setSelected(true);
1681    }//GEN-LAST:event_facilitatorEvalButtonActionPerformed
1682
1683    /**
1684     * Selects AUDIO_EVENT as the current type of new event, upon click of
1685     * "Audio Event" button.
1686     *
1687     * @param evt the button press event
1688     */
1689    private void audioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_audioButtonActionPerformed
1690        currentEventType = ScriptEventType.AUDIO_EVENT;
1691        for (JButton eb : eventButtons)
1692        {
1693            eb.setSelected(false);
1694        }
1695        audioButton.setSelected(true);
1696    }//GEN-LAST:event_audioButtonActionPerformed
1697
1698    /**
1699     * Increases zoom level upon click of the "Zoom in" icon.
1700     *
1701     * @param evt the mouse event
1702     */
1703    private void zoomInIconMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_zoomInIconMouseClicked
1704        zoomSlider.setValue(zoomSlider.getValue() >= 21 ? 21 : zoomSlider.getValue() + 1);
1705    }//GEN-LAST:event_zoomInIconMouseClicked
1706
1707    /**
1708     * Decreases zoom level upon click of the "Zoom out" icon.
1709     *
1710     * @param evt the mouse event
1711     */
1712    private void zoomOutIconMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_zoomOutIconMouseClicked
1713        zoomSlider.setValue(zoomSlider.getValue() <= 5 ? 5 : zoomSlider.getValue() - 1);
1714    }//GEN-LAST:event_zoomOutIconMouseClicked
1715
1716    private void btnAddTimeActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnAddTimeActionPerformed
1717    {//GEN-HEADEREND:event_btnAddTimeActionPerformed
1718        incidentTimelinePanel1.requestedEditorFillerTime += IncidentTimelinePanel.FILLER_INTERVAL_SECONDS;
1719        this.update(null, theIncident);
1720    }//GEN-LAST:event_btnAddTimeActionPerformed
1721
1722    /**
1723     * Read the version number from the application properties. The file
1724     * 'application.properties' is generated by build.xml.
1725     *
1726     * @return a version string obtained from application.properties file, or
1727     * "Version: unknown" if an IOerror prevents us from reading the file.
1728     */
1729    private String getAppVersion()
1730    {
1731        String propfilename = "/scriptbuilder/gui/application.properties";
1732        String propKey = "Application.revision";
1733        String version = "unknown";
1734        // Load the application properties (created by build.xml)
1735        try
1736        {
1737            Properties props = new Properties();
1738            props.load(this.getClass().getResourceAsStream(propfilename));
1739            version = (String) props.get(propKey);
1740        }
1741        catch (IOException ex)
1742        {
1743            Logger.getLogger("scriptbuilder.gui").log(Level.SEVERE,
1744                    "ScriptBuilderFrame.getAppVersion()."
1745                    + " IOError reading " + propfilename);
1746        }
1747        catch (NullPointerException npe)
1748        {
1749            Logger.getLogger("scriptbuilder.gui").log(Level.SEVERE,
1750                    "ScriptBuilderFrame.getAppVersion().load."
1751                    + " Missing file: " + propfilename);
1752        }
1753        return version;
1754    }
1755
1756//    /**
1757//     * Runs the script builder.
1758//     *
1759//     * @param args the command line arguments
1760//     */
1761//    public static void main(String args[])
1762//    {
1763//        try
1764//        {
1765//            UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
1766//        }
1767//        catch (ClassNotFoundException ex)
1768//        {
1769//        }
1770//        catch (InstantiationException ex)
1771//        {
1772//        }
1773//        catch (IllegalAccessException ex)
1774//        {
1775//        }
1776//        catch (UnsupportedLookAndFeelException ex)
1777//        {
1778//        }
1779//
1780//        try
1781//        {
1782//            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
1783//        }
1784//        catch (ClassNotFoundException ex)
1785//        {
1786//        }
1787//        catch (InstantiationException ex)
1788//        {
1789//        }
1790//        catch (IllegalAccessException ex)
1791//        {
1792//        }
1793//        catch (UnsupportedLookAndFeelException ex)
1794//        {
1795//        }
1796//
1797//        java.awt.EventQueue.invokeLater(
1798//                new Runnable()
1799//                {
1800//                    public void run()
1801//                    {
1802//                        new IncidentEditorFrame().setVisible(true);
1803//                    }
1804//                });
1805//    }
1806    // Variables declaration - do not modify//GEN-BEGIN:variables
1807    private javax.swing.JButton activityLogEvalButton;
1808    private javax.swing.JFrame addNoiseFrame;
1809    private javax.swing.JButton atmsEvalButton;
1810    private javax.swing.JButton audioButton;
1811    private javax.swing.JButton btnAddTime;
1812    private javax.swing.JButton cadButton;
1813    private javax.swing.JButton cadEvalButton;
1814    private javax.swing.JMenuItem cadEvent;
1815    private javax.swing.JFrame cadEventFrame;
1816    private javax.swing.JButton cancelButton;
1817    private javax.swing.JButton cctvButton;
1818    private javax.swing.JButton chpRadioButton;
1819    private javax.swing.JButton cmsEvalButton;
1820    private javax.swing.JMenuItem deleteEventList;
1821    private javax.swing.JMenuItem editEventList;
1822    private javax.swing.JPanel evaluationEventsPanel;
1823    private javax.swing.JPopupMenu eventListPopupMenu;
1824    private javax.swing.JPopupMenu eventPopupMenu;
1825    private javax.swing.JButton facilitatorEvalButton;
1826    private javax.swing.JTextArea incidentDescription;
1827    private javax.swing.JScrollPane incidentDescriptionPane;
1828    private javax.swing.JPanel incidentEventsPanel;
1829    private javax.swing.JTextField incidentName;
1830    private javax.swing.JTextField incidentNumber;
1831    private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel1;
1832    private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel1;
1833    private javax.swing.JButton jButton1;
1834    private javax.swing.JButton jButton2;
1835    private javax.swing.JLabel jLabel13;
1836    private javax.swing.JLabel jLabel14;
1837    private javax.swing.JLabel jLabel15;
1838    private javax.swing.JLabel jLabel16;
1839    private javax.swing.JLabel jLabel17;
1840    private javax.swing.JLabel jLabel2;
1841    private javax.swing.JLabel jLabel20;
1842    private javax.swing.JLabel jLabel21;
1843    private javax.swing.JLabel jLabel3;
1844    private javax.swing.JLabel jLabel4;
1845    private javax.swing.JLabel jLabel5;
1846    private javax.swing.JLabel jLabel7;
1847    private javax.swing.JMenuItem jMenuItem2;
1848    private javax.swing.JMenuItem jMenuItem4;
1849    private javax.swing.JMenuItem jMenuItem5;
1850    private javax.swing.JMenuItem jMenuItem6;
1851    private javax.swing.JSlider jSlider1;
1852    private javax.swing.JSlider jSlider2;
1853    private javax.swing.JSlider jSlider3;
1854    private javax.swing.JSlider jSlider4;
1855    private javax.swing.JSlider jSlider5;
1856    private javax.swing.JTextArea jTextArea1;
1857    private javax.swing.JButton maintenanceRadioButton;
1858    private javax.swing.JButton okButton;
1859    private javax.swing.JButton paramicsButton;
1860    private javax.swing.JButton radioEvalButton;
1861    private javax.swing.JMenuItem radioEvent;
1862    private javax.swing.JFrame radioEventFrame;
1863    private javax.swing.JTextArea radioMessage;
1864    private javax.swing.JScrollPane radioMessageScrollPane;
1865    private javax.swing.JComboBox radioTypeComboBox;
1866    private javax.swing.JLabel radioTypeLabel;
1867    private javax.swing.JList scriptEventsList;
1868    private javax.swing.JScrollPane scriptEventsPane;
1869    private javax.swing.JPanel scriptEventsPanel;
1870    private javax.swing.JPanel scriptEventsPanel1;
1871    private javax.swing.JButton selectButton;
1872    private javax.swing.JButton telephoneButton;
1873    private scriptbuilder.gui.panels.TimeStampPanel timeStampPanel;
1874    private javax.swing.JScrollPane timeStampScrollPane;
1875    private scriptbuilder.gui.panels.TimelineTickPanel timelineTickPanel;
1876    private javax.swing.JScrollPane timelinesScrollPane;
1877    private javax.swing.JButton tmtRadioButton;
1878    private javax.swing.JButton towButton;
1879    private javax.swing.JButton unitButton;
1880    private javax.swing.JButton witnessButton;
1881    private javax.swing.JLabel zoomInIcon;
1882    private javax.swing.JLabel zoomOutIcon;
1883    private javax.swing.JSlider zoomSlider;
1884    // End of variables declaration//GEN-END:variables
1885}
Note: See TracBrowser for help on using the repository browser.