Print

Print


Author: [log in to unmask]
Date: Mon Mar  2 18:40:24 2015
New Revision: 2227

Log:
Making a mess on the monitoring-app branch.  HPSJAVA-442

Added:
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/Main.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/Main.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/AbstractFieldsPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/Commands.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/Commands.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ConnectionSettingsPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatus.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/ConnectionStatus.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ConnectionStatusPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourcePanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DataSourcePanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DatePanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DatePanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/EventButtonsPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/EventButtonsPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/FieldPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/FieldPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/JobSettingsPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/RunPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/RunPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsDialog.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/SettingsDialog.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsPanel.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/SettingsPanel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SteeringType.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/SteeringType.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/
      - copied from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/model/
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/util/
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/util/DialogUtil.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DialogUtil.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/util/ErrorHandler.java
      - copied, changed from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ErrorHandler.java
Removed:
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/ConnectionStatus.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/SteeringType.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/
Modified:
    java/branches/monitoring-app-HPSJAVA-442/pom.xml
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/AbstractModel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/Configuration.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/RunModel.java
    java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java

Modified: java/branches/monitoring-app-HPSJAVA-442/pom.xml
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/pom.xml	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/pom.xml	Mon Mar  2 18:40:24 2015
@@ -31,7 +31,7 @@
                             <transformers>
                                 <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-                                    <mainClass>org.hps.monitoring.gui.Main</mainClass>
+                                    <mainClass>org.hps.monitoring.Main</mainClass>
                                 </transformer>
                             </transformers>
                             <artifactSet>

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/Main.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/Main.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/Main.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/Main.java	Mon Mar  2 18:40:24 2015
@@ -1,8 +1,6 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring;
 
 import java.io.File;
-
-import javax.swing.SwingUtilities;
 
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
@@ -11,7 +9,9 @@
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
-import org.hps.monitoring.gui.model.Configuration;
+import org.hps.monitoring.application.MonitoringApplication;
+import org.hps.monitoring.application.model.Configuration;
+
 
 /**
  * This is the front-end for running the monitoring app via a {@link #main(String[])} method.
@@ -19,10 +19,43 @@
 // FIXME: Move to org.hps.monitoring instead of gui package.
 public class Main {
 
+    public static void main(String[] args) {
+        
+        // Set up command line parsing.
+        Options options = new Options();
+        options.addOption(new Option("h", false, "Print help."));
+        options.addOption(new Option("c", true, "Load a properties file with configuration parameters."));
+        CommandLineParser parser = new PosixParser();
+        
+        // Parse command line arguments.
+        final CommandLine cl;
+        try {
+            cl = parser.parse(options, args);
+        } catch (ParseException e) {
+            throw new RuntimeException("Problem parsing command line options.", e);
+        }
+
+        // Print help and exit.
+        if (cl.hasOption("h")) {
+            HelpFormatter help = new HelpFormatter();
+            help.printHelp(" ", options);
+            System.exit(1);
+        }
+        
+        // Load the connection settings.
+        Configuration configuration = null;
+        if (cl.hasOption("c")) {
+            configuration = new Configuration(new File(cl.getOptionValue("c")));
+        }        
+        
+        MonitoringApplication.create(configuration);
+    }
+    
     /**
      * Run the monitoring application from the command line.
      * @param args The command line arguments.
      */
+    /*
     public static void main(String[] args) {
 
         // Set up command line parsing.
@@ -65,4 +98,5 @@
             }
         });
     }
+    */
 }

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/AbstractFieldsPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/AbstractFieldsPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
 import java.awt.Color;
 import java.awt.Container;
@@ -17,7 +17,7 @@
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 
-import org.hps.monitoring.gui.model.HasConfigurationModel;
+import org.hps.monitoring.application.model.HasConfigurationModel;
 
 /**
  * A <code>JPanel</code> which has a number of fields with the labels in the first column and the

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/Commands.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/Commands.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/Commands.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/Commands.java	Mon Mar  2 18:40:24 2015
@@ -1,10 +1,10 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
 /**
  * These strings are used to identify ActionEvents in the MonitoringApplication. A few commands
  * handled only by sub-components are not listed here.
  */
