Index: /trunk/src/scriptbuilder/gui/panels/IncidentTimelineTickPanel.java
===================================================================
--- /trunk/src/scriptbuilder/gui/panels/IncidentTimelineTickPanel.java	(revision 53)
+++ /trunk/src/scriptbuilder/gui/panels/IncidentTimelineTickPanel.java	(revision 53)
@@ -0,0 +1,192 @@
+package scriptbuilder.gui.panels;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.event.MouseEvent;
+import javax.swing.JPanel;
+import javax.swing.event.MouseInputAdapter;
+import scriptbuilder.gui.ScriptBuilderFrame;
+import scriptbuilder.gui.ScriptBuilderGuiConstants;
+import scriptbuilder.gui.drawers.EventIconDrawer;
+import scriptbuilder.structures.ScriptIncident;
+import scriptbuilder.structures.SimulationScript;
+
+/**
+ * Represents the underlying panel on the main timeline. All the
+ * IncidentTimelinePanel objects sit over it. This panel draws all the
+ * per-minute ticks on the timeline, and adjusts and scales them as necessary.
+ *
+ * @author Greg Eddington <geddingt@calpoly.edu>
+ * @author Bryan McGuffin
+ */
+public class IncidentTimelineTickPanel extends JPanel
+{
+
+    private int longestLength = ScriptBuilderGuiConstants.TICK_TIMELINE_SMALLEST_LENGTH;
+    private int x, y;
+    private boolean focused = false;
+
+    public void setZoom(float zoom)
+    {
+        repaint();
+    }
+
+    /**
+     * Listener for the mouse. Is notified when the mouse enters, exits, or
+     * moves around on the panel.
+     */
+    public class TimelineTickMouseListener extends MouseInputAdapter
+    {
+
+        /**
+         * When the mouse enters the panel, the panel gets focus.
+         *
+         * @param e the mouse event
+         */
+        @Override
+        public void mouseEntered(MouseEvent e)
+        {
+            focused = true;
+        }
+
+        /**
+         * When the mouse leaves the panel, the panel loses focus and refreshes.
+         *
+         * @param e the mouse event
+         */
+        @Override
+        public void mouseExited(MouseEvent e)
+        {
+            focused = false;
+            repaint();
+        }
+
+        /**
+         * When the mouse moves around in the panel, the panel refreshes and
+         * updates its mouse tracker.
+         *
+         * @param e
+         */
+        @Override
+        public void mouseMoved(MouseEvent e)
+        {
+            x = e.getX();
+            y = e.getY();
+
+            repaint();
+        }
+    }
+
+    /**
+     * Constructor. Set up the mouse listener.
+     */
+    public IncidentTimelineTickPanel()
+    {
+        super();
+
+        TimelineTickMouseListener mouseListener
+                = new TimelineTickMouseListener();
+        addMouseMotionListener(mouseListener);
+        addMouseListener(mouseListener);
+    }
+
+    /**
+     * Update the panel's dimensions based on number of events, zoom level, and
+     * which events are collapsed.
+     *
+     * @param script The main script model
+     */
+    public void update(SimulationScript script)
+    {
+        longestLength = ScriptBuilderGuiConstants.TICK_TIMELINE_SMALLEST_LENGTH;
+
+        // Get the stats on the incidents
+        int height = ScriptBuilderGuiConstants.TICK_TOP_MARGIN * 4;
+        for (ScriptIncident incident : script.incidents)
+        {
+            if (incident != null)
+            {
+                height += incident.collapsed
+                        ? ScriptBuilderGuiConstants.TIMELINE_OPENED_HEIGHT
+                        : ScriptBuilderGuiConstants.TIMELINE_OPENED_HEIGHT;
+                if ((incident.length + incident.offset) > longestLength)
+                {
+                    longestLength = incident.length + incident.offset;
+                }
+            }
+        }
+
+        Dimension newSize = new Dimension(longestLength
+                / ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION
+                * ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK
+                + ScriptBuilderGuiConstants.TICK_TIMELINE_LEFT_MARGIN + 50,
+                height);
+        this.setPreferredSize(newSize);
+        this.setSize(newSize);
+
+        this.invalidate();
+    }
+
+    /**
+     * Refresh the panel. Redraw the ticks based on zoom level, panel
+     * dimensions, and offset. If the user is trying to add an event, draw that
+     * event's icon under the mouse.
+     *
+     * @param g The graphics component
+     */
+    @Override
+    public void paint(Graphics g)
+    {
+        super.paint(g);
+
+        Graphics2D g2d = (Graphics2D) g;
+
+        // Draw the horizontal line
+        g2d.setFont(ScriptBuilderGuiConstants.TIMELINE_TICK_TIME_FONT);
+        g2d.setColor(ScriptBuilderGuiConstants.TIMELINE_TICK_COLOR);
+        g2d.fillRect(0, ScriptBuilderGuiConstants.TICK_TIMELINE_TOP_MARGIN,
+                longestLength, ScriptBuilderGuiConstants.TICK_TIMELINE_HEIGHT);
+
+        // Draw the ticks
+        int longestLengthPlusMargin = longestLength
+                / ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION
+                * ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK
+                + ScriptBuilderGuiConstants.TICK_TIMELINE_LEFT_MARGIN;
+
+        // Minutes
+        g2d.setColor(ScriptBuilderGuiConstants.MINOR_TICK_COLOR);
+        int seconds = 0;
+        for (int i = ScriptBuilderGuiConstants.TICK_TIMELINE_LEFT_MARGIN;
+                i <= longestLengthPlusMargin;
+                i += ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK, seconds += ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION)
+        {
+            g2d.drawLine(i, ScriptBuilderGuiConstants.TICK_TOP_MARGIN,
+                    i, ScriptBuilderGuiConstants.TICK_HEIGHT);
+        }
+
+        // Major Ticks
+        g2d.setColor(ScriptBuilderGuiConstants.TIMELINE_TICK_COLOR);
+        seconds = 0;
+        for (int i = ScriptBuilderGuiConstants.TICK_TIMELINE_LEFT_MARGIN;
+                i <= longestLengthPlusMargin;
+                i += ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK
+                * ScriptBuilderGuiConstants.TICKS_PER_MAJOR_TICK, seconds += ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION
+                * ScriptBuilderGuiConstants.TICKS_PER_MAJOR_TICK)
+        {
+            g2d.drawLine(i, ScriptBuilderGuiConstants.TICK_TOP_MARGIN,
+                    i, ScriptBuilderGuiConstants.TICK_HEIGHT);
+
+        }
+
+        paintChildren(g);
+
+        if (focused
+                && ((ScriptBuilderFrame) this.getTopLevelAncestor()).currentEventType != null)
+        {
+            EventIconDrawer.DrawEventIcon(g2d,
+                    ((ScriptBuilderFrame) this.getTopLevelAncestor()).currentEventType,
+                    x, y);
+        }
+    }
+}
Index: /trunk/src/scriptbuilder/gui/panels/IncidentsPanel.java
===================================================================
--- /trunk/src/scriptbuilder/gui/panels/IncidentsPanel.java	(revision 1)
+++ /trunk/src/scriptbuilder/gui/panels/IncidentsPanel.java	(revision 53)
@@ -20,6 +20,6 @@
     private SimulationScript script;
     private TimelineTickPanel timelineTickPanel;
