Index: trunk/src/event/editor/CCTVPanel.java
===================================================================
--- trunk/src/event/editor/CCTVPanel.java	(revision 92)
+++ trunk/src/event/editor/CCTVPanel.java	(revision 130)
@@ -75,4 +75,10 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        //No change is yet necessary. This panel is not yet implemented.
     }
 
Index: trunk/src/event/editor/ParamicsPanel.java
===================================================================
--- trunk/src/event/editor/ParamicsPanel.java	(revision 92)
+++ trunk/src/event/editor/ParamicsPanel.java	(revision 130)
@@ -17,4 +17,5 @@
     private ActionListener removeListener;
     private ParamicsEvent event;
+    ArrayList<JCheckBox> lanes = new ArrayList<JCheckBox>();
 
     /**
@@ -45,13 +46,5 @@
             LocationDropdown.setSelectedItem(LocationDropdown.getItemCount() - 1);
         }
-        LocationDropdown.addActionListener(new ActionListener()
-        {
-
-            @Override
-            public void actionPerformed(ActionEvent e)
-            {
-                event.locationID = LocationDropdown.getSelectedItem().toString();
-            }
-        });
+
         for (int i = 0; i < StatusDropdown.getItemCount(); i++)
         {
@@ -61,13 +54,5 @@
             }
         }
-        StatusDropdown.addActionListener(new ActionListener()
-        {
-
-            @Override
-            public void actionPerformed(ActionEvent e)
-            {
-                event.status = StatusDropdown.getSelectedItem().toString();
-            }
-        });
+
         for (int i = 0; i < TypeDropdown.getItemCount(); i++)
         {
@@ -77,14 +62,5 @@
             }
         }
-        TypeDropdown.addActionListener(new ActionListener()
-        {
-
-            @Override
-            public void actionPerformed(ActionEvent e)
-            {
-                event.type = TypeDropdown.getSelectedItem().toString();
-            }
-        });
-        ArrayList<JCheckBox> lanes = new ArrayList<JCheckBox>();
+
         lanes.add(jCheckBox1);
         lanes.add(jCheckBox2);
@@ -108,5 +84,5 @@
         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
     }
-    
+
     @Override
     public boolean removeAssociatedEvent()
@@ -115,4 +91,16 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.locationID = LocationDropdown.getSelectedItem().toString();
+        event.status = StatusDropdown.getSelectedItem().toString();
+        event.type = TypeDropdown.getSelectedItem().toString();
+        for (JCheckBox lane : lanes)
+        {
+            lane.getActionListeners()[0].actionPerformed(new ActionEvent(lane, 0, "record"));
+        }
     }
 
Index: trunk/src/event/editor/MaintenanceRadioPanel.java
===================================================================
--- trunk/src/event/editor/MaintenanceRadioPanel.java	(revision 92)
+++ trunk/src/event/editor/MaintenanceRadioPanel.java	(revision 130)
@@ -27,23 +27,4 @@
         event = (MaintenanceRadioEvent) sei;
         jTextArea1.setText(event.message);
-        jTextArea1.addKeyListener(new KeyListener()
-        {
-
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.message = jTextArea1.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
     }
 
@@ -52,11 +33,17 @@
         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
     }
-    
+
     @Override
     public boolean removeAssociatedEvent()
     {
-        ((I_ScriptEvent)event).removeThis();
+        ((I_ScriptEvent) event).removeThis();
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.message = jTextArea1.getText();
     }
 
Index: trunk/src/event/editor/AudioPanel.java
===================================================================
--- trunk/src/event/editor/AudioPanel.java	(revision 92)
+++ trunk/src/event/editor/AudioPanel.java	(revision 130)
@@ -23,5 +23,4 @@
     {
         initComponents();
-
     }
 
@@ -32,50 +31,4 @@
         audioFileText.setText(event.audioPath);
         audioLengthText.setText(event.audioLength.toString());
-        audioFileText.addKeyListener(new KeyListener()
-        {
-
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.audioPath = audioFileText.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
-        audioLengthText.addKeyListener(new KeyListener()
-        {
-
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    try
-                    {
-                        event.audioLength = Integer.parseInt(audioLengthText.getText());
-                    }
-                    catch (Exception ex)
-                    {
-
-                    }
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        }
-        );
     }
 
@@ -85,5 +38,5 @@
         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
     }
-    
+
     @Override
     public boolean removeAssociatedEvent()
@@ -92,4 +45,18 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.audioPath = audioFileText.getText();
+        try
+        {
+            event.audioLength = Integer.parseInt(audioLengthText.getText());
+        }
+        catch (Exception ex)
+        {
+
+        }
     }
 
Index: trunk/src/event/editor/GenericEvaluationPanel.java
===================================================================
--- trunk/src/event/editor/GenericEvaluationPanel.java	(revision 92)
+++ trunk/src/event/editor/GenericEvaluationPanel.java	(revision 130)
@@ -84,4 +84,10 @@
     }
 
+    @Override
+    public void uponClose()
+    {
+        //No change is necessary here; this panel saves its state continually
+    }
+
     /**
      * This method is called from within the constructor to initialize the form.
Index: trunk/src/event/editor/TowPanel.java
===================================================================
--- trunk/src/event/editor/TowPanel.java	(revision 92)
+++ trunk/src/event/editor/TowPanel.java	(revision 130)
@@ -60,71 +60,11 @@
         event = (TowEvent) sei;
         txtCompany.setText(event.towCompany);
-        txtCompany.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.towCompany = txtCompany.getText();
-                }
-            }
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
+
         txtBeat.setText(event.towBeat);
-        txtBeat.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.towBeat = txtBeat.getText();
-                }
-            }
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
+
         txtConfirmationNumber.setText("" + event.towConfNum);
-        txtConfirmationNumber.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.towConfNum = txtConfirmationNumber.getText();
-                }
-            }
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
+
         txtPublicNumber.setText("" + event.towPubNum);
-        txtPublicNumber.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.towPubNum = txtPublicNumber.getText();
-                }
-            }
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
+
     }
 
@@ -134,5 +74,5 @@
         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
     }
-    
+
     @Override
     public boolean removeAssociatedEvent()
@@ -141,4 +81,13 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.towCompany = txtCompany.getText();
+        event.towBeat = txtBeat.getText();
+        event.towConfNum = txtConfirmationNumber.getText();
+        event.towPubNum = txtPublicNumber.getText();
     }
 
Index: trunk/src/event/editor/CMSEvaluationPanel.java
===================================================================
--- trunk/src/event/editor/CMSEvaluationPanel.java	(revision 92)
+++ trunk/src/event/editor/CMSEvaluationPanel.java	(revision 130)
@@ -35,49 +35,7 @@
         event = (CMSEvaluationEvent) sei;
         txtID.setText(event.cmsID);
-        txtID.addKeyListener(new KeyListener()
-        {
-
-            @Override
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            @Override
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.cmsID = txtID.getText();
-                }
-            }
-
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
+        
         txtLocation.setText(event.location);
-        txtLocation.addKeyListener(new KeyListener()
-        {
-
-            @Override
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            @Override
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.location = txtLocation.getText();
-                }
-            }
-
-            @Override
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
+        
         txtMessage.setText("");
         for (int i = 0; i < event.message.size(); i++)
@@ -92,13 +50,5 @@
             }
         }
-        TypeDropdown.addActionListener(new ActionListener()
-        {
-
-            @Override
-            public void actionPerformed(ActionEvent e)
-            {
-                event.cmsType = TypeDropdown.getSelectedItem().toString();
-            }
-        });
+        
         addButton.addActionListener(new ActionListener()
         {
@@ -139,4 +89,12 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.cmsID = txtID.getText();
+        event.location = txtLocation.getText();
+        event.cmsType = TypeDropdown.getSelectedItem().toString();
     }
 
Index: trunk/src/event/editor/UnitPanel.java
===================================================================
--- trunk/src/event/editor/UnitPanel.java	(revision 92)
+++ trunk/src/event/editor/UnitPanel.java	(revision 130)
@@ -51,28 +51,5 @@
             }
         }
-        txtUnitNumber.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.unitNum = txtUnitNumber.getText();
-                }
-            }
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
-        ActiveDropdown.addActionListener(new ActionListener()
-        {
-
-            public void actionPerformed(ActionEvent e)
-            {
-                event.unitActive = ActiveDropdown.getSelectedItem().toString();
-            }
-        });
+
         for (int i = 0; i < PrimaryDropdown.getItemCount(); i++)
         {
@@ -82,12 +59,5 @@
             }
         }
-        PrimaryDropdown.addActionListener(new ActionListener()
-        {
-
-            public void actionPerformed(ActionEvent e)
-            {
-                event.unitPrimary = PrimaryDropdown.getSelectedItem().toString();
-            }
-        });
+
         boolean containsItem = false;
         for (int i = 0; i < StatusDropdown.getItemCount() && !containsItem; i++)
@@ -104,12 +74,5 @@
             StatusDropdown.setSelectedItem(StatusDropdown.getItemCount() - 1);
         }
-        StatusDropdown.addActionListener(new ActionListener()
-        {
-
-            public void actionPerformed(ActionEvent e)
-            {
-                event.unitStatus = StatusDropdown.getSelectedItem().toString();
-            }
-        });
+
     }
 
@@ -119,5 +82,5 @@
         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
     }
-    
+
     @Override
     public boolean removeAssociatedEvent()
@@ -126,4 +89,13 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.unitNum = txtUnitNumber.getText();
+        event.unitActive = ActiveDropdown.getSelectedItem().toString();
+        event.unitPrimary = PrimaryDropdown.getSelectedItem().toString();
+        event.unitStatus = StatusDropdown.getSelectedItem().toString();
     }
 
Index: trunk/src/event/editor/TelephonePanel.java
===================================================================
--- trunk/src/event/editor/TelephonePanel.java	(revision 92)
+++ trunk/src/event/editor/TelephonePanel.java	(revision 130)
@@ -114,4 +114,10 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        //No change is necessary here; this panel saves its state continually
     }
 
Index: trunk/src/event/editor/TMTRadioPanel.java
===================================================================
--- trunk/src/event/editor/TMTRadioPanel.java	(revision 92)
+++ trunk/src/event/editor/TMTRadioPanel.java	(revision 130)
@@ -27,23 +27,4 @@
         event = (TMTRadioEvent) sei;
         jTextArea1.setText(event.message);
-        jTextArea1.addKeyListener(new KeyListener()
-        {
-
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.message = jTextArea1.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
     }
 
@@ -59,4 +40,10 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.message = jTextArea1.getText();
     }
 
Index: trunk/src/event/editor/I_ScriptEventEditorPanel.java
===================================================================
--- trunk/src/event/editor/I_ScriptEventEditorPanel.java	(revision 92)
+++ trunk/src/event/editor/I_ScriptEventEditorPanel.java	(revision 130)
@@ -23,5 +23,5 @@
     void getEventObject(I_ScriptEvent sei);
     
-     /**
+    /**
      * Remove the event associated with this panel.
      * 
@@ -29,3 +29,8 @@
      */
     boolean removeAssociatedEvent();