-final class Commands {
+public final class Commands {
 
     static final String AIDA_AUTO_SAVE = "aidaAutoSave";
     static final String AIDA_AUTO_SAVE_CHANGED = "aidaAutoSaveChanged";

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ConnectionSettingsPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ConnectionSettingsPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,7 +1,7 @@
-package org.hps.monitoring.gui;
-
-import static org.hps.monitoring.gui.Commands.*;
-import static org.hps.monitoring.gui.model.ConfigurationModel.*;
+package org.hps.monitoring.application;
+
+import static org.hps.monitoring.application.Commands.*;
+import static org.hps.monitoring.application.model.ConfigurationModel.*;
 
 import java.awt.GridBagLayout;
 import java.awt.Insets;
@@ -13,7 +13,7 @@
 import javax.swing.JComboBox;
 import javax.swing.JTextField;
 
-import org.hps.monitoring.gui.model.ConfigurationModel;
+import org.hps.monitoring.application.model.ConfigurationModel;
 import org.jlab.coda.et.enums.Mode;
 
 /**

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatus.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/ConnectionStatus.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/ConnectionStatus.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatus.java	Mon Mar  2 18:40:24 2015
@@ -1,8 +1,9 @@
-package org.hps.monitoring.enums;
+package org.hps.monitoring.application;
 
 /**
  * Status of the connection to the ET server from the monitoring client.
  */
+// FIXME: Just change to disconnected and connected.
 public enum ConnectionStatus {
     DISCONNECTED,
     DISCONNECTING,

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ConnectionStatusPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ConnectionStatusPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
 import java.awt.Color;
 import java.awt.Dimension;
@@ -15,8 +15,6 @@
 import javax.swing.JTextField;
 import javax.swing.SwingConstants;
 import javax.swing.SwingUtilities;
-
-import org.hps.monitoring.enums.ConnectionStatus;
 
 /**
  * This is the panel for showing the current connection status (connected, disconnected, etc.).

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourcePanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DataSourcePanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DataSourcePanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourcePanel.java	Mon Mar  2 18:40:24 2015
@@ -1,12 +1,12 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
-import static org.hps.monitoring.gui.Commands.CHOOSE_FILE_SOURCE;
-import static org.hps.monitoring.gui.Commands.DATA_SOURCE_TYPE_CHANGED;
-import static org.hps.monitoring.gui.Commands.PROCESSING_STAGE_CHANGED;
-import static org.hps.monitoring.gui.Commands.VALIDATE_DATA_FILE;
-import static org.hps.monitoring.gui.model.ConfigurationModel.DATA_SOURCE_PATH_PROPERTY;
-import static org.hps.monitoring.gui.model.ConfigurationModel.DATA_SOURCE_TYPE_PROPERTY;
-import static org.hps.monitoring.gui.model.ConfigurationModel.PROCESSING_STAGE_PROPERTY;
+import static org.hps.monitoring.application.Commands.CHOOSE_FILE_SOURCE;
+import static org.hps.monitoring.application.Commands.DATA_SOURCE_TYPE_CHANGED;
+import static org.hps.monitoring.application.Commands.PROCESSING_STAGE_CHANGED;
+import static org.hps.monitoring.application.Commands.VALIDATE_DATA_FILE;
+import static org.hps.monitoring.application.model.ConfigurationModel.DATA_SOURCE_PATH_PROPERTY;
+import static org.hps.monitoring.application.model.ConfigurationModel.DATA_SOURCE_TYPE_PROPERTY;
+import static org.hps.monitoring.application.model.ConfigurationModel.PROCESSING_STAGE_PROPERTY;
 
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
@@ -22,7 +22,7 @@
 import javax.swing.filechooser.FileFilter;
 import javax.swing.filechooser.FileNameExtensionFilter;
 
-import org.hps.monitoring.gui.model.ConfigurationModel;
+import org.hps.monitoring.application.model.ConfigurationModel;
 import org.hps.record.enums.DataSourceType;
 import org.hps.record.enums.ProcessingStage;
 

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DatePanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DatePanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DatePanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DatePanel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/EventButtonsPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/EventButtonsPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/EventButtonsPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/EventButtonsPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/FieldPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/FieldPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/FieldPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/FieldPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
 import javax.swing.BorderFactory;
 import javax.swing.JPanel;

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/JobSettingsPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/JobSettingsPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,7 +1,7 @@
-package org.hps.monitoring.gui;
-
-import static org.hps.monitoring.gui.Commands.*;
-import static org.hps.monitoring.gui.model.ConfigurationModel.*;
+package org.hps.monitoring.application;
+
+import static org.hps.monitoring.application.Commands.*;
+import static org.hps.monitoring.application.model.ConfigurationModel.*;
 
 import java.awt.GridBagLayout;
 import java.awt.Insets;
@@ -32,8 +32,7 @@
 import javax.swing.JTextField;
 import javax.swing.filechooser.FileFilter;
 
-import org.hps.monitoring.enums.SteeringType;
-import org.hps.monitoring.gui.model.ConfigurationModel;
+import org.hps.monitoring.application.model.ConfigurationModel;
 import org.hps.record.LCSimEventBuilder;
 import org.jdom.Document;
 import org.jdom.Element;

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/RunPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/RunPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/RunPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/RunPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,9 +1,20 @@
-package org.hps.monitoring.gui;
-
-import static org.hps.monitoring.gui.model.RunModel.*;
+package org.hps.monitoring.application;
+
+import static org.hps.monitoring.application.model.RunModel.DATA_RATE_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.DATA_RECEIVED_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.ELAPSED_TIME_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.END_DATE_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.EVENTS_RECEIVED_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.EVENT_NUMBER_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.EVENT_RATE_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.RUN_LENGTH_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.RUN_NUMBER_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.START_DATE_PROPERTY;
+import static org.hps.monitoring.application.model.RunModel.TOTAL_EVENTS_PROPERTY;
 
 import java.awt.Dimension;
-import java.awt.FlowLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.text.DecimalFormat;
@@ -17,7 +28,7 @@
 import javax.swing.border.EtchedBorder;
 import javax.swing.border.TitledBorder;
 
-import org.hps.monitoring.gui.model.RunModel;
+import org.hps.monitoring.application.model.RunModel;
 import org.hps.record.composite.CompositeRecord;
 import org.hps.record.composite.CompositeRecordProcessor;
 import org.hps.record.evio.EvioEventUtilities;
@@ -29,7 +40,7 @@
  * Dashboard for displaying information about the current run.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-class RunPanel extends JPanel implements PropertyChangeListener {
+public class RunPanel extends JPanel implements PropertyChangeListener {
 
     FieldPanel runNumberField = new FieldPanel("Run Number", "", 10, false);
     DatePanel startDateField = new DatePanel("Run Start", "", 16, false);
@@ -43,32 +54,51 @@
     FieldPanel dataRateField = new FieldPanel("Data Rate [MB/s]", "", 12, false);
     FieldPanel eventRateField = new FieldPanel("Event Rate [evt/s]", "", 14, false);
 
-    RunModel model;
+    RunModel runModel;
     
     static final NumberFormat formatter = new DecimalFormat("#0.00"); 
 
-    RunPanel(RunModel model) {
-        this.model = model;
-        this.model.addPropertyChangeListener(this);
-
-        setLayout(new FlowLayout(FlowLayout.LEFT));
-
-        TitledBorder titledBorder = BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "Run Summary");
+    public RunPanel() {
+        build();
+    }
+    
+    public RunPanel(RunModel runModel) {
+        this.runModel = runModel;
+        this.runModel.addPropertyChangeListener(this);
+        build();
+    }
+    
+    private void build() {
+        
+        setLayout(new GridBagLayout());
+
+        TitledBorder titledBorder = BorderFactory.createTitledBorder(
+                BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "Run Summary");
         setBorder(titledBorder);
 
-        add(runNumberField);
-        add(startDateField);
-        add(endDateField);
-        add(lengthField);
-        add(totalEventsField);
-        add(elapsedTimeField);
-        add(eventsReceivedField);
-        add(dataReceivedField);
-        add(eventNumberField);
-        add(dataRateField);
-        add(eventRateField);
-
-        this.setMinimumSize(new Dimension(0, 240));
+        GridBagConstraints c = new GridBagConstraints();
+        c.anchor = GridBagConstraints.WEST;
+        c.gridx = 0;                
+        add(runNumberField, c);
+        add(startDateField, c);
+        add(endDateField, c);
+        add(lengthField, c);
+        add(totalEventsField, c);
+        
+        c = new GridBagConstraints();
+        c.gridx = 1;
+        add(elapsedTimeField, c);
+        add(eventsReceivedField, c);
+        add(dataReceivedField, c);
+        add(eventNumberField, c);
+        add(dataRateField, c);
+        add(eventRateField, c);
+
+        setMinimumSize(new Dimension(400, 240));
+    }
+    
+    public void setModel(RunModel runModel) {
+        this.runModel = runModel;
     }
 
     class RunModelUpdater extends CompositeRecordProcessor {
@@ -104,12 +134,12 @@
                 System.out.println("megaBytesReceived = " + megaBytesReceived);
                 */
                 
-                model.setElapsedTime(elapsedTime);
-                model.setEventsReceived(totalEvents);
-                model.setDataRate(megaBytesReceived / tickLengthSeconds);
-                model.addDataReceived(megaBytesReceived);
-                model.setEventNumber(eventNumber);
-                model.setEventRate(eventsReceived / tickLengthSeconds);
+                runModel.setElapsedTime(elapsedTime);
+                runModel.setEventsReceived(totalEvents);
+                runModel.setDataRate(megaBytesReceived / tickLengthSeconds);
+                runModel.addDataReceived(megaBytesReceived);
+                runModel.setEventNumber(eventNumber);
+                runModel.setEventRate(eventsReceived / tickLengthSeconds);
                 
                 eventsReceived = 0;
                 bytesReceived = 0;
@@ -123,7 +153,7 @@
         
         @Override
         public void startJob() {
-            model.reset();
+            runModel.reset();
             jobStartMillis = System.currentTimeMillis();
             
             // Start the timer to update GUI components about once per second.
@@ -174,8 +204,8 @@
                 int headBankRun = headBank.getIntData()[1];
                 if (headBankRun != runNumber) {
                     runNumber = headBankRun;
-                    model.setRunNumber(headBankRun);
-                    model.setStartDate(new Date(headBank.getIntData()[3] * 1000));
+                    runModel.setRunNumber(headBankRun);
+                    runModel.setStartDate(new Date(headBank.getIntData()[3] * 1000));
                 }
             }
         }
@@ -189,9 +219,9 @@
                 long endMillis = ((long) seconds) * 1000;
 
                 // Update the GUI.
-                model.setEndDate(new Date(endMillis));
-                model.computeRunLength();
-                model.setTotalEvents(eventCount);
+                runModel.setEndDate(new Date(endMillis));
+                runModel.computeRunLength();
+                runModel.setTotalEvents(eventCount);
             }
         }
 