-    private List<IncidentTimelinePanel> incidentPanels;
-    private List<IncidentNumberPanel> numberPanels;
+    private List<ScriptBuilderTimelinePanel> incidentPanels;
+    private List<ScriptBuilderNumberPanel> numberPanels;
 
     /**
Index: /trunk/src/scriptbuilder/gui/panels/ScriptBuilderTimelinePanel.java
===================================================================
--- /trunk/src/scriptbuilder/gui/panels/ScriptBuilderTimelinePanel.java	(revision 53)
+++ /trunk/src/scriptbuilder/gui/panels/ScriptBuilderTimelinePanel.java	(revision 53)
@@ -0,0 +1,309 @@
+package scriptbuilder.gui.panels;
+
+import event.editor.Editor;
+import event.editor.Properties;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.event.MouseEvent;
+import java.util.HashMap;
+import java.util.Map;
+import javax.swing.JPanel;
+import javax.swing.event.MouseInputAdapter;
+import scriptbuilder.gui.ScriptBuilderFrame;
+import scriptbuilder.gui.ScriptBuilderGuiConstants;
+import scriptbuilder.gui.drawers.CursorDrawer;
+import scriptbuilder.gui.drawers.EventIconDrawer;
+import scriptbuilder.gui.drawers.IncidentTimelineDrawer;
+import scriptbuilder.structures.ScriptEvent;
+import scriptbuilder.structures.ScriptEvent.ScriptEventType;
+import scriptbuilder.structures.ScriptIncident;
+import scriptbuilder.structures.TimeSlice;
+import scriptbuilder.structures.events.I_ScriptEvent;
+
+/**
+ * Represents a single incident timeline in the GUI. Listens for mouse actions.
+ *
+ * @author Greg Eddington <geddingt@calpoly.edu>
+ * @author Bryan McGuffin
+ * @version 2017/06/30
+ */
+public class ScriptBuilderTimelinePanel extends JPanel
+{
+
+    /**
+     * The incident this panel represents.
+     */
+    ScriptIncident incident;
+    /**
+     * If true, this panel is in its minimized state.
+     */
+    //boolean collapsed;
+    /**
+     * If false, this panel won't be drawn.
+     */
+    boolean visible;
+    /**
+     * If true, this panel has focus.
+     */
+    boolean focused;
+
+    int cursorTime, lastSlice, x, y;
+
+    /**
+     * The map representing the properties of this incident's events. Keys:
+     * event types. Values: Properties objects for those events.
+     */
+    Map<ScriptEventType, Properties> eventTypeToPropertyMap;
+
+    /**
+     * Listener for the mouse. Receives notifications when the mouse enters,
+     * exits, moves through, or clicks inside the panel.
+     */
+    public class IncidentTimelineMouseListener extends MouseInputAdapter
+    {
+
+        /**
+         * Action to take when the mouse enters the panel. Here, the incident
+         * corresponding to this panel gains focus.
+         *
+         * @param e the mouse event
+         */
+        @Override
+        public void mouseEntered(MouseEvent e)
+        {
+            incident.setIncidentActive();
+            focused = true;
+        }
+
+        /**
+         * Action to take when the mouse leaves the panel. Here, the incident
+         * loses focus and the panel gets repainted.
+         *
+         * @param e the mouse event
+         */
+        @Override
+        public void mouseExited(MouseEvent e)
+        {
+            focused = false;
+            repaint();
+        }
+
+        /**
+         * Determine if the mouse click happened within a valid timeSlice on
+         * this incident; if so, activate the Editor window for that timeSlice.
+         *
+         * @param e the mouse event
+         */
+        @Override
+        public void mouseClicked(MouseEvent e)
+        {
+            Editor ed = new Editor();
+            ScriptBuilderFrame f = (ScriptBuilderFrame) getTopLevelAncestor();
+
+            x = cursorTime = e.getX();
+            y = e.getY();
+
+            if (e.getX() % ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK
+                    > ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK / 2)
+            {
+                cursorTime += ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK
+                        - e.getX()
+                        % ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK;
+            }
+            else
+            {
+                cursorTime -= e.getX()
+                        % ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK;
+            }
+
+            int newSlice = (cursorTime / ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK);
+            newSlice *= ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION;
+            /**
+             * Check if click is out of bounds *
+             */
+            if (newSlice < 0 || incident == null)
+            {
+                return;
+            }
+
+            if (incident.slices.get(newSlice) != null)
+
+            {
+                for (I_ScriptEvent se : incident.slices.get(newSlice).events)
+                {
+                    ed.addProperty(eventTypeToPropertyMap.get(se.getScriptEventType()), se);
+                }
+            }
+
+            /**
+             * Add a new icon if left mouse button was clicked *
+             */
+            if (e.getButton() == MouseEvent.BUTTON1)
+            {
+                if (f.currentEventType != null)
+                {
+                    I_ScriptEvent s = ScriptEvent.factoryByType(f.currentEventType);
+                    ed.addProperty(eventTypeToPropertyMap.get(f.currentEventType), s);
+                    if (incident.slices.get(newSlice) == null)
+                    {
+                        incident.addNewEvent(s, newSlice);
+                    }
+                    else
+                    {
+                        incident.slices.get(newSlice).addEvent(s);
+                    }
+                    f.update(f.getScript(), f.getScript());
+                }
+            }
+
+            if (incident.slices.get(newSlice) != null)
+            {
+                ed.setVisible(true);
+            }
+        }
+
+        /**
+         * Determine if the mouse is now hovering over a valid timeslice; if so,
+         * alter tooltip text and info window text to reflect the new timeslice.
+         *
+         * @param e the mouse event
+         */
+        @Override
+        public void mouseMoved(MouseEvent e)
+        {
+            x = cursorTime = e.getX();
+            y = e.getY();
+
+            if (e.getX() % ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK
+                    > ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK / 2)
+            {
+                cursorTime += ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK
+                        - e.getX()
+                        % ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK;
+            }
+            else
+            {
+                cursorTime -= e.getX()
+                        % ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK;
+            }
+
+            if (incident != null)
+            {
+                int newSlice = (cursorTime / ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK);
+                newSlice *= ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION;
+                if (newSlice >= 0 && incident.slices.get(newSlice) != null)
+                {
+                    incident.setSliceActive(newSlice);
+                    lastSlice = newSlice;
+                    String newToolTip;
+
+                    newToolTip = incident.slices.get(newSlice).toString();
+
+                    setToolTipText((newToolTip == null || newToolTip.equals(""))
+                            ? null : newToolTip);
+                }
+            }
+
+            repaint();
+        }
+    }
+
+    /**
+     * Constructor. Generates a HashMap of all possible event types.
+     */
+    public ScriptBuilderTimelinePanel()
+    {
+        super();
+
+//        FACILITATOR_EVAL_EVENT, RADIO_EVAL_EVENT
+        eventTypeToPropertyMap = new HashMap();
+        eventTypeToPropertyMap.put(ScriptEventType.AUDIO_EVENT, Properties.Audio);
+        eventTypeToPropertyMap.put(ScriptEventType.CAD_EVENT, Properties.CADLog);
+        eventTypeToPropertyMap.put(ScriptEventType.CCTV_EVENT, Properties.CCTV);
+        eventTypeToPropertyMap.put(ScriptEventType.CHP_RADIO_EVENT, Properties.CHPRadio);
+        eventTypeToPropertyMap.put(ScriptEventType.PARAMICS_EVENT, Properties.Paramics);
+        eventTypeToPropertyMap.put(ScriptEventType.TOW_EVENT, Properties.Tow);
+        eventTypeToPropertyMap.put(ScriptEventType.UNIT_EVENT, Properties.Unit);
+        eventTypeToPropertyMap.put(ScriptEventType.WITNESS_EVENT, Properties.Witness);
+        eventTypeToPropertyMap.put(ScriptEventType.MAINTENANCE_RADIO_EVENT, Properties.MaintenanceRadio);
+        eventTypeToPropertyMap.put(ScriptEventType.TMT_RADIO_EVENT, Properties.TMTRadio);
+        eventTypeToPropertyMap.put(ScriptEventType.TELEPHONE_EVENT, Properties.Telephone);
+        eventTypeToPropertyMap.put(ScriptEventType.ATMS_EVAL_EVENT, Properties.ATMS);
+        eventTypeToPropertyMap.put(ScriptEventType.ACTIVITY_LOG_EVAL_EVENT, Properties.ActivityLog);
+        eventTypeToPropertyMap.put(ScriptEventType.CAD_EVAL_EVENT, Properties.CAD);
+        eventTypeToPropertyMap.put(ScriptEventType.CMS_EVAL_EVENT, Properties.CMS);
+        eventTypeToPropertyMap.put(ScriptEventType.FACILITATOR_EVAL_EVENT, Properties.Facilitator);
+        eventTypeToPropertyMap.put(ScriptEventType.RADIO_EVAL_EVENT, Properties.Radio);
+
+        // Add the mouse listener
+        IncidentTimelineMouseListener mouseListener
+                = new IncidentTimelineMouseListener();
+        addMouseMotionListener(mouseListener);
+        addMouseListener(mouseListener);
+    }
+
+    /**
+     * Update the panel if it's changed collapsed status. Redraw it with the
+     * correct dimensions for its status.
+     *
+     * @param incident the incident this panel represents
+     */
+    public void timelinePanelUpdate(ScriptIncident incident)
+    {
+        this.incident = incident;
+        this.visible = incident != null;
+
+        Dimension newSize;
+        if (visible)
+        {
+
+            newSize = new Dimension(((incident.length + incident.offset)
+                    / ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION
+                    * ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK)
+                    + ScriptBuilderGuiConstants.EVENT_ICON_WIDTH,
+                    ScriptBuilderGuiConstants.TIMELINE_COLLAPSED_HEIGHT
+                    + ScriptBuilderGuiConstants.SCRIPT_EVENT_ICON_STEP * 2);
+
+        }
+        else
+        {
+            newSize = new Dimension(0, 0);
+        }
+        this.setSize(newSize);
+        this.setPreferredSize(newSize);
+
+        invalidate();
+    }
+
+    /**
+     * Redraw this panel and all the icons inside it. If user is holding an
+     * event, draw that icon under the mouse.
+     *
+     * @param g the graphics component
+     */
+    @Override
+    public void paint(Graphics g)
+    {
+        super.paint(g);
+
+        if (!visible)
+        {
+            return;
+        }
+
+        Graphics2D g2d = (Graphics2D) g;
+        IncidentTimelineDrawer.DrawScriptBuilderTimeline(g2d, incident);
+
+        if (focused)
+        {
+            CursorDrawer.DrawCursor(g2d, cursorTime, false);
+            if (((ScriptBuilderFrame) this.getTopLevelAncestor()).currentEventType != null)
+            {
+                EventIconDrawer.DrawEventIcon(g2d,
+                        ((ScriptBuilderFrame) this.getTopLevelAncestor()).currentEventType,
+                        x + 5, y + 10);
+            }
+        }
+    }
+}
Index: /trunk/src/scriptbuilder/gui/panels/ScriptBuilderNumberPanel.java
===================================================================
--- /trunk/src/scriptbuilder/gui/panels/ScriptBuilderNumberPanel.java	(revision 53)
+++ /trunk/src/scriptbuilder/gui/panels/ScriptBuilderNumberPanel.java	(revision 53)
@@ -0,0 +1,133 @@
+package scriptbuilder.gui.panels;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Rectangle;
+import java.awt.Shape;
+import java.awt.event.MouseEvent;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.imageio.ImageIO;
+import javax.swing.JPanel;
+import javax.swing.event.MouseInputAdapter;
+import scriptbuilder.gui.ScriptBuilderFrame;
+import scriptbuilder.gui.ScriptBuilderGuiConstants;
+import scriptbuilder.structures.ScriptIncident;
+import scriptbuilder.structures.TimeSlice;
+
+/**
+ * Displays the Incident ID number and name. Holds the button to toggle
+ * collapsed state.
+ *
+ * @author Greg Eddington <geddingt@calpoly.edu>
+ * @author Bryan McGuffin
+ */
+public class ScriptBuilderNumberPanel extends JPanel
+{
+
+    ScriptIncident incident;
+    boolean visible;
+
+    /**
+     * Listener for the mouse. Receives notifications if the mouse is clicked
+     * inside the button.
+     */
+    private class IncidentNumberMouseListener extends MouseInputAdapter
+    {
+
+        /**
+         * If the click occurs inside the icon borders, toggle the collapsed
+         * state.
+         *
+         * @param e the mouse event
+         */
+        @Override
+        public void mouseClicked(MouseEvent e)
+        {
+
+        }
+    }
+
+    /**
+     * Constructor. Sets up the mouse listener.
+     */
+    public ScriptBuilderNumberPanel()
+    {
+        super();
+
+        // Add the mouse listener
+        IncidentNumberMouseListener mouseListener
+                = new IncidentNumberMouseListener();
+        addMouseMotionListener(mouseListener);
+        addMouseListener(mouseListener);
+    }
+
+    /**
+     * Update the dimensions of the panel.
+     *
+     * @param incident The incident to be represented by this panel.
+     */
+    public void update(ScriptIncident incident)
+    {
+        this.incident = incident;
+        this.visible = incident != null;
+
+        Dimension newSize;
+        if (visible)
+        {
+
+            newSize = new Dimension(ScriptBuilderGuiConstants.INCIDENT_NUMBER_WIDTH,
+                    ScriptBuilderGuiConstants.TIMELINE_COLLAPSED_HEIGHT
+                    + ScriptBuilderGuiConstants.SCRIPT_EVENT_ICON_STEP * 2);
+
+        }
+        else
+        {
+            newSize = new Dimension(0, 0);
+        }
+        this.setSize(newSize);
+        this.setPreferredSize(newSize);
+
+        if (incident != null)
+        {
+            this.setToolTipText(incident.name);
+        }
+
+        invalidate();
+    }
+
+    /**
+     * Refresh the panel. Choose button icon depending on collapsed state.
+     *
+     * @param g the graphics component
+     */
+    @Override
+    public void paint(Graphics g)
+    {
+        super.paint(g);
+
+        if (!visible)
+        {
+            return;
+        }
+
+        Graphics2D g2d = (Graphics2D) g;
+        g2d.setColor(incident.color);
+        g2d.setFont(ScriptBuilderGuiConstants.INCIDENT_NUMBER_FONT);
+        g2d.drawString(Integer.toString(incident.number),
+                ScriptBuilderGuiConstants.INCIDENT_NUMBER_LEFT_MARGIN,
+                ScriptBuilderGuiConstants.INCIDENT_NUMBER_TOP_MARGIN);
+
+        int y = ScriptBuilderGuiConstants.INCIDENT_NUMBER_TOP_MARGIN * 2 - 14;
+        g2d.setFont(ScriptBuilderGuiConstants.INCIDENT_NAME_FONT);
+        for (String line : incident.name.split(" "))
+        {
+            g2d.drawString(line, 20, y);
+            y += 12;
+        }
+
+    }
+}
Index: /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java
===================================================================
--- /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 52)
+++ /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.java	(revision 53)
@@ -271,7 +271,9 @@
 
         // Hack to refresh the zoom
