/* * ScriptBuilderFrame.java * * Created on May 8, 2010, 12:01:46 PM */ package scriptbuilder.gui; import java.awt.Adjustable; import java.awt.Color; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.File; import java.io.IOException; import java.util.Observable; import java.util.Observer; import java.util.Properties; import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.DefaultListModel; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import scriptbuilder.structures.ScriptEvent; import scriptbuilder.structures.ScriptEvent.ScriptEventType; import scriptbuilder.structures.ScriptIncident; import scriptbuilder.structures.ScriptIncident.IncidentFocusedEvent; import scriptbuilder.structures.ScriptIncident.SliceChangedEvent; import scriptbuilder.structures.SimulationScript; import scriptbuilder.structures.TimeSlice; import scriptbuilder.structures.events.I_ScriptEvent; /** * GUI for the script builder. Contains all panels and editor elements. Performs * updates to reflect script model, which it observes. * * @author Greg Eddington * @author Bryan McGuffin */ public class ScriptBuilderFrame extends javax.swing.JFrame implements Observer { /** * The script model. */ private SimulationScript script; /** * The current type of selected event. */ public ScriptEventType currentEventType; /** * True if we are currently editing an incident. */ private boolean editingIncident; /** * Index of the previous incident. */ private int oldIncidentIndex; /** * Get the script currently in use. * * @return the script model object */ public SimulationScript getScript() { return script; } /** * Listener for the scroll pane. */ class MyAdjustmentListener implements AdjustmentListener { /** * If the incident timeline is scrolled horizontally, the timestamp * panel is updated to reflect it. * * @param evt the adjustment event */ @Override public void adjustmentValueChanged(AdjustmentEvent evt) { if (evt.getAdjustable().getOrientation() == Adjustable.HORIZONTAL) { timeStampScrollPane.getHorizontalScrollBar() .setValue(timelinesScrollPane.getHorizontalScrollBar().getValue()); } else { // Event from vertical scrollbar } repaint(); } } /** * Listener for key presses. Used for hotkeys for different event types. */ private class TimelineKeyListener implements KeyListener { /** * If a hotkey is pressed, select that type of event. * * @param e the key event */ @Override public void keyPressed(KeyEvent e) { repaint(); } /** * Take no action upon key release. * * @param e the key event */ @Override public void keyReleased(KeyEvent e) { } /** * Take no action upon key release. * * @param e the key event */ @Override public void keyTyped(KeyEvent e) { } } /** * Constructor. Prep new script model, initialize the GUI, and add listeners * for all buttons. */ public ScriptBuilderFrame() { script = new SimulationScript(); script.addObserver(this); initComponents(); this.update(null, script); // Hack to refresh the zoom /* zoomSlider.setValue(zoomSlider.getValue() - 1); zoomSlider.setValue(zoomSlider.getValue() + 1); */ // Set listener for scroll pane AdjustmentListener listener = new MyAdjustmentListener(); timelinesScrollPane.getHorizontalScrollBar().addAdjustmentListener(listener); timelinesScrollPane.getVerticalScrollBar().addAdjustmentListener(listener); } /** * Update the GUI to reflect the model. If the script changed, update all * the incident panels. If a timeslice changed, add any new events to the * model. If an incident gained focus, update the incident info screen to * display its details. * * @param o The observed object * @param arg Either the script model or an incident event, depending on who * called this update */ @Override public void update(Observable o, Object arg) { if (arg instanceof SimulationScript) { script = (SimulationScript) arg; if (script.incidents.size() != 10) { return; } timelineTickPanel.update(script); timeStampPanel.update(script); incidentTimelinePanel1.timelinePanelUpdate(script.incidents.get(0)); incidentTimelinePanel2.timelinePanelUpdate(script.incidents.get(1)); incidentTimelinePanel3.timelinePanelUpdate(script.incidents.get(2)); incidentTimelinePanel4.timelinePanelUpdate(script.incidents.get(3)); incidentTimelinePanel5.timelinePanelUpdate(script.incidents.get(4)); incidentTimelinePanel6.timelinePanelUpdate(script.incidents.get(5)); incidentTimelinePanel7.timelinePanelUpdate(script.incidents.get(6)); incidentTimelinePanel8.timelinePanelUpdate(script.incidents.get(7)); incidentTimelinePanel9.timelinePanelUpdate(script.incidents.get(8)); incidentTimelinePanel10.timelinePanelUpdate(script.incidents.get(9)); incidentNumberPanel1.update(script.incidents.get(0)); incidentNumberPanel2.update(script.incidents.get(1)); incidentNumberPanel3.update(script.incidents.get(2)); incidentNumberPanel4.update(script.incidents.get(3)); incidentNumberPanel5.update(script.incidents.get(4)); incidentNumberPanel6.update(script.incidents.get(5)); incidentNumberPanel7.update(script.incidents.get(6)); incidentNumberPanel8.update(script.incidents.get(7)); incidentNumberPanel9.update(script.incidents.get(8)); incidentNumberPanel10.update(script.incidents.get(9)); /** * DefaultComboBoxModel model = new DefaultComboBoxModel(); for * (ScriptIncident i : script.incidents) { if (i != null) * model.addElement(i); } gotoIncident.setModel(model);* */ this.setPreferredSize(this.getSize()); pack(); } else if (arg instanceof SliceChangedEvent) { TimeSlice slice = ((SliceChangedEvent) arg).slice; DefaultListModel model = new DefaultListModel(); for (I_ScriptEvent e : slice.events) { model.addElement(e); } } else if (arg instanceof IncidentFocusedEvent) { ScriptIncident i = ((IncidentFocusedEvent) arg).incident; //gotoIncident.setSelectedItem(i); } zoomSlider.setMinimum(((timelineTickPanel.getVisibleRect().width - 20) * ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION) / Math.max(script.absoluteLength(), ScriptBuilderGuiConstants.TICK_TIMELINE_SMALLEST_LENGTH)); zoomSlider.setMaximum(zoomSlider.getMinimum() + 20); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { incidentPopupMenu = new javax.swing.JPopupMenu(); popupDeleteIncident = new javax.swing.JMenuItem(); eventPopupMenu = new javax.swing.JPopupMenu(); cadEvent = new javax.swing.JMenuItem(); jMenuItem2 = new javax.swing.JMenuItem(); radioEvent = new javax.swing.JMenuItem(); jMenuItem4 = new javax.swing.JMenuItem(); jMenuItem5 = new javax.swing.JMenuItem(); jMenuItem6 = new javax.swing.JMenuItem(); cadEventFrame = new javax.swing.JFrame(); jLabel5 = new javax.swing.JLabel(); radioEventFrame = new javax.swing.JFrame(); radioTypeLabel = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); radioTypeComboBox = new javax.swing.JComboBox(); radioMessageScrollPane = new javax.swing.JScrollPane(); radioMessage = new javax.swing.JTextArea(); okButton = new javax.swing.JButton(); cancelButton = new javax.swing.JButton(); eventListPopupMenu = new javax.swing.JPopupMenu(); editEventList = new javax.swing.JMenuItem(); deleteEventList = new javax.swing.JMenuItem(); incidentFrame = new javax.swing.JFrame(); jLabel6 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); addIncidentDescription = new javax.swing.JTextArea(); incidentOkButton = new javax.swing.JButton(); incidentCancelButton = new javax.swing.JButton(); addIncidentNumber = new javax.swing.JSpinner(); addIncidentName = new javax.swing.JTextField(); jLabel11 = new javax.swing.JLabel(); addIncidentLength = new javax.swing.JSpinner(); jLabel12 = new javax.swing.JLabel(); addIncidentStart = new javax.swing.JSpinner(); jButton3 = new javax.swing.JButton(); incidentColorField = new javax.swing.JTextField(); addNoiseFrame = new javax.swing.JFrame(); jLabel13 = new javax.swing.JLabel(); jSlider1 = new javax.swing.JSlider(); jSlider2 = new javax.swing.JSlider(); jLabel14 = new javax.swing.JLabel(); jSlider3 = new javax.swing.JSlider(); jLabel15 = new javax.swing.JLabel(); jTextArea1 = new javax.swing.JTextArea(); jSlider4 = new javax.swing.JSlider(); jLabel16 = new javax.swing.JLabel(); jSlider5 = new javax.swing.JSlider(); jLabel17 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jLabel20 = new javax.swing.JLabel(); jLabel21 = new javax.swing.JLabel(); incidentColorChooser = new javax.swing.JColorChooser(); timelinesScrollPane = new javax.swing.JScrollPane(); timelineTickPanel = new scriptbuilder.gui.panels.TimelineTickPanel(); incidentTimelinePanel1 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel2 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel8 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel3 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel6 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel5 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel4 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel7 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel10 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentTimelinePanel9 = new scriptbuilder.gui.panels.IncidentTimelinePanel(); incidentNumberPanel1 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel2 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel3 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel4 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel5 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel6 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel7 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel8 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel9 = new scriptbuilder.gui.panels.IncidentNumberPanel(); incidentNumberPanel10 = new scriptbuilder.gui.panels.IncidentNumberPanel(); zoomSlider = new javax.swing.JSlider(); zoomInIcon = new javax.swing.JLabel(); zoomOutIcon = new javax.swing.JLabel(); timeStampScrollPane = new javax.swing.JScrollPane(); timeStampPanel = new scriptbuilder.gui.panels.TimeStampPanel(); scriptBuilderMenuBar = new javax.swing.JMenuBar(); fileMenu = new javax.swing.JMenu(); fileNew = new javax.swing.JMenuItem(); jSeparator1 = new javax.swing.JPopupMenu.Separator(); fileOpen = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JPopupMenu.Separator(); fileSave = new javax.swing.JMenuItem(); fileSaveAs = new javax.swing.JMenuItem(); generateMenu = new javax.swing.JMenu(); generateNotebooks = new javax.swing.JMenuItem(); jMenuItem3 = new javax.swing.JMenuItem(); generateScorecards = new javax.swing.JMenuItem(); generateOrganizationChart = new javax.swing.JMenuItem(); jSeparator3 = new javax.swing.JPopupMenu.Separator(); generateProjectRequirements = new javax.swing.JMenuItem(); incidentMenu = new javax.swing.JMenu(); newIncident = new javax.swing.JMenuItem(); editIncident = new javax.swing.JMenuItem(); incidentDetails = new javax.swing.JMenuItem(); jSeparator4 = new javax.swing.JPopupMenu.Separator(); saveIncident = new javax.swing.JMenuItem(); loadIncident = new javax.swing.JMenuItem(); generateNoiseMenu = new javax.swing.JMenu(); generateNoiseOption = new javax.swing.JMenuItem(); helpMenu = new javax.swing.JMenu(); helpTutorial = new javax.swing.JMenuItem(); helpAbout = new javax.swing.JMenuItem(); popupDeleteIncident.setText("Delete Incident..."); incidentPopupMenu.add(popupDeleteIncident); cadEvent.setText("CAD Event"); cadEvent.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent evt) { cadEventMousePressed(evt); } public void mouseReleased(java.awt.event.MouseEvent evt) { cadEventMouseReleased(evt); } }); eventPopupMenu.add(cadEvent); jMenuItem2.setText("Paramics Event"); eventPopupMenu.add(jMenuItem2); radioEvent.setText("Radio Event"); radioEvent.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent evt) { radioEventMousePressed(evt); } }); eventPopupMenu.add(radioEvent); jMenuItem4.setText("Telephone Event"); eventPopupMenu.add(jMenuItem4); jMenuItem5.setText("Video Event"); eventPopupMenu.add(jMenuItem5); jMenuItem6.setText("Evaluation Event"); eventPopupMenu.add(jMenuItem6); cadEventFrame.setMinimumSize(new java.awt.Dimension(400, 300)); jLabel5.setText("CAD Entry"); javax.swing.GroupLayout cadEventFrameLayout = new javax.swing.GroupLayout(cadEventFrame.getContentPane()); cadEventFrame.getContentPane().setLayout(cadEventFrameLayout); cadEventFrameLayout.setHorizontalGroup( cadEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(cadEventFrameLayout.createSequentialGroup() .addContainerGap() .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); cadEventFrameLayout.setVerticalGroup( cadEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(cadEventFrameLayout.createSequentialGroup() .addContainerGap() .addComponent(jLabel5) .addContainerGap(1357, Short.MAX_VALUE)) ); radioEventFrame.setTitle("Add Radio Event"); radioEventFrame.setMinimumSize(new java.awt.Dimension(400, 300)); radioTypeLabel.setText("Radio Type:"); jLabel7.setText("Radio Message:"); radioTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "TMT", "Maintanence" })); radioMessageScrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); radioMessage.setColumns(20); radioMessage.setLineWrap(true); radioMessage.setRows(5); radioMessage.setWrapStyleWord(true); radioMessageScrollPane.setViewportView(radioMessage); okButton.setText("OK"); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); cancelButton.setText("Cancel"); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); javax.swing.GroupLayout radioEventFrameLayout = new javax.swing.GroupLayout(radioEventFrame.getContentPane()); radioEventFrame.getContentPane().setLayout(radioEventFrameLayout); radioEventFrameLayout.setHorizontalGroup( radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, radioEventFrameLayout.createSequentialGroup() .addContainerGap() .addGroup(radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(radioMessageScrollPane, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, radioEventFrameLayout.createSequentialGroup() .addComponent(radioTypeLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(radioTypeComboBox, 0, 312, Short.MAX_VALUE)) .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, radioEventFrameLayout.createSequentialGroup() .addComponent(cancelButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 246, Short.MAX_VALUE) .addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); radioEventFrameLayout.setVerticalGroup( radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(radioEventFrameLayout.createSequentialGroup() .addContainerGap() .addGroup(radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(radioTypeLabel) .addComponent(radioTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(radioMessageScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(radioEventFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(okButton) .addComponent(cancelButton)) .addContainerGap()) ); editEventList.setText("Edit..."); editEventList.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { editEventListActionPerformed(evt); } }); eventListPopupMenu.add(editEventList); deleteEventList.setText("Delete..."); eventListPopupMenu.add(deleteEventList); incidentFrame.setTitle("Incident"); incidentFrame.setMinimumSize(new java.awt.Dimension(400, 400)); jLabel6.setText("Incident Number: "); jLabel8.setText("Incident Name:"); jLabel9.setText("Incident Color: "); jLabel10.setText("Incident Description:"); jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); addIncidentDescription.setColumns(20); addIncidentDescription.setLineWrap(true); addIncidentDescription.setRows(5); addIncidentDescription.setWrapStyleWord(true); jScrollPane1.setViewportView(addIncidentDescription); incidentOkButton.setText("OK"); incidentOkButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { incidentOkButtonActionPerformed(evt); } }); incidentCancelButton.setText("Cancel"); incidentCancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { incidentCancelButtonActionPerformed(evt); } }); addIncidentNumber.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(101), Integer.valueOf(101), null, Integer.valueOf(1))); jLabel11.setText("Incident Length in Minutes: "); addIncidentLength.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1))); jLabel12.setText("Incident Start Time in Minutes:"); addIncidentStart.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1))); jButton3.setText("Choose..."); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); incidentColorField.setEditable(false); incidentColorField.setBackground(new java.awt.Color(0, 0, 0)); javax.swing.GroupLayout incidentFrameLayout = new javax.swing.GroupLayout(incidentFrame.getContentPane()); incidentFrame.getContentPane().setLayout(incidentFrameLayout); incidentFrameLayout.setHorizontalGroup( incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, incidentFrameLayout.createSequentialGroup() .addContainerGap() .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 322, Short.MAX_VALUE) .addComponent(jLabel10, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, incidentFrameLayout.createSequentialGroup() .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel6) .addComponent(jLabel8) .addComponent(jLabel9)) .addGap(18, 18, 18) .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(addIncidentName, javax.swing.GroupLayout.DEFAULT_SIZE, 218, Short.MAX_VALUE) .addComponent(addIncidentNumber, javax.swing.GroupLayout.DEFAULT_SIZE, 218, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, incidentFrameLayout.createSequentialGroup() .addComponent(incidentColorField, javax.swing.GroupLayout.DEFAULT_SIZE, 119, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, incidentFrameLayout.createSequentialGroup() .addComponent(incidentCancelButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 188, Short.MAX_VALUE) .addComponent(incidentOkButton, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, incidentFrameLayout.createSequentialGroup() .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel12) .addComponent(jLabel11)) .addGap(18, 18, 18) .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(addIncidentStart, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE) .addComponent(addIncidentLength, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE)))) .addContainerGap()) ); incidentFrameLayout.setVerticalGroup( incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(incidentFrameLayout.createSequentialGroup() .addContainerGap() .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel6) .addComponent(addIncidentNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8) .addComponent(addIncidentName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel9) .addComponent(jButton3) .addComponent(incidentColorField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel10) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(addIncidentStart, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel12)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(addIncidentLength, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel11)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(incidentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(incidentCancelButton) .addComponent(incidentOkButton)) .addContainerGap()) ); addNoiseFrame.setTitle("Generate Noise"); addNoiseFrame.setMinimumSize(new java.awt.Dimension(395, 315)); addNoiseFrame.setResizable(false); jLabel13.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel13.setText("Radio Chatter: "); jLabel14.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel14.setText("Lane Closures:"); jLabel15.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel15.setText("TMCAL Logs:"); jTextArea1.setEditable(false); jTextArea1.setColumns(20); jTextArea1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jTextArea1.setLineWrap(true); jTextArea1.setRows(5); jTextArea1.setText("Noise events will be randomly generated for the simulation with frequencies based on the control selections made below"); jTextArea1.setWrapStyleWord(true); jTextArea1.setAutoscrolls(false); jTextArea1.setBorder(null); jTextArea1.setDisabledTextColor(new java.awt.Color(0, 0, 0)); jTextArea1.setFocusable(false); jTextArea1.setOpaque(false); jLabel16.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel16.setText("Background Noise: "); jLabel17.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel17.setText("Minor Events:"); jButton1.setText("Cancel"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("Generate"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jLabel20.setText("Least Frequent"); jLabel21.setText("Most Frequent"); javax.swing.GroupLayout addNoiseFrameLayout = new javax.swing.GroupLayout(addNoiseFrame.getContentPane()); addNoiseFrame.getContentPane().setLayout(addNoiseFrameLayout); addNoiseFrameLayout.setHorizontalGroup( addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addNoiseFrameLayout.createSequentialGroup() .addContainerGap(21, Short.MAX_VALUE) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTextArea1, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, addNoiseFrameLayout.createSequentialGroup() .addComponent(jButton1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton2)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, addNoiseFrameLayout.createSequentialGroup() .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel16) .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(4, 4, 4) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jSlider2, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jSlider3, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jSlider5, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jSlider4, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addNoiseFrameLayout.createSequentialGroup() .addComponent(jLabel20) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel21)))))) .addGap(20, 20, 20)) ); addNoiseFrameLayout.setVerticalGroup( addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addNoiseFrameLayout.createSequentialGroup() .addContainerGap() .addComponent(jTextArea1, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel21) .addComponent(jLabel20)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jSlider1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jSlider2, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jLabel15) .addComponent(jSlider3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jSlider4, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jSlider5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel17)) .addGap(18, 18, 18) .addGroup(addNoiseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton1) .addComponent(jButton2)) .addContainerGap()) ); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Script Builder"); setBounds(new java.awt.Rectangle(0, 23, 800, 700)); setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); setMinimumSize(new java.awt.Dimension(800, 700)); timelinesScrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); timelinesScrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); timelinesScrollPane.setFocusCycleRoot(true); timelinesScrollPane.setFocusTraversalPolicyProvider(true); timelinesScrollPane.setPreferredSize(new java.awt.Dimension(72000, 1341)); timelinesScrollPane.setWheelScrollingEnabled(false); timelineTickPanel.setMaximumSize(new java.awt.Dimension(7200, 32767)); timelineTickPanel.setMinimumSize(new java.awt.Dimension(7200, 0)); timelineTickPanel.setPreferredSize(new java.awt.Dimension(7200, 1317)); incidentTimelinePanel1.setMaximumSize(new java.awt.Dimension(32767, 100)); incidentTimelinePanel1.setOpaque(false); incidentTimelinePanel1.setPreferredSize(new java.awt.Dimension(691, 100)); javax.swing.GroupLayout incidentTimelinePanel1Layout = new javax.swing.GroupLayout(incidentTimelinePanel1); incidentTimelinePanel1.setLayout(incidentTimelinePanel1Layout); incidentTimelinePanel1Layout.setHorizontalGroup( incidentTimelinePanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 691, Short.MAX_VALUE) ); incidentTimelinePanel1Layout.setVerticalGroup( incidentTimelinePanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 100, Short.MAX_VALUE) ); incidentTimelinePanel2.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel2Layout = new javax.swing.GroupLayout(incidentTimelinePanel2); incidentTimelinePanel2.setLayout(incidentTimelinePanel2Layout); incidentTimelinePanel2Layout.setHorizontalGroup( incidentTimelinePanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel2Layout.setVerticalGroup( incidentTimelinePanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel8.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel8Layout = new javax.swing.GroupLayout(incidentTimelinePanel8); incidentTimelinePanel8.setLayout(incidentTimelinePanel8Layout); incidentTimelinePanel8Layout.setHorizontalGroup( incidentTimelinePanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel8Layout.setVerticalGroup( incidentTimelinePanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel3.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel3Layout = new javax.swing.GroupLayout(incidentTimelinePanel3); incidentTimelinePanel3.setLayout(incidentTimelinePanel3Layout); incidentTimelinePanel3Layout.setHorizontalGroup( incidentTimelinePanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel3Layout.setVerticalGroup( incidentTimelinePanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel6.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel6Layout = new javax.swing.GroupLayout(incidentTimelinePanel6); incidentTimelinePanel6.setLayout(incidentTimelinePanel6Layout); incidentTimelinePanel6Layout.setHorizontalGroup( incidentTimelinePanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel6Layout.setVerticalGroup( incidentTimelinePanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel5.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel5Layout = new javax.swing.GroupLayout(incidentTimelinePanel5); incidentTimelinePanel5.setLayout(incidentTimelinePanel5Layout); incidentTimelinePanel5Layout.setHorizontalGroup( incidentTimelinePanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel5Layout.setVerticalGroup( incidentTimelinePanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel4.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel4Layout = new javax.swing.GroupLayout(incidentTimelinePanel4); incidentTimelinePanel4.setLayout(incidentTimelinePanel4Layout); incidentTimelinePanel4Layout.setHorizontalGroup( incidentTimelinePanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel4Layout.setVerticalGroup( incidentTimelinePanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel7.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel7Layout = new javax.swing.GroupLayout(incidentTimelinePanel7); incidentTimelinePanel7.setLayout(incidentTimelinePanel7Layout); incidentTimelinePanel7Layout.setHorizontalGroup( incidentTimelinePanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel7Layout.setVerticalGroup( incidentTimelinePanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel10.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel10Layout = new javax.swing.GroupLayout(incidentTimelinePanel10); incidentTimelinePanel10.setLayout(incidentTimelinePanel10Layout); incidentTimelinePanel10Layout.setHorizontalGroup( incidentTimelinePanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel10Layout.setVerticalGroup( incidentTimelinePanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel9.setOpaque(false); javax.swing.GroupLayout incidentTimelinePanel9Layout = new javax.swing.GroupLayout(incidentTimelinePanel9); incidentTimelinePanel9.setLayout(incidentTimelinePanel9Layout); incidentTimelinePanel9Layout.setHorizontalGroup( incidentTimelinePanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentTimelinePanel9Layout.setVerticalGroup( incidentTimelinePanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel1.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel1Layout = new javax.swing.GroupLayout(incidentNumberPanel1); incidentNumberPanel1.setLayout(incidentNumberPanel1Layout); incidentNumberPanel1Layout.setHorizontalGroup( incidentNumberPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel1Layout.setVerticalGroup( incidentNumberPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel2.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel2Layout = new javax.swing.GroupLayout(incidentNumberPanel2); incidentNumberPanel2.setLayout(incidentNumberPanel2Layout); incidentNumberPanel2Layout.setHorizontalGroup( incidentNumberPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel2Layout.setVerticalGroup( incidentNumberPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel3.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel3Layout = new javax.swing.GroupLayout(incidentNumberPanel3); incidentNumberPanel3.setLayout(incidentNumberPanel3Layout); incidentNumberPanel3Layout.setHorizontalGroup( incidentNumberPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel3Layout.setVerticalGroup( incidentNumberPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel4.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel4Layout = new javax.swing.GroupLayout(incidentNumberPanel4); incidentNumberPanel4.setLayout(incidentNumberPanel4Layout); incidentNumberPanel4Layout.setHorizontalGroup( incidentNumberPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel4Layout.setVerticalGroup( incidentNumberPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel5.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel5Layout = new javax.swing.GroupLayout(incidentNumberPanel5); incidentNumberPanel5.setLayout(incidentNumberPanel5Layout); incidentNumberPanel5Layout.setHorizontalGroup( incidentNumberPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel5Layout.setVerticalGroup( incidentNumberPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel6.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel6Layout = new javax.swing.GroupLayout(incidentNumberPanel6); incidentNumberPanel6.setLayout(incidentNumberPanel6Layout); incidentNumberPanel6Layout.setHorizontalGroup( incidentNumberPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel6Layout.setVerticalGroup( incidentNumberPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel7.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel7Layout = new javax.swing.GroupLayout(incidentNumberPanel7); incidentNumberPanel7.setLayout(incidentNumberPanel7Layout); incidentNumberPanel7Layout.setHorizontalGroup( incidentNumberPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel7Layout.setVerticalGroup( incidentNumberPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel8.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel8Layout = new javax.swing.GroupLayout(incidentNumberPanel8); incidentNumberPanel8.setLayout(incidentNumberPanel8Layout); incidentNumberPanel8Layout.setHorizontalGroup( incidentNumberPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel8Layout.setVerticalGroup( incidentNumberPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel9.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel9Layout = new javax.swing.GroupLayout(incidentNumberPanel9); incidentNumberPanel9.setLayout(incidentNumberPanel9Layout); incidentNumberPanel9Layout.setHorizontalGroup( incidentNumberPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel9Layout.setVerticalGroup( incidentNumberPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel10.setOpaque(false); javax.swing.GroupLayout incidentNumberPanel10Layout = new javax.swing.GroupLayout(incidentNumberPanel10); incidentNumberPanel10.setLayout(incidentNumberPanel10Layout); incidentNumberPanel10Layout.setHorizontalGroup( incidentNumberPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); incidentNumberPanel10Layout.setVerticalGroup( incidentNumberPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); javax.swing.GroupLayout timelineTickPanelLayout = new javax.swing.GroupLayout(timelineTickPanel); timelineTickPanel.setLayout(timelineTickPanelLayout); timelineTickPanelLayout.setHorizontalGroup( timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(timelineTickPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(incidentNumberPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(incidentNumberPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(incidentNumberPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(10, 10, 10) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(incidentTimelinePanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(incidentTimelinePanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(incidentTimelinePanel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(incidentTimelinePanel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(incidentTimelinePanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentTimelinePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentTimelinePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentTimelinePanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentTimelinePanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentTimelinePanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(190, 190, 190)) ); timelineTickPanelLayout.setVerticalGroup( timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(timelineTickPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(incidentNumberPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentTimelinePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(timelineTickPanelLayout.createSequentialGroup() .addComponent(incidentNumberPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentNumberPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentNumberPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentNumberPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentNumberPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(timelineTickPanelLayout.createSequentialGroup() .addComponent(incidentTimelinePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentTimelinePanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentTimelinePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentTimelinePanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentTimelinePanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(incidentTimelinePanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentNumberPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(timelineTickPanelLayout.createSequentialGroup() .addComponent(incidentTimelinePanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentTimelinePanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(timelineTickPanelLayout.createSequentialGroup() .addComponent(incidentNumberPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(incidentNumberPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(timelineTickPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(incidentNumberPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(incidentTimelinePanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); timelinesScrollPane.setViewportView(timelineTickPanel); zoomSlider.setMaximum(22); zoomSlider.setMinimum(4); zoomSlider.setValue(4); zoomSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); zoomSlider.setFocusable(false); zoomSlider.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { zoomSliderStateChanged(evt); } }); zoomInIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/ZoomIn.png"))); // NOI18N zoomInIcon.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); zoomInIcon.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { zoomInIconMouseClicked(evt); } }); zoomOutIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/ZoomOut.png"))); // NOI18N zoomOutIcon.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); zoomOutIcon.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { zoomOutIconMouseClicked(evt); } }); timeStampScrollPane.setBorder(null); timeStampScrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); timeStampScrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); javax.swing.GroupLayout timeStampPanelLayout = new javax.swing.GroupLayout(timeStampPanel); timeStampPanel.setLayout(timeStampPanelLayout); timeStampPanelLayout.setHorizontalGroup( timeStampPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); timeStampPanelLayout.setVerticalGroup( timeStampPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); timeStampScrollPane.setViewportView(timeStampPanel); fileMenu.setText("File"); fileMenu.setMargin(new java.awt.Insets(0, 10, 0, 10)); fileMenu.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fileMenuActionPerformed(evt); } }); fileNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); fileNew.setText("New"); fileNew.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fileNewActionPerformed(evt); } }); fileMenu.add(fileNew); fileMenu.add(jSeparator1); fileOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); fileOpen.setText("Open..."); fileOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fileOpenActionPerformed(evt); } }); fileMenu.add(fileOpen); fileMenu.add(jSeparator2); fileSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK)); fileSave.setText("Save"); fileSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fileSaveActionPerformed(evt); } }); fileMenu.add(fileSave); fileSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); fileSaveAs.setText("Save as..."); fileSaveAs.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fileSaveAsActionPerformed(evt); } }); fileMenu.add(fileSaveAs); scriptBuilderMenuBar.add(fileMenu); generateMenu.setLabel("Generate"); generateMenu.setMargin(new java.awt.Insets(0, 10, 0, 10)); generateNotebooks.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); generateNotebooks.setText("Generate Notebooks..."); generateNotebooks.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { generateNotebooksActionPerformed(evt); } }); generateMenu.add(generateNotebooks); jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); jMenuItem3.setText("Generate Web Notebook..."); generateMenu.add(jMenuItem3); generateScorecards.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); generateScorecards.setText("Generate Scorecards..."); generateScorecards.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { generateScorecardsActionPerformed(evt); } }); generateMenu.add(generateScorecards); generateOrganizationChart.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); generateOrganizationChart.setText("Generate D14 TMC Org Chart..."); generateOrganizationChart.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { generateOrganizationChartActionPerformed(evt); } }); generateMenu.add(generateOrganizationChart); generateMenu.add(jSeparator3); generateProjectRequirements.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); generateProjectRequirements.setText("Generate Project Worklist..."); generateProjectRequirements.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { generateProjectRequirementsActionPerformed(evt); } }); generateMenu.add(generateProjectRequirements); scriptBuilderMenuBar.add(generateMenu); incidentMenu.setText("Incidents"); incidentMenu.setMargin(new java.awt.Insets(0, 10, 0, 10)); newIncident.setText("New Incident..."); newIncident.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { newIncidentActionPerformed(evt); } }); incidentMenu.add(newIncident); editIncident.setText("Edit Incident..."); editIncident.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { editIncidentActionPerformed(evt); } }); incidentMenu.add(editIncident); incidentDetails.setText("Incident Details..."); incidentDetails.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { incidentDetailsActionPerformed(evt); } }); incidentMenu.add(incidentDetails); incidentMenu.add(jSeparator4); saveIncident.setText("Save Incident..."); saveIncident.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveIncidentActionPerformed(evt); } }); incidentMenu.add(saveIncident); loadIncident.setText("Load Incident..."); loadIncident.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { loadIncidentActionPerformed(evt); } }); incidentMenu.add(loadIncident); scriptBuilderMenuBar.add(incidentMenu); generateNoiseMenu.setText("Noise"); generateNoiseOption.setText("Generate Noise..."); generateNoiseOption.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { generateNoiseOptionActionPerformed(evt); } }); generateNoiseMenu.add(generateNoiseOption); scriptBuilderMenuBar.add(generateNoiseMenu); helpMenu.setText("Help"); helpMenu.setMargin(new java.awt.Insets(0, 10, 0, 10)); helpTutorial.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0)); helpTutorial.setText("Tutorial..."); helpMenu.add(helpTutorial); helpAbout.setText("About..."); helpAbout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { helpAboutActionPerformed(evt); } }); helpMenu.add(helpAbout); scriptBuilderMenuBar.add(helpMenu); setJMenuBar(scriptBuilderMenuBar); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(timelinesScrollPane, 0, 0, Short.MAX_VALUE) .addComponent(timeStampScrollPane) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(0, 597, Short.MAX_VALUE) .addComponent(zoomOutIcon) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(zoomInIcon) .addGap(136, 136, 136))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(zoomOutIcon) .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(zoomInIcon)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(timeStampScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(timelinesScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 1289, Short.MAX_VALUE) .addContainerGap()) ); pack(); }// //GEN-END:initComponents /** * Scale the timeline width based on zoom slider position. * * @param evt the state change event */ private void zoomSliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_zoomSliderStateChanged ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK = zoomSlider.getValue(); this.update(script, script); pack(); repaint(); }//GEN-LAST:event_zoomSliderStateChanged private void cadEventMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cadEventMousePressed }//GEN-LAST:event_cadEventMousePressed private void radioEventMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_radioEventMousePressed }//GEN-LAST:event_radioEventMousePressed private void cadEventMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cadEventMouseReleased }//GEN-LAST:event_cadEventMouseReleased private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed }//GEN-LAST:event_okButtonActionPerformed /** * If cancel button is pressed, close radio event editor * * @param evt the button press event */ private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed radioMessage.setText(""); radioTypeComboBox.setSelectedIndex(0); radioEventFrame.setVisible(false); }//GEN-LAST:event_cancelButtonActionPerformed private void editEventListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editEventListActionPerformed }//GEN-LAST:event_editEventListActionPerformed /** * Executed when the "OK" button is pressed on the Incident editor. If * incident is new, and is valid, adds it to the model and updates. If * editing existing incident, verifies changes are valid and applies them. * Then closes editor window. * * @param evt the button press event */ private void incidentOkButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_incidentOkButtonActionPerformed if (!editingIncident) { boolean found = false; int indx = 0; // ALERT: Wacky logic follows // Examine all the incidents contained in this script for (ScriptIncident inci : script.incidents) { // If this spot in the list of incidents hasn't been assigned yet if (inci == null) { found = true; break; } ++indx; // Does the new incident number match an existing one? if (inci.number == (Integer) addIncidentNumber.getValue()) { JOptionPane.showMessageDialog(this, "Incident number already in use.", "Unable to Create Incident", JOptionPane.ERROR_MESSAGE); incidentFrame.setVisible(true); return; } } // We examined all incidents and there wasn't an empty slot if (!found) { JOptionPane.showMessageDialog(this, "Script already has the max number of incidents.", "Unable to Create Incident", JOptionPane.ERROR_MESSAGE); incidentFrame.setVisible(true); // ALERT: exit from middle of method return; } // We found a spot for the new incident script.incidents.remove(indx); // remove the null incident placeholder SimulationScript.incidentColors[indx] = selectedColor; // Add the new incident to the list script.incidents.add(indx, new ScriptIncident(SimulationScript.incidentColors[indx], (Integer) addIncidentNumber.getValue(), addIncidentName.getText(), addIncidentDescription.getText(), script)); script.incidents.get(indx).length = (Integer) addIncidentLength.getValue() * 60; script.incidents.get(indx).setOffset((Integer) addIncidentStart.getValue() * 60); script.numberOfIncidents++; } else { ScriptIncident backup = script.incidents.get(oldIncidentIndex); script.incidents.remove(oldIncidentIndex); script.incidents.add(oldIncidentIndex, null); for (ScriptIncident i : script.incidents) { if (i != null && i.number == (Integer) addIncidentNumber.getValue()) { script.incidents.remove(oldIncidentIndex); script.incidents.add(oldIncidentIndex, backup); JOptionPane.showMessageDialog(this, "Incident number already in use.", "Unable to Create Incident", JOptionPane.ERROR_MESSAGE); incidentFrame.setVisible(true); return; } } script.incidents.remove(oldIncidentIndex); SimulationScript.incidentColors[oldIncidentIndex] = selectedColor; script.incidents.add(oldIncidentIndex, new ScriptIncident(SimulationScript.incidentColors[oldIncidentIndex], (Integer) addIncidentNumber.getValue(), addIncidentName.getText(), addIncidentDescription.getText(), script)); script.incidents.get(oldIncidentIndex).length = (Integer) addIncidentLength.getValue() * 60; script.incidents.get(oldIncidentIndex).slices = backup.slices; script.incidents.get(oldIncidentIndex).offset = backup.offset; script.incidents.get(oldIncidentIndex).setOffset((Integer) addIncidentStart.getValue() * 60); script.numberOfIncidents++; } incidentFrame.setVisible(false); update(script, script); repaint(); }//GEN-LAST:event_incidentOkButtonActionPerformed /** * Closes editor window upon click of cancel button. * * @param evt the button press event */ private void incidentCancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_incidentCancelButtonActionPerformed incidentFrame.setVisible(false); }//GEN-LAST:event_incidentCancelButtonActionPerformed /** * Opens incident editor window and preps for addition of new incident, upon * click of "New Incident" menu option. * * @param evt the button press event */ private void newIncidentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_newIncidentActionPerformed editingIncident = false; addIncidentName.setText(""); addIncidentNumber.setValue(101); addIncidentStart.setValue(0); addIncidentLength.setValue(0); incidentColorField.setBackground(Color.BLACK); selectedColor = Color.BLACK; addIncidentDescription.setText(""); incidentFrame.setVisible(true); }//GEN-LAST:event_newIncidentActionPerformed private void fileMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileMenuActionPerformed }//GEN-LAST:event_fileMenuActionPerformed /** * Upon click of "Open file" menu option, opens a window to load a new .sim * file. * * @param evt the button press event */ private void fileOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileOpenActionPerformed JFileChooser fc = new JFileChooser(); fc.setFileFilter(new ExtensionFileFilter("Simulation Script XML (.xml)", new String[] { "xml" })); if (fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { script = new SimulationScript(); System.out.println(fc.getSelectedFile().getName()); script.loadScriptFromFile(fc.getSelectedFile()); script.saveFile = fc.getSelectedFile(); } update(script, script); zoomSlider.setValue(zoomSlider.getMinimum()); repaint(); }//GEN-LAST:event_fileOpenActionPerformed /** * Upon click of "Save as" menu option, opens a window to choose a .sim file * to save this as. * * @param evt the button press event */ private void fileSaveAsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileSaveAsActionPerformed JFileChooser fc = new JFileChooser(); fc.setFileFilter(new ExtensionFileFilter("Simulation Script XML (.xml)", new String[] { "xml" })); if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) { script.saveScriptToFile(fc.getSelectedFile()); script.saveFile = fc.getSelectedFile(); } }//GEN-LAST:event_fileSaveAsActionPerformed /** * Upon click of "Save" menu option, opens a window to choose a .sim file to * save this as. * * @param evt the button press event */ private void fileSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileSaveActionPerformed if (script.saveFile == null) { fileSaveAsActionPerformed(evt); } else { script.saveScriptToFile(script.saveFile); } }//GEN-LAST:event_fileSaveActionPerformed /** * Upon click of "Edit incident" menu option, brings up a dropdown menu of * all existing incidents. Once an incident is selected, opens incident * editor window with that event's details loaded. * * @param evt the button press event */ private void incidentDetailsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_incidentDetailsActionPerformed Object[] incidentList = script.incidents.toArray(); ScriptIncident i = (ScriptIncident) JOptionPane.showInputDialog( this, "Select Incident:", "Edit Incident", JOptionPane.PLAIN_MESSAGE, null, incidentList, script.incidents.get(0)); // If a valid incident was selected if (i != null) { editingIncident = true; oldIncidentIndex = script.incidents.indexOf(i); addIncidentName.setText(i.name); addIncidentNumber.setValue(i.number); addIncidentStart.setValue(i.offset / 60); addIncidentLength.setValue(i.length / 60); incidentColorField.setBackground(i.color); selectedColor = i.color; addIncidentDescription.setText(i.description); incidentFrame.setVisible(true); } }//GEN-LAST:event_incidentDetailsActionPerformed /** * Brings up the noise generation screen upon click of the "Generate Noise" * menu option. * * @param evt the button press event */ private void generateNoiseOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_generateNoiseOptionActionPerformed addNoiseFrame.setVisible(true); }//GEN-LAST:event_generateNoiseOptionActionPerformed /** * Hides the noise generation screen upon click of the "Cancel" button. * * @param evt the button press event */ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed addNoiseFrame.setVisible(false); }//GEN-LAST:event_jButton1ActionPerformed /** * Generates random noise upon click of the "OK" button, then hides the * noise generation screen. * * @param evt the button press event */ private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed Random rng = new Random(); ScriptEventType[] eventTypes = ScriptEventType.values(); /* For prototyping purpose, ignore the sliders and average their values */ int total = jSlider1.getValue() + jSlider2.getValue() + jSlider3.getValue() + jSlider5.getValue() + jSlider4.getValue(); total /= 5; for (int i = 0; i < script.incidents.get(9).slices.size(); i++) { script.incidents.get(9).slices.get(i).events.clear(); } for (int i = 0; i < total; i++) { int n = rng.nextInt(); int s = rng.nextInt(); int e = rng.nextInt(); if (n < 0) { n *= -1; } if (s < 0) { s *= -1; } if (e < 0) { e *= -1; } script.incidents.get(9).slices.get(s % (script.incidents.get(9).slices.size())).addEvent(ScriptEvent.factoryByType(eventTypes[e % eventTypes.length])); } addNoiseFrame.setVisible(false); update(script, script); }//GEN-LAST:event_jButton2ActionPerformed /** * Allow the user to pick an incident from a dropdown, then save it to an * XML file. * * @param evt the button press event */ private void saveIncidentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveIncidentActionPerformed Object[] incidentList = script.incidents.toArray(); String input = ""; ScriptIncident inc = null; Object result = JOptionPane.showInputDialog( this, "Select Incident:", "Save Incident", JOptionPane.PLAIN_MESSAGE, null, incidentList, script.incidents.get(0)); System.out.println("RESULT = " + result.toString()); input = result.toString(); System.out.println("INPUT = " + input); int i = 0; for (ScriptIncident incident : script.incidents) { if (incident == null) { continue; } System.out.println((++i) + ": " + incident.toString()); if (incident.toString().equals(input)) { inc = incident; } } if (inc == null) { System.out.println("DIDN'T FIND ANYTHING"); return; } JFileChooser fc = new JFileChooser(); fc.setFileFilter(new ExtensionFileFilter("Script Incident (.xml)", new String[] { "xml" })); if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) { inc.saveIncidentToFile(fc.getSelectedFile()); } }//GEN-LAST:event_saveIncidentActionPerformed private void loadIncidentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loadIncidentActionPerformed new IncidentPaletteFrame(script, this).setVisible(true); zoomSlider.setValue(zoomSlider.getMinimum()); }//GEN-LAST:event_loadIncidentActionPerformed private void generateProjectRequirementsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_generateProjectRequirementsActionPerformed JFileChooser fc = new JFileChooser(); fc.setFileFilter(new ExtensionFileFilter("Portable Document Format (.pdf)", new String[] { "pdf" })); fc.setSelectedFile(new File("Requirements.pdf")); fc.showSaveDialog(this); }//GEN-LAST:event_generateProjectRequirementsActionPerformed private void generateNotebooksActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_generateNotebooksActionPerformed JFileChooser fc = new JFileChooser(); fc.setFileFilter(new ExtensionFileFilter("Portable Document Format (.pdf)", new String[] { "pdf" })); fc.setSelectedFile(new File("Notebooks.pdf")); fc.showSaveDialog(this); }//GEN-LAST:event_generateNotebooksActionPerformed private void generateScorecardsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_generateScorecardsActionPerformed JFileChooser fc = new JFileChooser(); fc.setFileFilter(new ExtensionFileFilter("Portable Document Format (.pdf)", new String[] { "pdf" })); fc.setSelectedFile(new File("Scorecards.pdf")); fc.showSaveDialog(this); }//GEN-LAST:event_generateScorecardsActionPerformed private void generateOrganizationChartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_generateOrganizationChartActionPerformed JFileChooser fc = new JFileChooser(); fc.setFileFilter(new ExtensionFileFilter("Portable Document Format (.pdf)", new String[] { "pdf" })); fc.setSelectedFile(new File("OrganizationChart.pdf")); fc.showSaveDialog(this); }//GEN-LAST:event_generateOrganizationChartActionPerformed /** * Increases zoom level upon click of the "Zoom in" icon. * * @param evt the mouse event */ private void zoomInIconMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_zoomInIconMouseClicked zoomSlider.setValue(zoomSlider.getValue() >= 21 ? 21 : zoomSlider.getValue() + 1); }//GEN-LAST:event_zoomInIconMouseClicked /** * Decreases zoom level upon click of the "Zoom out" icon. * * @param evt the mouse event */ private void zoomOutIconMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_zoomOutIconMouseClicked zoomSlider.setValue(zoomSlider.getValue() <= 5 ? 5 : zoomSlider.getValue() - 1); }//GEN-LAST:event_zoomOutIconMouseClicked private Color selectedColor = Color.BLACK; private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed Color newColor = incidentColorChooser.showDialog(this, "Incident Color", incidentColorField.getBackground()); if (newColor != null) { selectedColor = newColor; incidentColorField.setBackground(newColor); } }//GEN-LAST:event_jButton3ActionPerformed /* Help > About simply displays the current SVN revision number so * the user can determine which version of the source code was used to * build the executable she is running. */ private void helpAboutActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_helpAboutActionPerformed {//GEN-HEADEREND:event_helpAboutActionPerformed JOptionPane.showMessageDialog(rootPane, "Revision: " + getAppVersion(), "About", JOptionPane.INFORMATION_MESSAGE); }//GEN-LAST:event_helpAboutActionPerformed private void fileNewActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_fileNewActionPerformed {//GEN-HEADEREND:event_fileNewActionPerformed script = new SimulationScript(); script.update(); update(null, script); repaint(); }//GEN-LAST:event_fileNewActionPerformed private void editIncidentActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_editIncidentActionPerformed {//GEN-HEADEREND:event_editIncidentActionPerformed Object[] incidentList = script.incidents.toArray(); String input = ""; ScriptIncident inc = null; Object result = JOptionPane.showInputDialog( this, "Select Incident:", "Save Incident", JOptionPane.PLAIN_MESSAGE, null, incidentList, script.incidents.get(0)); if (result != null) { System.out.println("RESULT = " + result.toString()); input = result.toString(); System.out.println("INPUT = " + input); int i = 0; for (ScriptIncident incident : script.incidents) { if (incident == null) { continue; } System.out.println((++i) + ": " + incident.toString()); if (incident.toString().equals(input)) { inc = incident; } } if (inc != null) { IncidentEditorFrame editor = new IncidentEditorFrame(inc); script.addObserver(editor); editor.setVisible(true); } } update(script, script); }//GEN-LAST:event_editIncidentActionPerformed /** * Read the version number from the application properties. The file * 'application.properties' is generated by build.xml. * * @return a version string obtained from application.properties file, or * "Version: unknown" if an IOerror prevents us from reading the file. */ private String getAppVersion() { String propfilename = "/scriptbuilder/gui/application.properties"; String propKey = "Application.revision"; String version = "unknown"; // Load the application properties (created by build.xml) try { Properties props = new Properties(); props.load(this.getClass().getResourceAsStream(propfilename)); version = (String) props.get(propKey); } catch (IOException ex) { Logger.getLogger("scriptbuilder.gui").log(Level.SEVERE, "ScriptBuilderFrame.getAppVersion()." + " IOError reading " + propfilename); } catch (NullPointerException npe) { Logger.getLogger("scriptbuilder.gui").log(Level.SEVERE, "ScriptBuilderFrame.getAppVersion().load." + " Missing file: " + propfilename); } return version; } /** * Runs the script builder. * * @param args the command line arguments */ public static void main(String args[]) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); } catch (ClassNotFoundException ex) { } catch (InstantiationException ex) { } catch (IllegalAccessException ex) { } catch (UnsupportedLookAndFeelException ex) { } try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (ClassNotFoundException ex) { } catch (InstantiationException ex) { } catch (IllegalAccessException ex) { } catch (UnsupportedLookAndFeelException ex) { } java.awt.EventQueue.invokeLater( new Runnable() { public void run() { new ScriptBuilderFrame().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextArea addIncidentDescription; private javax.swing.JSpinner addIncidentLength; private javax.swing.JTextField addIncidentName; private javax.swing.JSpinner addIncidentNumber; private javax.swing.JSpinner addIncidentStart; private javax.swing.JFrame addNoiseFrame; private javax.swing.JMenuItem cadEvent; private javax.swing.JFrame cadEventFrame; private javax.swing.JButton cancelButton; private javax.swing.JMenuItem deleteEventList; private javax.swing.JMenuItem editEventList; private javax.swing.JMenuItem editIncident; private javax.swing.JPopupMenu eventListPopupMenu; private javax.swing.JPopupMenu eventPopupMenu; private javax.swing.JMenu fileMenu; private javax.swing.JMenuItem fileNew; private javax.swing.JMenuItem fileOpen; private javax.swing.JMenuItem fileSave; private javax.swing.JMenuItem fileSaveAs; private javax.swing.JMenu generateMenu; private javax.swing.JMenu generateNoiseMenu; private javax.swing.JMenuItem generateNoiseOption; private javax.swing.JMenuItem generateNotebooks; private javax.swing.JMenuItem generateOrganizationChart; private javax.swing.JMenuItem generateProjectRequirements; private javax.swing.JMenuItem generateScorecards; private javax.swing.JMenuItem helpAbout; private javax.swing.JMenu helpMenu; private javax.swing.JMenuItem helpTutorial; private javax.swing.JButton incidentCancelButton; private javax.swing.JColorChooser incidentColorChooser; private javax.swing.JTextField incidentColorField; private javax.swing.JMenuItem incidentDetails; private javax.swing.JFrame incidentFrame; private javax.swing.JMenu incidentMenu; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel1; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel10; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel2; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel3; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel4; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel5; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel6; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel7; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel8; private scriptbuilder.gui.panels.IncidentNumberPanel incidentNumberPanel9; private javax.swing.JButton incidentOkButton; private javax.swing.JPopupMenu incidentPopupMenu; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel1; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel10; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel2; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel3; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel4; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel5; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel6; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel7; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel8; private scriptbuilder.gui.panels.IncidentTimelinePanel incidentTimelinePanel9; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JMenuItem jMenuItem2; private javax.swing.JMenuItem jMenuItem3; private javax.swing.JMenuItem jMenuItem4; private javax.swing.JMenuItem jMenuItem5; private javax.swing.JMenuItem jMenuItem6; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JPopupMenu.Separator jSeparator2; private javax.swing.JPopupMenu.Separator jSeparator3; private javax.swing.JPopupMenu.Separator jSeparator4; private javax.swing.JSlider jSlider1; private javax.swing.JSlider jSlider2; private javax.swing.JSlider jSlider3; private javax.swing.JSlider jSlider4; private javax.swing.JSlider jSlider5; private javax.swing.JTextArea jTextArea1; private javax.swing.JMenuItem loadIncident; private javax.swing.JMenuItem newIncident; private javax.swing.JButton okButton; private javax.swing.JMenuItem popupDeleteIncident; private javax.swing.JMenuItem radioEvent; private javax.swing.JFrame radioEventFrame; private javax.swing.JTextArea radioMessage; private javax.swing.JScrollPane radioMessageScrollPane; private javax.swing.JComboBox radioTypeComboBox; private javax.swing.JLabel radioTypeLabel; private javax.swing.JMenuItem saveIncident; private javax.swing.JMenuBar scriptBuilderMenuBar; private scriptbuilder.gui.panels.TimeStampPanel timeStampPanel; private javax.swing.JScrollPane timeStampScrollPane; private scriptbuilder.gui.panels.TimelineTickPanel timelineTickPanel; private javax.swing.JScrollPane timelinesScrollPane; private javax.swing.JLabel zoomInIcon; private javax.swing.JLabel zoomOutIcon; private javax.swing.JSlider zoomSlider; // End of variables declaration//GEN-END:variables }