@@ -203,15 +233,15 @@
                 runNumber = data[1];
                 
                 // Update the GUI.
-                model.setRunNumber(runNumber);
-                model.setStartDate(new Date(seconds * 1000));
+                runModel.setRunNumber(runNumber);
+                runModel.setStartDate(new Date(seconds * 1000));
             }
         }
         
         private void startRun(EventHeader lcioEvent) {
-            model.setRunNumber(lcioEvent.getRunNumber());
+            runModel.setRunNumber(lcioEvent.getRunNumber());
             long seconds = lcioEvent.getTimeStamp() / 1000000000;
-            model.setStartDate(new Date((int)seconds));
+            runModel.setStartDate(new Date((int)seconds));
         }
         
         @Override

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsDialog.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/SettingsDialog.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/SettingsDialog.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsDialog.java	Mon Mar  2 18:40:24 2015
@@ -1,19 +1,22 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
+import java.awt.event.ActionListener;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 
 import javax.swing.JDialog;
 
+import org.hps.monitoring.application.model.ConfigurationModel;
+
 /**
  * The modal dialog for entering settings. It contains a <code>JPanel</code> with the different
  * settings sub-tabs.
  */
-class SettingsDialog extends JDialog {
+public class SettingsDialog extends JDialog {
 
     final SettingsPanel settingsPanel = new SettingsPanel(this);
 
-    SettingsDialog() {
+    public SettingsDialog() {
 
         setTitle("Settings");
         setContentPane(settingsPanel);
@@ -29,7 +32,19 @@
         });
     }
 
-    SettingsPanel getSettingsPanel() {
+    public SettingsPanel getSettingsPanel() {
         return settingsPanel;
     }
+    
+    void addActionListener(ActionListener listener) {
+        settingsPanel.addActionListener(listener);
+        settingsPanel.getJobSettingsPanel().addActionListener(listener);
+        settingsPanel.getDataSourcePanel().addActionListener(listener);
+    }
+    
+    void setConfigurationModel(ConfigurationModel model) {
+        settingsPanel.getJobSettingsPanel().setConfigurationModel(model);
+        settingsPanel.getConnectionPanel().setConfigurationModel(model);
+        settingsPanel.getDataSourcePanel().setConfigurationModel(model);
+    }    
 }

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsPanel.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/SettingsPanel.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/SettingsPanel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsPanel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application;
 
 import java.awt.Dimension;
 import java.awt.FlowLayout;
@@ -15,7 +15,7 @@
 /**
  * The container component with the tabs that have job and connection settings.
  */
-class SettingsPanel extends JPanel implements ActionListener {
+public class SettingsPanel extends JPanel implements ActionListener {
 
     JTabbedPane tabs;
     JobSettingsPanel jobPanel = new JobSettingsPanel();

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SteeringType.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/SteeringType.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/enums/SteeringType.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SteeringType.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.enums;
+package org.hps.monitoring.application;
 
 /**
  * The type of steering to use for event processing.

Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/AbstractModel.java
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/AbstractModel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/AbstractModel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui.model;
+package org.hps.monitoring.application.model;
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;

Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/Configuration.java
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/Configuration.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/Configuration.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui.model;
+package org.hps.monitoring.application.model;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -10,7 +10,7 @@
 /**
  * This class provides a list of key, value pairs backed by a <code>Properties</code> object. The
  * getter and setter methods for these values are not public, because the 
- * {@link org.hps.monitoring.gui.model.ConfigurationModel} class should be used instead
+ * {@link org.hps.monitoring.application.model.ConfigurationModel} class should be used instead
  * to get or set application configuration values.
  */
 public final class Configuration {

Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui.model;
+package org.hps.monitoring.application.model;
 
 import java.io.File;
 import java.lang.reflect.Field;
@@ -6,7 +6,7 @@
 
 import javassist.Modifier;
 
-import org.hps.monitoring.enums.SteeringType;
+import org.hps.monitoring.application.SteeringType;
 import org.hps.record.enums.DataSourceType;
 import org.hps.record.enums.ProcessingStage;
 import org.jlab.coda.et.enums.Mode;

Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui.model;
+package org.hps.monitoring.application.model;
 
 /**
  * Mixin interface for classes that have an associated {@link ConfigurationModel}.

Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/RunModel.java
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/RunModel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/RunModel.java	Mon Mar  2 18:40:24 2015
@@ -1,9 +1,9 @@
-package org.hps.monitoring.gui.model;
+package org.hps.monitoring.application.model;
 
 import java.util.Date;
 
 /**
- * Backing model for run information that shows in the {@link org.hps.monitoring.gui.RunPanel}.
+ * Backing model for run information that shows in the {@link org.hps.monitoring.application.RunPanel}.
  */
 public final class RunModel extends AbstractModel {
 

Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui.model;
+package org.hps.monitoring.application.model;
 
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/util/DialogUtil.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DialogUtil.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/DialogUtil.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/util/DialogUtil.java	Mon Mar  2 18:40:24 2015
@@ -1,17 +1,16 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application.util;
 
 import java.awt.Component;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 
-import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JOptionPane;
 import javax.swing.SwingUtilities;
 
-class DialogUtil {
+public class DialogUtil {
 
-    static JDialog showStatusDialog(final Component parentComponent, String title, String message) {
+    public static JDialog showStatusDialog(final Component parentComponent, String title, String message) {
         final JOptionPane optionPane = new JOptionPane(message, JOptionPane.INFORMATION_MESSAGE, JOptionPane.DEFAULT_OPTION, null, new Object[] {}, null);
         final JDialog dialog = new JDialog();
         dialog.setContentPane(optionPane);
@@ -33,7 +32,7 @@
         return dialog;
     }
 
-    static void showErrorDialog(final Component component, final Throwable error, final String title) {
+    public static void showErrorDialog(final Component component, final Throwable error, final String title) {
         final Runnable runnable = new Runnable() {
             public void run() {
                 JOptionPane.showMessageDialog(component, error.getMessage(), title, JOptionPane.ERROR_MESSAGE);
@@ -42,7 +41,7 @@
         SwingUtilities.invokeLater(runnable);
     }
 
-    static void showInfoDialog(final Component component, final String title, final String message) {
+    public static void showInfoDialog(final Component component, final String title, final String message) {
         final Runnable runnable = new Runnable() {
             public void run() {
                 JOptionPane.showMessageDialog(component, message, title, JOptionPane.INFORMATION_MESSAGE);

Copied: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/util/ErrorHandler.java (from r2225, java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ErrorHandler.java)
 =============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/gui/ErrorHandler.java	(original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/util/ErrorHandler.java	Mon Mar  2 18:40:24 2015
@@ -1,4 +1,4 @@
-package org.hps.monitoring.gui;
+package org.hps.monitoring.application.util;
 
 import java.awt.Component;
 import java.util.logging.Level;
@@ -24,7 +24,7 @@
  * chained, where appropriate. Some methods are not available for chaining when it doesn't make
  * sense. </p>
  */
-class ErrorHandler {
+public class ErrorHandler {
 
     Logger logger;
     Component component;
@@ -36,7 +36,7 @@
      * @param component The GUI component to which this object is assigned.
      * @param logger The logger to which messages will be written.
      */
-    ErrorHandler(Component component, Logger logger) {
+    public ErrorHandler(Component component, Logger logger) {
         this.logger = logger;
         this.component = component;
     }
@@ -46,7 +46,7 @@
      * @param error The error which is a <code>Throwable</code>.
      * @return This object.
      */
-    ErrorHandler setError(Throwable error) {
+    public ErrorHandler setError(Throwable error) {
         this.error = error;
         this.message = error.getMessage();
         return this;
@@ -57,7 +57,7 @@
      * @param message The erro message.
      * @return This object.
      */
-    ErrorHandler setMessage(String message) {
+    public ErrorHandler setMessage(String message) {
         this.message = message;
         return this;
     }
@@ -66,7 +66,7 @@
      * Print the full stack trace of the error to System.err.
      * @return This object.
      */
-    ErrorHandler printStackTrace() {
+    public ErrorHandler printStackTrace() {
         error.printStackTrace();
         return this;
     }
@@ -75,7 +75,7 @@
      * Print the error message to System.err.
      * @return This object.
      */
-    ErrorHandler printMessage() {
+    public ErrorHandler printMessage() {
         System.err.println(message);
         return this;
     }
@@ -84,7 +84,7 @@
      * Log the error message to the <code>Logger</code>.
      * @return This object.
      */
-    ErrorHandler log() {
+    public ErrorHandler log() {
         logger.log(Level.SEVERE, message);
         return this;
     }
@@ -93,7 +93,7 @@
      * Show an error dialog with the message.
      * @return This object.
      */
-    ErrorHandler showErrorDialog() {
+    public ErrorHandler showErrorDialog() {
         final Runnable runnable = new Runnable() {
             public void run() {
                 JOptionPane.showMessageDialog(component, error.getMessage(), "Application Error", JOptionPane.ERROR_MESSAGE);
@@ -107,14 +107,14 @@
      * Rethrow the error as a <code>RuntimeException</code>. Additional methods cannot be chained to
      * this as they would not be executed.
      */
-    void raiseException() {
+    public void raiseException() {
         throw new RuntimeException(message, error);
     }
 
     /**
      * Exit the application. This is not chainable for obvious reasons.
      */
-    void exit() {
+    public void exit() {
         System.err.println("Fatal error.  Application will exit.");
         System.exit(1);
     }