-        zoomSlider.setValue(zoomSlider.getValue() - 1);
-        zoomSlider.setValue(zoomSlider.getValue() + 1);
-
+        //This is stupid tbh
+        /*
+         zoomSlider.setValue(zoomSlider.getValue() - 1);
+         zoomSlider.setValue(zoomSlider.getValue() + 1);
+         */
         // Set listener for scroll pane
         AdjustmentListener listener = new MyAdjustmentListener();
@@ -370,7 +372,11 @@
             ScriptIncident i = ((IncidentFocusedEvent) arg).incident;
 
-
             //gotoIncident.setSelectedItem(i);
         }
+
+        zoomSlider.setMinimum(((timelineTickPanel.getVisibleRect().width - 20)
+                * ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION)
+                / Math.max(script.absoluteLength(), 1));
+        zoomSlider.setMaximum(zoomSlider.getMinimum() + 20);
     }
 
@@ -443,24 +449,24 @@
         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();
+        incidentTimelinePanel1 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel2 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel8 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel3 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel6 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel5 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel4 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel7 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel10 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel9 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentNumberPanel1 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel2 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel3 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel4 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel5 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel6 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel7 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel8 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel9 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel10 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
         zoomSlider = new javax.swing.JSlider();
         selectButton = new javax.swing.JButton();