+    
+    /**
+     * Action to take when the panel closes.
+     */
+    void uponClose();
 }
Index: trunk/src/event/editor/CADLogPanel.java
===================================================================
--- trunk/src/event/editor/CADLogPanel.java	(revision 92)
+++ trunk/src/event/editor/CADLogPanel.java	(revision 130)
@@ -33,23 +33,4 @@
         event = (CADEvent) sei;
         CadTextField.setText(event.detail);
-        CadTextField.addKeyListener(new KeyListener()
-        {
-
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.detail = CadTextField.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
     }
 
@@ -66,4 +47,10 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.detail = CadTextField.getText();
     }
 
Index: trunk/src/event/editor/CHPRadioPanel.java
===================================================================
--- trunk/src/event/editor/CHPRadioPanel.java	(revision 92)
+++ trunk/src/event/editor/CHPRadioPanel.java	(revision 130)
@@ -36,23 +36,5 @@
         event = (CHPRadioEvent) sei;
         audioText.setText(event.radioFile);
-        audioText.addKeyListener(new KeyListener()
-        {
-
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.radioFile = audioText.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
+        
         for (int i = 0; i < event.lines.size(); i++)
         {
@@ -108,4 +90,10 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.radioFile = audioText.getText();
     }
 
Index: trunk/src/event/editor/frame/PropertyModel.java
===================================================================
--- trunk/src/event/editor/frame/PropertyModel.java	(revision 101)
+++ trunk/src/event/editor/frame/PropertyModel.java	(revision 130)
@@ -93,4 +93,18 @@
         notifyObservers(arg);
     }
+    
+    /**
+     * Propagate the window closure.
+     */
+    public void closePanels()
+    {
+        for(JPanel panel : eventMap.keySet())
+        {
+            if(panel instanceof I_ScriptEventEditorPanel)
+            {
+                ((I_ScriptEventEditorPanel) panel).uponClose();
+            }
+        }
+    }
 
     /*
Index: trunk/src/event/editor/frame/Editor.java
===================================================================
--- trunk/src/event/editor/frame/Editor.java	(revision 119)
+++ trunk/src/event/editor/frame/Editor.java	(revision 130)
@@ -124,4 +124,5 @@
                 }
             }
+
         }
 
@@ -150,4 +151,16 @@
             public void keyReleased(KeyEvent e)
             {
+            }
+        });
+        this.addWindowListener(new WindowAdapter()
+        {
+            @Override
+            public void windowClosing(WindowEvent e)
+            {
+                //Add previous offset back in
+                //If we didn't adjust the offset, this will just set it to the old value
+                //If we deleted the first event(s), this will add the offsets,
+                //to ensure that events stay at the correct times
+                model.closePanels();
             }
         });
Index: trunk/src/event/editor/WitnessPanel.java
===================================================================
--- trunk/src/event/editor/WitnessPanel.java	(revision 92)
+++ trunk/src/event/editor/WitnessPanel.java	(revision 130)
@@ -34,22 +34,5 @@
             txtFirstName.setText(st.nextToken());
         }
-        txtFirstName.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
 
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.witnessName = txtFirstName.getText() + " " + txtLastName.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
         txtLastName.setText("");
         while (st.hasMoreTokens())
@@ -57,60 +40,9 @@
             txtLastName.setText(txtLastName.getText() + st.nextToken());
         }
-        txtLastName.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
 
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.witnessName = txtFirstName.getText() + " " + txtLastName.getText();
-                }
-            }
+        txtPhoneNumber.setText("" + event.witnessNum);
 
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
-        txtPhoneNumber.setText("" + event.witnessNum);
-        txtPhoneNumber.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
+        txtAddress.setText(event.witnessAddress);
 
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.witnessNum = txtPhoneNumber.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
-        txtAddress.setText(event.witnessAddress);
-        txtAddress.addKeyListener(new KeyListener()
-        {
-            public void keyTyped(KeyEvent e)
-            {
-            }
-
-            public void keyPressed(KeyEvent e)
-            {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                    event.witnessAddress = txtAddress.getText();
-                }
-            }
-
-            public void keyReleased(KeyEvent e)
-            {
-            }
-        });
     }
 
@@ -120,5 +52,5 @@
         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
     }
-    
+
     @Override
     public boolean removeAssociatedEvent()
@@ -127,4 +59,12 @@
         event = null;
         return true;
+    }
+
+    @Override
+    public void uponClose()
+    {
+        event.witnessName = txtFirstName.getText() + " " + txtLastName.getText();
+        event.witnessNum = txtPhoneNumber.getText();
+        event.witnessAddress = txtAddress.getText();
     }
 