@@ -920,5 +926,4 @@
         setBounds(new java.awt.Rectangle(0, 23, 800, 700));
         setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
-        setMaximumSize(new java.awt.Dimension(2147483647, 800));
         setMinimumSize(new java.awt.Dimension(800, 700));
 
@@ -1282,8 +1287,8 @@
         timelinesScrollPane.setViewportView(timelineTickPanel);
 
-        zoomSlider.setMaximum(21);
-        zoomSlider.setMinimum(5);
+        zoomSlider.setMaximum(22);
+        zoomSlider.setMinimum(4);
         zoomSlider.setOrientation(javax.swing.JSlider.VERTICAL);
-        zoomSlider.setValue(13);
+        zoomSlider.setValue(4);
         zoomSlider.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
         zoomSlider.setFocusable(false);
@@ -1941,5 +1946,5 @@
      */
     private void zoomSliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_zoomSliderStateChanged
-        ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK = zoomSlider.getValue() * 2;
+        ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK = zoomSlider.getValue();
         this.update(script, script);
         pack();
@@ -2051,5 +2056,5 @@
 
         incidentFrame.setVisible(false);
-        update(script,script);
+        update(script, script);
         repaint();
     }//GEN-LAST:event_incidentOkButtonActionPerformed
@@ -2166,4 +2171,6 @@
             script.saveFile = fc.getSelectedFile();
         }
+        zoomSlider.setValue(zoomSlider.getMinimum());
+        update(script, script);
     }//GEN-LAST:event_fileOpenActionPerformed
 
@@ -2804,26 +2811,26 @@
     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 scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel1;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel10;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel2;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel3;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel4;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel5;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel6;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel7;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel8;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel 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 scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel1;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel10;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel2;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel3;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel4;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel5;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel6;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel7;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel8;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel9;
     private javax.swing.JButton jButton1;
     private javax.swing.JButton jButton2;
Index: /trunk/src/scriptbuilder/gui/drawers/IncidentTimelineDrawer.java
===================================================================
--- /trunk/src/scriptbuilder/gui/drawers/IncidentTimelineDrawer.java	(revision 1)
+++ /trunk/src/scriptbuilder/gui/drawers/IncidentTimelineDrawer.java	(revision 53)
@@ -41,3 +41,29 @@
         }
     }
+
+    /**
+     * Draw the incident line. Then, utilize TimeSliceDrawer to draw the
+     * timeslices.
+     *
+     * @param g2d the graphics component
+     * @param incident the incident to be drawn
+     */
+    public static void DrawScriptBuilderTimeline(Graphics2D g2d,
+            ScriptIncident incident)
+    {
+        // Draw the timeline
+        g2d.setColor(incident.color);
+        g2d.fillRect(incident.offset / ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION
+                * ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK,
+                ScriptBuilderGuiConstants.TIMELINE_TOP_MARGIN,
+                incident.length / ScriptBuilderGuiConstants.HORIZONTAL_TICK_RESOLUTION
+                * ScriptBuilderGuiConstants.PIXEL_WIDTH_PER_HORIZONTAL_TICK,
+                ScriptBuilderGuiConstants.TIMELINE_HEIGHT);
+
+        // Draw each time slice
+        for (TimeSlice slice : incident.getSlices())
+        {
+            TimeSliceDrawer.DrawScriptBuilderTimeSlice(g2d, slice);
+        }
+    }
 }
Index: /trunk/src/scriptbuilder/gui/drawers/TimeSliceDrawer.java
===================================================================
--- /trunk/src/scriptbuilder/gui/drawers/TimeSliceDrawer.java	(revision 7)
+++ /trunk/src/scriptbuilder/gui/drawers/TimeSliceDrawer.java	(revision 53)
@@ -96,3 +96,25 @@
         }
     }
+    
+    /**
+     * Draw the events in this timeslice. If any exist, draw the slice event
+     * image. If the incident isn't collapsed, draw the event icons as well.
+     *
+     * @param g2d the graphics component
+     * @param slice the timeSlice to draw
+     * @param collapsed if true, don't draw the event icons
+     */
+    public static void DrawScriptBuilderTimeSlice(Graphics2D g2d, TimeSlice slice)
+    {
+        // If this is an empty slice, return
+        if (slice.events.size() == 0)
+        {
+            return;
+        }
+
+        // Draw the slice event icon to show that there are events here
+        g2d.drawImage(getSliceEventImage(), slice.getX()
+                - ScriptBuilderGuiConstants.EVENT_ICON_WIDTH,
+                ScriptBuilderGuiConstants.TIMELINE_EVENT_ICON_MARGIN, null);
+    }
 }
Index: /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.form
===================================================================
--- /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.form	(revision 52)
+++ /trunk/src/scriptbuilder/gui/ScriptBuilderFrame.form	(revision 53)
@@ -867,7 +867,4 @@
       <Color id="Default Cursor"/>
     </Property>
-    <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-      <Dimension value="[2147483647, 800]"/>
-    </Property>
     <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
       <Dimension value="[800, 700]"/>
@@ -1080,5 +1077,5 @@
           </Layout>
           <SubComponents>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel1">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel1">
               <Properties>
                 <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
@@ -1104,5 +1101,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel2">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel2">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1122,5 +1119,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel8">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel8">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1140,5 +1137,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel3">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel3">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1158,5 +1155,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel6">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel6">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1176,5 +1173,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel5">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel5">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1194,5 +1191,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel4">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel4">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1212,5 +1209,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel7">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel7">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1230,5 +1227,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel10">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel10">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1248,5 +1245,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel9">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel9">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1266,5 +1263,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel1">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel1">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1284,5 +1281,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel2">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel2">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1302,5 +1299,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel3">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel3">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1320,5 +1317,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel4">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel4">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1338,5 +1335,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel5">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel5">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1356,5 +1353,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel6">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel6">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1374,5 +1371,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel7">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel7">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1392,5 +1389,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel8">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel8">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1410,5 +1407,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel9">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel9">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1428,5 +1425,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel10">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel10">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1452,8 +1449,8 @@
     <Component class="javax.swing.JSlider" name="zoomSlider">
       <Properties>
-        <Property name="maximum" type="int" value="21"/>
-        <Property name="minimum" type="int" value="5"/>
+        <Property name="maximum" type="int" value="22"/>
+        <Property name="minimum" type="int" value="4"/>
         <Property name="orientation" type="int" value="1"/>
-        <Property name="value" type="int" value="13"/>
+        <Property name="value" type="int" value="4"/>
         <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
           <Color id="Default Cursor"/>
Index: /trunk/src/scriptbuilder/gui/IncidentEditorFrame.java
===================================================================
--- /trunk/src/scriptbuilder/gui/IncidentEditorFrame.java	(revision 52)
+++ /trunk/src/scriptbuilder/gui/IncidentEditorFrame.java	(revision 53)
@@ -448,24 +448,24 @@
         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();
+        incidentTimelinePanel1 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel2 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel8 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel3 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel6 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel5 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel4 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel7 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel10 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentTimelinePanel9 = new scriptbuilder.gui.panels.ScriptBuilderTimelinePanel();
+        incidentNumberPanel1 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel2 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel3 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel4 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel5 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel6 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel7 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel8 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel9 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
+        incidentNumberPanel10 = new scriptbuilder.gui.panels.ScriptBuilderNumberPanel();
         scriptEventsPanel = new javax.swing.JPanel();
         scriptEventsPane = new javax.swing.JScrollPane();
@@ -2896,26 +2896,26 @@
     private javax.swing.JTextField incidentName;
     private javax.swing.JTextField incidentNumber;
-    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 scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel1;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel10;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel2;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel3;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel4;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel5;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel6;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel7;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel incidentNumberPanel8;
+    private scriptbuilder.gui.panels.ScriptBuilderNumberPanel 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 scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel1;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel10;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel2;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel3;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel4;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel5;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel6;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel7;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel8;
+    private scriptbuilder.gui.panels.ScriptBuilderTimelinePanel incidentTimelinePanel9;
     private javax.swing.JButton jButton1;
     private javax.swing.JButton jButton2;
Index: /trunk/src/scriptbuilder/gui/IncidentEditorFrame.form
===================================================================
--- /trunk/src/scriptbuilder/gui/IncidentEditorFrame.form	(revision 52)
+++ /trunk/src/scriptbuilder/gui/IncidentEditorFrame.form	(revision 53)
@@ -1075,5 +1075,5 @@
           </Layout>
           <SubComponents>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel1">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel1">
               <Properties>
                 <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
@@ -1099,5 +1099,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel2">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel2">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1117,5 +1117,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel8">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel8">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1135,5 +1135,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel3">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel3">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1153,5 +1153,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel6">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel6">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1171,5 +1171,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel5">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel5">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1189,5 +1189,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel4">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel4">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1207,5 +1207,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel7">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel7">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1225,5 +1225,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel10">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel10">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1243,5 +1243,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentTimelinePanel" name="incidentTimelinePanel9">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderTimelinePanel" name="incidentTimelinePanel9">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1261,5 +1261,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel1">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel1">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1279,5 +1279,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel2">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel2">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1297,5 +1297,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel3">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel3">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1315,5 +1315,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel4">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel4">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1333,5 +1333,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel5">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel5">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1351,5 +1351,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel6">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel6">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1369,5 +1369,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel7">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel7">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1387,5 +1387,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel8">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel8">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1405,5 +1405,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel9">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel9">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
@@ -1423,5 +1423,5 @@
               </Layout>
             </Container>
-            <Container class="scriptbuilder.gui.panels.IncidentNumberPanel" name="incidentNumberPanel10">
+            <Container class="scriptbuilder.gui.panels.ScriptBuilderNumberPanel" name="incidentNumberPanel10">
               <Properties>
                 <Property name="opaque" type="boolean" value="false"/>
