Print

Print


Author: [log in to unmask]
Date: Mon Apr 13 13:17:35 2015
New Revision: 2679

Log:
Code cleanup in monitoring-app module.

Modified:
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AddActionListener.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/Commands.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsCollectionTableModel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DatePanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventButtonsPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventDashboard.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/LogPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/PlotPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SettingsDialog.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusEventsTable.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusTable.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ToolbarPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/TriggerDiagnosticsPanel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/AbstractModel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatus.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatusModel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/RunModel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SteeringType.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/package-info.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/AIDAServer.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/DialogUtil.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ErrorHandler.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EtSystemUtil.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EvioFileFilter.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ResourceUtil.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/TableExporter.java

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java	Mon Apr 13 13:17:35 2015
@@ -344,7 +344,7 @@
     }
 
     /**
-     * Get the {@link org.hps.monitoring.application.model.ConfigurationModel} for this component
+     * Get the {@link org.hps.monitoring.application.model.ConfigurationModel} for this component.
      *
      * @return the {@link org.hps.monitoring.application.model.ConfigurationModel} for this component
      */

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AddActionListener.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AddActionListener.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/AddActionListener.java	Mon Apr 13 13:17:35 2015
@@ -3,14 +3,15 @@
 import java.awt.event.ActionListener;
 
 /**
- * Mixin interface for components which can be assigned an external <code>ActionListener</code>.
+ * Mix-in interface for components which can be assigned an <code>ActionListener</code>.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 interface AddActionListener {
 
     /**
-     * Assign an <code>ActionListener</code> to this component which will assign to appropriate child components.
+     * Set an <code>ActionListener</code> for this component, which should assign it to appropriate child components
+     * that emit <code>ActionEvent</code> objects.
      *
      * @param listener the <code>ActionListener</code> to assign to this component
      */

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/Commands.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/Commands.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/Commands.java	Mon Apr 13 13:17:35 2015
@@ -1,8 +1,7 @@
 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.
+ * These strings are used to identify <code>ActionEvent</code> commands in the MonitoringApplication.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsCollectionTableModel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsCollectionTableModel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsCollectionTableModel.java	Mon Apr 13 13:17:35 2015
@@ -68,11 +68,11 @@
     @Override
     public Class<?> getColumnClass(final int columnIndex) {
         final Class<?> columnClass = this.columnTypes[columnIndex];
-        if (columnClass.equals(int.class)) {
+        if (int.class.equals(columnClass)) {
             return Integer.class;
-        } else if (columnClass.equals(float.class)) {
+        } else if (float.class.equals(columnClass)) {
             return Float.class;
-        } else if (columnClass.equals(double.class)) {
+        } else if (double.class.equals(columnClass)) {
             return Double.class;
         } else {
             return columnClass;
@@ -92,6 +92,7 @@
     /**
      * Get the name of the column.
      *
+     * @param columnIndex the column index
      * @return the name of the column
      */
     @Override
@@ -110,10 +111,11 @@
     }
 
     /**
-     * Get a cell value.
+     * Get a table cell value.
      *
      * @param rowIndex the row index
      * @param columnIndex the column index
+     * @return the value of the cell
      */
     @Override
     public Object getValueAt(final int rowIndex, final int columnIndex) {
@@ -128,7 +130,7 @@
     /**
      * Setup the columns from table meta data.
      *
-     * @param tableInfo the {@link org.hps.conditions.database.TableMetaData} with table info
+     * @param tableInfo the {@link org.hps.conditions.database.TableMetaData} with the table info
      */
     private void setupColumns(final TableMetaData tableInfo) {
 

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConditionsPanel.java	Mon Apr 13 13:17:35 2015
@@ -26,12 +26,12 @@
 import org.lcsim.conditions.ConditionsListener;
 
 /**
- * The component for showing conditions tables in the monitoring app.
+ * The component for showing conditions table records in the monitoring application tabs.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 @SuppressWarnings("serial")
-public final class ConditionsPanel extends JPanel {
+final class ConditionsPanel extends JPanel {
 
     /**
      * The listener for updating the panel when conditions are changed.
@@ -66,7 +66,7 @@
                 final ConditionsObjectCollection<?> collection = manager.getCachedConditions(
                         manager.findTableMetaData(tableName).getCollectionClass(), tableName).getCachedData();
                 ConditionsPanel.this.tableModels
-                .put(tableName, new ConditionsCollectionTableModel(manager, collection));
+                        .put(tableName, new ConditionsCollectionTableModel(manager, collection));
             }
         }
     }
@@ -94,6 +94,12 @@
 
         this.conditionsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         this.conditionsList.addListSelectionListener(new ListSelectionListener() {
+
+            /**
+             * The selection listener method implementation which will activate a new table in the conditions panel.
+             *
+             * @param e the list selection event
+             */
             @Override
             public void valueChanged(final ListSelectionEvent e) {
                 final String tableName = ConditionsPanel.this.conditionsList.getSelectedValue();
@@ -104,11 +110,11 @@
             }
         });
 
+        // Initialize with default table model.
         this.conditionsTable.setModel(new DefaultTableModel());
 
         final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, this.conditionsList, new JScrollPane(
                 this.conditionsTable));
-        // splitPane.setResizeWeight(0.6);
 
         this.add(splitPane);
     }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java	Mon Apr 13 13:17:35 2015
@@ -22,9 +22,15 @@
 final class ConnectionSettingsPanel extends AbstractFieldsPanel {
 
     /**
-     * Updates the GUI from changes in the ConfigurationModel.
+     * Update the GUI from changes in the {@link org.hps.monitoring.application.model.ConfigurationModel}.
      */
     public class ConnectionSettingsChangeListener implements PropertyChangeListener {
+
+        /**
+         * Handle a property change from the model.
+         *
+         * @param the <code>PropertyChangeEvent</code> to handle
+         */
         @Override
         public void propertyChange(final PropertyChangeEvent evt) {
             ConnectionSettingsPanel.this.getConfigurationModel().removePropertyChangeListener(this);
@@ -64,7 +70,7 @@
     /**
      * The available wait mode settings (sleep, timed and asynchronous).
      */
-    private static final String[] WAIT_MODES = { Mode.SLEEP.name(), Mode.TIMED.name(), Mode.ASYNC.name() };
+    private static final String[] WAIT_MODES = {Mode.SLEEP.name(), Mode.TIMED.name(), Mode.ASYNC.name()};
 
     /**
      * Check box for blocking setting.

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java	Mon Apr 13 13:17:35 2015
@@ -21,6 +21,7 @@
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
+@SuppressWarnings("serial")
 final class ConnectionStatusPanel extends JPanel implements PropertyChangeListener {
 
     /**

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DatePanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DatePanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DatePanel.java	Mon Apr 13 13:17:35 2015
@@ -5,7 +5,7 @@
 import java.util.Date;
 
 /**
- * A small JPanel with a date field and a label on its border.
+ * A small <code>JPanel</code> with a date field and a label on its border.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventButtonsPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventButtonsPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventButtonsPanel.java	Mon Apr 13 13:17:35 2015
@@ -116,7 +116,7 @@
      * Add a button to the panel.
      *
      * @param resource the resource for the image icon
-     * @param command the command for the action event
+     * @param actionCommand the command for the action event
      * @param listener the action listener which handles action events
      * @param enabled <code>true</code> if button should be enabled initially
      * @return the new button object
@@ -128,6 +128,8 @@
 
     /**
      * Handle property change events to set status from changes to the connection status model.
+     *
+     * @param evt the <code>PropertyChangeEvent</code> to handle
      */
     @Override
     public void propertyChange(final PropertyChangeEvent evt) {

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventDashboard.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventDashboard.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventDashboard.java	Mon Apr 13 13:17:35 2015
@@ -20,7 +20,7 @@
 import org.lcsim.event.EventHeader;
 
 /**
- * This class implements a "dashboard" for displaying information about the current run.
+ * This class implements a dashboard for displaying information about the current run.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
@@ -37,6 +37,9 @@
          */
         class RunTimerTask extends TimerTask {
 
+            /**
+             * Run the timer task to update the GUI from the current values in the model.
+             */
             @Override
             public void run() {
 
@@ -270,69 +273,62 @@
     /**
      * Field for showing the data rate in MB per second.
      */
-    FieldPanel dataRateField = new FieldPanel("Data Rate [MB/s]", "", 12, false);
+    private final FieldPanel dataRateField = new FieldPanel("Data Rate [MB/s]", "", 12, false);
 
     /**
      * Field for showing the total data received in MB.
      */
-    FieldPanel dataReceivedField = new FieldPanel("Data Received [MB]", "", 14, false);
+    private final FieldPanel dataReceivedField = new FieldPanel("Data Received [MB]", "", 14, false);
 
     /**
      * Field for showing the elapsed job time in seconds.
      */
-    FieldPanel elapsedTimeField = new FieldPanel("Elapsed Time [sec]", "", 14, false);
+    private final FieldPanel elapsedTimeField = new FieldPanel("Elapsed Time [sec]", "", 14, false);
 
     /**
      * Field for showing the end date.
      */
-    DatePanel endDateField = new DatePanel("Run End", "", 14, false);
+    private final DatePanel endDateField = new DatePanel("Run End", "", 14, false);
 
     /**
      * Field for showing the current event number.
      */
-    FieldPanel eventNumberField = new FieldPanel("Event Number", "", 14, false);
+    private final FieldPanel eventNumberField = new FieldPanel("Event Number", "", 14, false);
 
     /**
      * Field showing the event rate in Hertz.
      */
-    FieldPanel eventRateField = new FieldPanel("Event Rate [Hz]", "", 14, false);
+    private final FieldPanel eventRateField = new FieldPanel("Event Rate [Hz]", "", 14, false);
 
     /**
      * Field for showing the total number of events received.
      */
-    FieldPanel eventsReceivedField = new FieldPanel("Events Received", "", 14, false);
+    private final FieldPanel eventsReceivedField = new FieldPanel("Events Received", "", 14, false);
 
     /**
      * Field for showing the length of the run in seconds.
      */
-    FieldPanel lengthField = new FieldPanel("Run Length [sec]", "", 12, false);
+    private final FieldPanel lengthField = new FieldPanel("Run Length [sec]", "", 12, false);
 
     /**
      * The backing model with run and event information.
      */
-    RunModel runModel;
+    private final RunModel runModel;
 
     /**
      * Field for showing the run number.
      */
-    FieldPanel runNumberField = new FieldPanel("Run Number", "", 10, false);
+    private final FieldPanel runNumberField = new FieldPanel("Run Number", "", 10, false);
 
     /**
      * Field for showing the start date.
      */
-    DatePanel startDateField = new DatePanel("Run Start", "", 14, false);
+    private final DatePanel startDateField = new DatePanel("Run Start", "", 14, false);
 
     /**
      * Field for showing the total events in the run.
      */
-    FieldPanel totalEventsField = new FieldPanel("Total Events in Run", "", 14, false);
-
-    /**
-     * Class constructor which will build the GUI components.
-     */
-    public EventDashboard() {
-        build();
-    }
+    private final FieldPanel totalEventsField = new FieldPanel("Total Events in Run", "", 14, false);
 
     /**
      * Class constructor which takes reference to backing model.
@@ -407,13 +403,4 @@
             this.eventRateField.setValue(DECIMAL_FORMAT.format(value));
         }
     }
-
-    /**
-     * Set the backing {@link org.hps.monitoring.application.model.RunModel} of the component.
-     *
-     * @param runModel the backing {@link org.hps.monitoring.application.model.RunModel} of the component
-     */
-    public void setModel(final RunModel runModel) {
-        this.runModel = runModel;
-    }
 }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java	Mon Apr 13 13:17:35 2015
@@ -46,7 +46,7 @@
 final class EventProcessing {
 
     /**
-     * This class is used internally to organize the objects used by an event processing session.
+     * This class organizes and encapsulates most of the objects used by an event processing session.
      */
     private final class SessionState {
 
@@ -56,7 +56,7 @@
         private List<ConditionsListener> conditionsListeners;
 
         /**
-         * An {@link org.hps.record.et.EtConnection} with ET configuration (can be null if using file source).
+         * An {@link org.hps.record.et.EtConnection} with ET configuration (can be null if using a file source).
          */
         private EtConnection connection;
 
@@ -195,9 +195,10 @@
 
     /**
      * Class constructor, which will initialize with reference to the current monitoring application and lists of extra
-     * processors to add to the loop as well as supplemental conditions listeners that activate when conditions change.
-     *
-     * @param application the current monitoring application
+     * processors to add to the loop, as well as supplemental conditions listeners that activate when the conditions
+     * change.
+     *
+     * @param application the current monitoring application object
      * @param processors a list of processors to add after configuration is performed
      * @param drivers a list of extra {@link org.lcsim.util.Driver} objects to add to the loop
      * @param conditionsListeners a list of extra {@link org.lcsim.conditions.ConditionsListener} to add to the loop
@@ -367,9 +368,9 @@
     }
 
     /**
-     * Interrupt and join to the processing watchdog thread.
+     * Interrupt and join the processing watchdog thread.
      * <p>
-     * This will happen if there is a user requested disconnect from pushing the disconnect button in the GUI.
+     * This will happen if there is a user requested disconnect from pushing the button in the GUI.
      */
     synchronized void killWatchdogThread() {
         // Is the session watchdog thread not null?
@@ -405,7 +406,7 @@
     }
 
     /**
-     * Notify the loop to pause event processing.
+     * Notify the loop to pause the event processing.
      */
     synchronized void pause() {
         this.logger.finest("pausing");
@@ -493,7 +494,7 @@
                 setupSteeringFile(steering);
             }
 
-            // Set conditions tag.
+            // Set conditions tag if applicable.
             if (configurationModel.hasValidProperty(ConfigurationModel.CONDITIONS_TAG_PROPERTY)
                     && !configurationModel.getConditionsTag().equals("")) {
                 this.logger.config("conditions tag is set to " + configurationModel.getConditionsTag());
@@ -535,7 +536,7 @@
 
         this.logger.config("setting up record loop ...");
 
-        // Initialize the loop from configuration model.
+        // Initialize the loop from the ConfigurationModel.
         final CompositeLoopConfiguration loopConfig = new CompositeLoopConfiguration()
                 .setStopOnEndRun(configurationModel.getDisconnectOnEndRun())
                 .setStopOnErrors(configurationModel.getDisconnectOnError())
@@ -547,6 +548,7 @@
         this.logger.config("data source path is " + configurationModel.getDataSourcePath());
         this.logger.config("data source type is " + configurationModel.getDataSourceType());
 
+        // Set the max events.
         if (configurationModel.hasValidProperty(ConfigurationModel.MAX_EVENTS_PROPERTY)) {
             final long maxEvents = configurationModel.getMaxEvents();
             if (maxEvents > 0L) {
@@ -650,12 +652,12 @@
         // Kill session watchdog thread.
         killWatchdogThread();
 
-        // Wake up all ET stations to unblock the system and make sure secondary stations are detached.
+        // Wake up all ET stations to unblock the system and make sure stations are detached properly.
         if (usingEtServer()) {
             wakeUpEtStations();
         }
 
-        // Stop the event processing now that ET system is unblocked.
+        // Stop the event processing now that ET system should be unblocked.
         this.logger.fine("sending STOP command to loop ...");
         this.sessionState.loop.execute(Command.STOP);
         this.logger.fine("loop got command STOP");

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java	Mon Apr 13 13:17:35 2015
@@ -33,7 +33,6 @@
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
-// FIXME: Combo boxes should use explicit types.
 @SuppressWarnings("serial")
 final class JobSettingsPanel extends AbstractFieldsPanel {
 
@@ -76,6 +75,8 @@
 
         /**
          * Handle {@link java.beans.PropertyChangeEvent} by updating the GUI from changes to the model.
+         *
+         * @param evt the {@link java.beans.PropertyChangeEvent} to handle
          */
         @Override
         public void propertyChange(final PropertyChangeEvent evt) {
@@ -140,9 +141,9 @@
     /**
      * The available LogLevel settings as an array of strings.
      */
-    static final String[] LOG_LEVELS = new String[] { Level.ALL.toString(), Level.FINEST.toString(),
+    static final String[] LOG_LEVELS = new String[] {Level.ALL.toString(), Level.FINEST.toString(),
             Level.FINER.toString(), Level.FINE.toString(), Level.CONFIG.toString(), Level.INFO.toString(),
-            Level.WARNING.toString(), Level.SEVERE.toString(), Level.OFF.toString() };
+            Level.WARNING.toString(), Level.SEVERE.toString(), Level.OFF.toString()};
 
     /**
      * The package where steering resources must be located.
@@ -264,8 +265,8 @@
         steeringFileButton.setActionCommand(Commands.CHOOSE_STEERING_FILE);
         steeringFileButton.addActionListener(this);
 
-        this.steeringTypeComboBox = this.addComboBox("Steering Type", new String[] { SteeringType.RESOURCE.name(),
-                SteeringType.FILE.name() });
+        this.steeringTypeComboBox = this.addComboBox("Steering Type", new String[] {SteeringType.RESOURCE.name(),
+                SteeringType.FILE.name()});
         this.steeringTypeComboBox.setActionCommand(Commands.STEERING_TYPE_CHANGED);
         this.steeringTypeComboBox.addActionListener(this);
 

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/LogPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/LogPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/LogPanel.java	Mon Apr 13 13:17:35 2015
@@ -18,6 +18,7 @@
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
+@SuppressWarnings("serial")
 final class LogPanel extends JPanel {
 
     /**

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java	Mon Apr 13 13:17:35 2015
@@ -250,11 +250,6 @@
             // Add window listener to perform clean shutdown.
             this.frame.addWindowListener(new WindowListener() {
 
-                /**
-                 * Not used.
-                 *
-                 * @param e
-                 */
                 @Override
                 public void windowActivated(final WindowEvent e) {
                 }
@@ -269,47 +264,22 @@
                     exit();
                 }
 
-                /**
-                 * Not used.
-                 *
-                 * @param e
-                 */
                 @Override
                 public void windowClosing(final WindowEvent e) {
                 }
 
-                /**
-                 * Not used.
-                 *
-                 * @param e
-                 */
                 @Override
                 public void windowDeactivated(final WindowEvent e) {
                 }
 
-                /**
-                 * Not used.
-                 *
-                 * @param e
-                 */
                 @Override
                 public void windowDeiconified(final WindowEvent e) {
                 }
 
-                /**
-                 * Not used.
-                 *
-                 * @param e
-                 */
                 @Override
                 public void windowIconified(final WindowEvent e) {
                 }
 
-                /**
-                 * Not used.
-                 *
-                 * @param e
-                 */
                 @Override
                 public void windowOpened(final WindowEvent e) {
                 }
@@ -414,7 +384,7 @@
     }
 
     /**
-     * Redirect <code>System.out</code> and <code>System.err</code> to file chosen by a file chooser.
+     * Redirect <code>System.out</code> and <code>System.err</code> to a file chosen by a file chooser.
      */
     private void chooseLogFile() {
         final JFileChooser fc = new JFileChooser();
@@ -556,8 +526,8 @@
     /**
      * This method sets the configuration on the model, which fires a change for every property.
      *
-     * @param configuration The new configuration.
-     * @param merge True to merge the configuration into the current one rather than replace it.
+     * @param configuration the new configuration
+     * @param merge <code>true</code> to merge the configuration into the current one rather than replace it
      */
     private void loadConfiguration(final Configuration configuration, final boolean merge) {
 
@@ -607,8 +577,8 @@
     /**
      * Redirect <code>System.out</code> and <code>System.err</code> to a file.
      *
-     * @param file The output log file.
-     * @throws FileNotFoundException if the file does not exist.
+     * @param file the output log file
+     * @throws FileNotFoundException if the file does not exist
      */
     private void logToFile(final File file) {
         try {
@@ -721,7 +691,7 @@
     /**
      * Handle property changes.
      *
-     * @param evt The property change event.
+     * @param evt the <code>PropertyChangeEvent</code> to handle
      */
     @Override
     public void propertyChange(final PropertyChangeEvent evt) {

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/PlotPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/PlotPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/PlotPanel.java	Mon Apr 13 13:17:35 2015
@@ -103,7 +103,7 @@
 
     /**
      * Save the plotter from a tab to a graphics file.
-     * 
+     *
      * @param plotter the plotter to save
      */
     private void savePlotter(final IPlotter plotter) {

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SettingsDialog.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SettingsDialog.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SettingsDialog.java	Mon Apr 13 13:17:35 2015
@@ -9,7 +9,9 @@
 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.
+ * The modal dialog for entering application settings.
+ * <p>
+ * It contains a <code>JPanel</code> with the different settings sub-tabs.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusEventsTable.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusEventsTable.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusEventsTable.java	Mon Apr 13 13:17:35 2015
@@ -1,6 +1,3 @@
-/**
- *
- */
 package org.hps.monitoring.application;
 
 import java.awt.Component;
@@ -127,18 +124,18 @@
         public Object getValueAt(final int rowIndex, final int columnIndex) {
             final SystemStatus status = this.statuses.get(rowIndex);
             switch (columnIndex) {
-                case 0:
-                    return new Date(status.getLastChangedMillis());
-                case 1:
-                    return status.getSubsystem();
-                case 2:
-                    return status.getStatusCode();
-                case 3:
-                    return status.getDescription();
-                case 4:
-                    return status.getMessage();
-                default:
-                    return null;
+            case 0:
+                return new Date(status.getLastChangedMillis());
+            case 1:
+                return status.getSubsystem();
+            case 2:
+                return status.getStatusCode();
+            case 3:
+                return status.getDescription();
+            case 4:
+                return status.getMessage();
+            default:
+                return null;
             }
         }
 

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java	Mon Apr 13 13:17:35 2015
@@ -14,10 +14,11 @@
 
 /**
  * This is a panel showing the two tables for viewing the system statuses, one showing the current state of all system
- * status monitors and the other all system status change events.
+ * status monitors and the other with all system status change events.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
+@SuppressWarnings("serial")
 final class SystemStatusPanel extends JPanel {
 
     /**

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusTable.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusTable.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusTable.java	Mon Apr 13 13:17:35 2015
@@ -24,7 +24,7 @@
 final class SystemStatusTable extends JTable {
 
     /**
-     * Renders a button if the status is clearable.
+     * Renders a button if the status is clear-able.
      */
     private class ButtonRenderer extends JButton implements TableCellRenderer {
 
@@ -51,7 +51,7 @@
         public Component getTableCellRendererComponent(final JTable table, final Object value,
                 final boolean isSelected, final boolean hasFocus, final int rowIndex, final int columnIndex) {
             final boolean clearable = (Boolean) table.getModel().getValueAt(rowIndex,
-                    SystemStatusTableModel.CLEARABLE_COL);
+                    SystemStatusTableModel.CLEARABLE_COLUMN_INDEX);
             if (clearable) {
                 return this;
             } else {
@@ -106,51 +106,52 @@
         this.setModel(new SystemStatusTableModel());
 
         // Rendering of system status cells using different background colors.
-        this.getColumnModel().getColumn(SystemStatusTableModel.STATUS_COL)
-        .setCellRenderer(new DefaultTableCellRenderer() {
+        this.getColumnModel().getColumn(SystemStatusTableModel.STATUS_COLUMN_INDEX)
+                .setCellRenderer(new DefaultTableCellRenderer() {
 
-            @Override
-            public Component getTableCellRendererComponent(final JTable table, final Object value,
-                    final boolean isSelected, final boolean hasFocus, final int row, final int col) {
+                    @Override
+                    public Component getTableCellRendererComponent(final JTable table, final Object value,
+                            final boolean isSelected, final boolean hasFocus, final int row, final int col) {
 
-                // Cells are by default rendered as a JLabel.
-                final JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected,
-                        hasFocus, row, col);
+                        // Cells are by default rendered as a JLabel.
+                        final JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected,
+                                hasFocus, row, col);
 
-                // Color code the cell by its status.
-                final StatusCode statusCode = StatusCode.valueOf((String) value);
-                label.setBackground(statusCode.getColor());
-                return label;
-            }
-        });
+                        // Color code the cell by its status.
+                        final StatusCode statusCode = StatusCode.valueOf((String) value);
+                        label.setBackground(statusCode.getColor());
+                        return label;
+                    }
+                });
 
         // Date formatting for last changed.
-        this.getColumnModel().getColumn(SystemStatusTableModel.LAST_CHANGED_COL)
-        .setCellRenderer(new DefaultTableCellRenderer() {
+        this.getColumnModel().getColumn(SystemStatusTableModel.LAST_CHANGED_COLUMN_INDEX)
+                .setCellRenderer(new DefaultTableCellRenderer() {
 
-            final SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM-dd-yyyy HH:mm:ss.SSS");
+                    final SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM-dd-yyyy HH:mm:ss.SSS");
 
-            @Override
-            public Component getTableCellRendererComponent(final JTable table, Object value,
-                    final boolean isSelected, final boolean hasFocus, final int row, final int column) {
-                if (value instanceof Date) {
-                    value = this.dateFormat.format(value);
-                }
-                return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
-            }
-        });
+                    @Override
+                    public Component getTableCellRendererComponent(final JTable table, Object value,
+                            final boolean isSelected, final boolean hasFocus, final int row, final int column) {
+                        if (value instanceof Date) {
+                            value = this.dateFormat.format(value);
+                        }
+                        return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+                    }
+                });
 
         // Button for clearing system statuses.
-        this.getColumnModel().getColumn(SystemStatusTableModel.RESET_COL).setCellRenderer(new ButtonRenderer("Clear"));
+        this.getColumnModel().getColumn(SystemStatusTableModel.RESET_COLUMN_INDEX)
+                .setCellRenderer(new ButtonRenderer("Clear"));
         this.addMouseListener(new JTableButtonMouseListener(this));
         this.getColumn("Clearable").setWidth(0);
         this.getColumn("Clearable").setMinWidth(0);
         this.getColumn("Clearable").setMaxWidth(0);
 
         // Column widths.
-        this.getColumnModel().getColumn(SystemStatusTableModel.ACTIVE_COL).setPreferredWidth(8);
-        this.getColumnModel().getColumn(SystemStatusTableModel.STATUS_COL).setPreferredWidth(10);
-        this.getColumnModel().getColumn(SystemStatusTableModel.SYSTEM_COL).setPreferredWidth(10);
+        this.getColumnModel().getColumn(SystemStatusTableModel.ACTIVE_COLUMN_INDEX).setPreferredWidth(8);
+        this.getColumnModel().getColumn(SystemStatusTableModel.STATUS_COLUMN_INDEX).setPreferredWidth(10);
+        this.getColumnModel().getColumn(SystemStatusTableModel.SYSTEM_COLUMN_INDEX).setPreferredWidth(10);
         // TODO: Add default width setting for every column.
 
         this.setAutoCreateRowSorter(true);
@@ -158,10 +159,10 @@
 
     /**
      * Get the tqble model.
-     * 
+     *
      * @return the table model
      */
     public SystemStatusTableModel getTableModel() {
         return (SystemStatusTableModel) this.getModel();
     }
-}
+}

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ToolbarPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ToolbarPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/ToolbarPanel.java	Mon Apr 13 13:17:35 2015
@@ -16,6 +16,7 @@
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
+@SuppressWarnings("serial")
 final class ToolbarPanel extends JPanel {
 
     /**
@@ -79,7 +80,7 @@
 
     /**
      * Get the combo box with the data sources
-     * 
+     *
      * @return the combo box with the data sources
      */
     DataSourceComboBox getDataSourceComboBox() {

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/TriggerDiagnosticsPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/TriggerDiagnosticsPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/TriggerDiagnosticsPanel.java	Mon Apr 13 13:17:35 2015
@@ -76,7 +76,7 @@
     private final PairTablePanel pairsPanel = new PairTablePanel();
 
     /**
-     * The panel for singles statistics.
+     * The panel with singles statistics.
      */
     private final SinglesTablePanel singlesPanel = new SinglesTablePanel();
 

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/AbstractModel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/AbstractModel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/AbstractModel.java	Mon Apr 13 13:17:35 2015
@@ -21,10 +21,10 @@
 public abstract class AbstractModel {
 
     /**
-     * This method will statically extract property names from a class, which in this package's conventions are
-     * statically declared, public strings that end with "_PROPERTY".
+     * This method will extract property names from a class, which in this package's conventions are statically
+     * declared, public strings that end with the sub-string "_PROPERTY".
      *
-     * @param type the class with the properties
+     * @param type the class with the properties settings
      * @return the list of property names
      */
     protected static String[] getPropertyNames(final Class<? extends AbstractModel> type) {

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java	Mon Apr 13 13:17:35 2015
@@ -273,7 +273,7 @@
     }
 
     /**
-     * Get the ET chunk size
+     * Get the ET chunk size, which is the number of events that will be retrieved at once from the server.
      *
      * @return the ET chunk size
      */
@@ -656,11 +656,11 @@
     /**
      * Set the name of the AIDA server.
      *
-     * @param AIDAServerName the name of the AIDA server
-     */
-    public void setAIDAServerName(final String AIDAServerName) {
+     * @param aidaServerName the name of the AIDA server
+     */
+    public void setAIDAServerName(final String aidaServerName) {
         final String oldValue = this.getAIDAServerName();
-        this.configuration.set(AIDA_SERVER_NAME_PROPERTY, AIDAServerName);
+        this.configuration.set(AIDA_SERVER_NAME_PROPERTY, aidaServerName);
         this.firePropertyChange(AIDA_SERVER_NAME_PROPERTY, oldValue, this.getAIDAServerName());
     }
 
@@ -719,10 +719,9 @@
     }
 
     /**
-     * Set the data source type
-     *
-     * @see
-     * @param dataSourceType
+     * Set the data source type (EVIO, LCIO or ET).
+     *
+     * @param dataSourceType the data source type
      */
     public void setDataSourceType(final DataSourceType dataSourceType) {
         final DataSourceType oldValue = this.getDataSourceType();
@@ -747,11 +746,13 @@
     /**
      * Set the detector to load from the detector model resources in the jar.
      * <p>
-     * These are present in the jar accordin to the LCSim convension like:
+     * These are present in the jar according to the LCSim convention:
      *
      * <pre>
      * ${DETECTOR_NAME}/detector.properties
      * </pre>
+     * <p>
+     * where <code>detector.properties</code> has the name of the detector matching the directory name.
      *
      * @param detectorName the name of the detector name
      */
@@ -773,7 +774,7 @@
     }
 
     /**
-     * Set to <code>true<code> to disconnect if event processing errors occur
+     * Set to <code>true<code> to disconnect if event processing errors occur.
      *
      * @param disconnectOnError set to <code>true</code> to disconnect if event processing errors occur
      */
@@ -801,7 +802,7 @@
      * Set the fully qualified class name of the {@link org.hps.record.LCSimEventBuilder} that should be used to build
      * LCIO events from EVIO.
      *
-     * @param eventBuilderClassName
+     * @param eventBuilderClassName the fully qualified class name of the event builder
      */
     public void setEventBuilderClassName(final String eventBuilderClassName) {
         final String oldValue = this.getEventBuilderClassName();
@@ -810,8 +811,8 @@
     }
 
     /**
-     * Set to <code>true</code> to freeze the conditions system after initialization if there is a valid detector name
-     * and run number setting
+     * Set to <code>true</code> to freeze the conditions system after initialization if there is also a valid detector
+     * name and run number setting.
      *
      * @param freezeConditions <code>true</code> to freeze the conditions
      */
@@ -880,8 +881,9 @@
     }
 
     /**
-     *
-     * @param maxEvents
+     * Set the maximum number of events to process before the session will automatically end.
+     *
+     * @param maxEvents the maximum number of events
      */
     public void setMaxEvents(final Long maxEvents) {
         final Long oldValue = this.getMaxEvents();
@@ -889,30 +891,57 @@
         this.firePropertyChange(MAX_EVENTS_PROPERTY, oldValue, this.getMaxEvents());
     }
 
+    /**
+     * Set the TCP/IP port number of the ET server for the client connection.
+     *
+     * @param port the ET port number
+     */
     public void setPort(final Integer port) {
         final Integer oldValue = this.getPort();
         this.configuration.set(PORT_PROPERTY, port);
         this.firePropertyChange(PORT_PROPERTY, oldValue, this.getPort());
     }
 
+    /**
+     * Set a prescale value for the ET station which will decrease the event rate.
+     * <p>
+     * A prescale of 2 would mean every 2nd event is processed, etc.
+     *
+     * @param prescale the ET station prescale value
+     */
     public void setPrescale(final Integer prescale) {
         final Integer oldValue = this.getPrescale();
         this.configuration.set(PRESCALE_PROPERTY, prescale);
         this.firePropertyChange(PRESCALE_PROPERTY, oldValue, this.getPrescale());
     }
 
+    /**
+     * Set the processing stage which determines which event processing stages are executed.
+     *
+     * @param processingStage the processing stage to execute
+     */
     public void setProcessingStage(final ProcessingStage processingStage) {
         final ProcessingStage oldValue = this.getProcessingStage();
         this.configuration.set(PROCESSING_STAGE_PROPERTY, processingStage);
         this.firePropertyChange(PROCESSING_STAGE_PROPERTY, oldValue, this.getProcessingStage());
     }
 
+    /**
+     * Set the ET queue size.
+     *
+     * @param queueSize the ET queue size
+     */
     public void setQueueSize(final Integer queueSize) {
         final Integer oldValue = this.getQueueSize();
         this.configuration.set(QUEUE_SIZE_PROPERTY, queueSize);
         this.firePropertyChange(QUEUE_SIZE_PROPERTY, oldValue, this.getQueueSize());
     }
 
+    /**
+     * Set the recent files list, which is a list of "\n" delimited file paths.
+     *
+     * @param recentFiles the recent files list as a string
+     */
     public void setRecentFiles(final String recentFiles) {
         String oldValue = null;
         if (this.configuration.checkKey(RECENT_FILES_PROPERTY)) {
@@ -922,6 +951,13 @@
         this.firePropertyChange(RECENT_FILES_PROPERTY, oldValue, this.configuration.get(RECENT_FILES_PROPERTY));
     }
 
+    /**
+     * Set the recent files list.
+     * <p>
+     * This method is not part of the public API and is only used internally.
+     *
+     * @param recentFilesList the recent files list
+     */
     private void setRecentFilesList(final List<String> recentFilesList) {
         final StringBuffer sb = new StringBuffer();
         for (final String recentFile : recentFilesList) {
@@ -931,36 +967,70 @@
         this.configuration.set(RECENT_FILES_PROPERTY, sb.toString());
     }
 
+    /**
+     * Set the ET station name.
+     *
+     * @param stationName the ET station name
+     */
     public void setStationName(final String stationName) {
         final String oldValue = this.getStationName();
         this.configuration.set(STATION_NAME_PROPERTY, stationName);
         this.firePropertyChange(STATION_NAME_PROPERTY, oldValue, this.getStationName());
     }
 
+    /**
+     * Set the ET station position.
+     *
+     * @param stationPosition the ET station position
+     */
     public void setStationPosition(final Integer stationPosition) {
         final Integer oldValue = this.getStationPosition();
         this.configuration.set(STATION_POSITION_PROPERTY, stationPosition);
         this.firePropertyChange(STATION_POSITION_PROPERTY, oldValue, this.getStationPosition());
     }
 
+    /**
+     * Set the steering file path.
+     *
+     * @param steeringFile the steering file path
+     */
     public void setSteeringFile(final String steeringFile) {
         final String oldValue = this.getSteeringFile();
         this.configuration.set(STEERING_FILE_PROPERTY, steeringFile);
         this.firePropertyChange(STEERING_FILE_PROPERTY, oldValue, this.getSteeringFile());
     }
 
+    /**
+     * Set the steering file resource.
+     *
+     * @param steeringResource the steering file resource
+     */
     public void setSteeringResource(final String steeringResource) {
         final String oldValue = this.getSteeringResource();
         this.configuration.set(STEERING_RESOURCE_PROPERTY, steeringResource);
         this.firePropertyChange(STEERING_RESOURCE_PROPERTY, oldValue, steeringResource);
     }
 
+    /**
+     * Set the steering type (file or resource).
+     *
+     * @param steeringType the steering type
+     * @see SteeringType
+     */
     public void setSteeringType(final SteeringType steeringType) {
         final SteeringType oldValue = this.getSteeringType();
         this.configuration.set(STEERING_TYPE_PROPERTY, steeringType.name());
         this.firePropertyChange(STEERING_TYPE_PROPERTY, oldValue, this.getSteeringType());
     }
 
+    /**
+     * Set a user run number which will be used to initialize the conditions system.
+     * <p>
+     * This should most likely be used with {@link #setFreezeConditions(Boolean)} or it is likely to be later overridden
+     * by run numbers from the data.
+     *
+     * @param userRunNumber the user run number
+     */
     public void setUserRunNumber(final Integer userRunNumber) {
         Integer oldValue = null;
         if (this.hasPropertyKey(USER_RUN_NUMBER_PROPERTY)) {
@@ -970,18 +1040,33 @@
         this.firePropertyChange(USER_RUN_NUMBER_PROPERTY, oldValue, this.getUserRunNumber());
     }
 
+    /**
+     * Set verbose mode for the ET system.
+     *
+     * @param verbose the ET verbose flag
+     */
     public void setVerbose(final Boolean verbose) {
         final Boolean oldValue = this.getVerbose();
         this.configuration.set(VERBOSE_PROPERTY, verbose);
         this.firePropertyChange(VERBOSE_PROPERTY, oldValue, this.getVerbose());
     }
 
+    /**
+     * Set the ET wait mode (timed, asynchronous or wait).
+     *
+     * @param waitMode the ET wait mode
+     */
     public void setWaitMode(final Mode waitMode) {
         final Mode oldValue = this.getWaitMode();
         this.configuration.set(WAIT_MODE_PROPERTY, waitMode.name());
         this.firePropertyChange(WAIT_MODE_PROPERTY, oldValue, this.getWaitMode());
     }
 
+    /**
+     * Set the ET wait time, which is ignored if wait mode is not timed.
+     *
+     * @param waitTime the ET wait time
+     */
     public void setWaitTime(final Integer waitTime) {
         final Integer oldValue = this.getWaitTime();
         this.configuration.set(WAIT_TIME_PROPERTY, waitTime);

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatus.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatus.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatus.java	Mon Apr 13 13:17:35 2015
@@ -10,14 +10,38 @@
  */
 public enum ConnectionStatus {
 
-    CONNECTED(Color.GREEN), DISCONNECTED(Color.RED), DISCONNECTING(Color.YELLOW);
+    /**
+     * This is the state when the session is connected to event processing.
+     */
+    CONNECTED(Color.GREEN),
+    /**
+     * This is the disconnected state when event processing is not occurring.
+     */
+    DISCONNECTED(Color.RED),
+    /**
+     * This is the state when the session is being torn down.
+     */
+    DISCONNECTING(Color.YELLOW);
 
-    Color color;
+    /**
+     * The color that should be displayed in the GUI component for this state.
+     */
+    private Color color;
 
-    ConnectionStatus(final Color color) {
+    /**
+     * Class constructor.
+     *
+     * @param color the color to display for this state
+     */
+    private ConnectionStatus(final Color color) {
         this.color = color;
     }
 
+    /**
+     * Get the color to display for this state.
+     *
+     * @return the color to display for this state
+     */
     public Color getColor() {
         return this.color;
     }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatusModel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatusModel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConnectionStatusModel.java	Mon Apr 13 13:17:35 2015
@@ -5,45 +5,97 @@
 
 /**
  * This model updates listeners when the connection status changes from disconnected to connected or vice versa. It will
- * also notify when the event processing is paused.
+ * also notify listeners when the event processing has been paused.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 public final class ConnectionStatusModel extends AbstractModel {
 
+    /**
+     * The connection status property.
+     */
     public static final String CONNECTION_STATUS_PROPERTY = "ConnectionStatus";
+
+    /**
+     * The paused property.
+     */
     public static final String PAUSED_PROPERTY = "Paused";
 
-    static final String[] propertyNames = new String[] {CONNECTION_STATUS_PROPERTY, PAUSED_PROPERTY};
+    /**
+     * The property names of this class.
+     */
+    private static final String[] PROPERTY_NAMES = new String[] {CONNECTION_STATUS_PROPERTY, PAUSED_PROPERTY};
 
-    ConnectionStatus connectionStatus = ConnectionStatus.DISCONNECTED;
-    boolean paused = false;
+    /**
+     * The current connection status.
+     */
+    private ConnectionStatus connectionStatus = ConnectionStatus.DISCONNECTED;
 
+    /**
+     * Flag which is <code>true</code> when event processing is in the paused state.
+     */
+    private boolean paused = false;
+
+    /**
+     * Get the current connection status.
+     *
+     * @return the current connection status
+     */
     public ConnectionStatus getConnectionStatus() {
         return this.connectionStatus;
     }
 
+    /**
+     * Return <code>true</code> if the event processing is currently paused.
+     *
+     * @return <code>true</code> if event processing is currently paused
+     */
     public boolean getPaused() {
         return this.paused;
     }
 
+    /**
+     * Get the property names for this class.
+     *
+     * @return the property names for this class
+     */
     @Override
     public String[] getPropertyNames() {
-        return propertyNames;
+        return PROPERTY_NAMES;
     }
 
+    /**
+     * Return <code>true</code> if the status is <code>CONNECTED</code>.
+     *
+     * @return <code>true</code> if status is <code>CONNECTED</code>
+     */
     public boolean isConnected() {
         return this.connectionStatus == ConnectionStatus.CONNECTED;
     }
 
+    /**
+     * Return <code>true</code> if the status is <code>DISCONNECTED</code>.
+     *
+     * @return <code>true</code> if the status is <code>DISCONNECTED</code>
+     */
     public boolean isDisconnected() {
         return this.connectionStatus == ConnectionStatus.DISCONNECTED;
     }
 
+    /**
+     * Return <code>true</code> if the status is <code>DISCONNECTING</code>.
+     *
+     * @return <code>true</code> if the status is <code>DISCONNECTING</code>
+     */
     public boolean isDisconnecting() {
         return this.connectionStatus == ConnectionStatus.DISCONNECTING;
     }
 
+    /**
+     * Set the connection status.
+     *
+     * @param connectionStatus the new connection status
+     */
     public void setConnectionStatus(final ConnectionStatus connectionStatus) {
         final ConnectionStatus oldValue = connectionStatus;
         this.connectionStatus = connectionStatus;
@@ -53,6 +105,11 @@
         }
     }
 
+    /**
+     * Set to <code>true</code> if status is paused.
+     *
+     * @param paused <code>true</code> if status is paused
+     */
     public void setPaused(final boolean paused) {
         final boolean oldValue = this.paused;
         this.paused = paused;

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/HasConfigurationModel.java	Mon Apr 13 13:17:35 2015
@@ -8,16 +8,16 @@
 public interface HasConfigurationModel {
 
     /**
-     * Get the current ConfigurationModel of the object.
+     * Get the current {@link ConfigurationModel} of the object.
      *
-     * @return The ConfigurationModel.
+     * @return the associated {@link ConfigurationModel}
      */
     ConfigurationModel getConfigurationModel();
 
     /**
-     * Set the ConfigurationModel of the object.
+     * Set the {@link ConfigurationModel} of the object.
      *
-     * @param configurationModel The ConfigurationModel.
+     * @param configurationModel the new {@link ConfigurationModel}
      */
     void setConfigurationModel(ConfigurationModel configurationModel);
 }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/RunModel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/RunModel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/RunModel.java	Mon Apr 13 13:17:35 2015
@@ -9,36 +9,133 @@
  */
 public final class RunModel extends AbstractModel {
 
-    public final static String DATA_RATE_PROPERTY = "DataRate"; // data rate in megabytes per second
-    public final static String DATA_RECEIVED_PROPERTY = "DataReceived"; // updated on the fly, in bytes
-    public final static String ELAPSED_TIME_PROPERTY = "ElapsedTime"; // updated on the fly, in seconds
-    public final static String END_DATE_PROPERTY = "EndDate";
-    public final static String EVENT_NUMBER_PROPERTY = "EventNumber"; // current event number
-    public final static String EVENT_RATE_PROPERTY = "EventRate"; // event rate per second
-    public final static String EVENTS_RECEIVED_PROPERTY = "EventsReceived"; // events received so far
-    public final static String RUN_LENGTH_PROPERTY = "RunLength"; // set at end, in seconds
-    public final static String RUN_NUMBER_PROPERTY = "RunNumber";
-    static final String[] RUN_PROPERTIES = AbstractModel.getPropertyNames(RunModel.class);
-    public final static String START_DATE_PROPERTY = "StartDate";
-
-    public final static String TOTAL_EVENTS_PROPERTY = "TotalEvents"; // only set at end
-
-    Double dataRate;
-    Double dataReceived;
-    Integer elapsedTime;
-    Date endDate;
-    Integer eventNumber;
-    Double eventRate;
-    Integer eventsReceived;
-    Integer runLength;
-    Integer runNumber;
-    Date startDate;
-    Integer totalEvents;
-
+    /**
+     * The data rate in megabytes per second.
+     */
+    public static final String DATA_RATE_PROPERTY = "DataRate";
+
+    /**
+     * The amount of data received in bytes since the last timer tick.
+     */
+    public static final String DATA_RECEIVED_PROPERTY = "DataReceived";
+
+    /**
+     * The total elapsed time in the session.
+     */
+    public static final String ELAPSED_TIME_PROPERTY = "ElapsedTime";
+
+    /**
+     * The end date of the run which comes from the EVIO END record.
+     */
+    public static final String END_DATE_PROPERTY = "EndDate";
+
+    /**
+     * The event number currently being processed which usually comes from the EVIO or LCIO records.
+     */
+    public static final String EVENT_NUMBER_PROPERTY = "EventNumber";
+
+    /**
+     * The event rate in Hertz.
+     */
+    public static final String EVENT_RATE_PROPERTY = "EventRate";
+
+    /**
+     * The total number of events received in the session.
+     */
+    public static final String EVENTS_RECEIVED_PROPERTY = "EventsReceived";
+
+    /**
+     * The total length of the run which is set from the EVIO END record.
+     */
+    public static final String RUN_LENGTH_PROPERTY = "RunLength";
+
+    /**
+     * The run number which comes from the EVIO control data.
+     */
+    public static final String RUN_NUMBER_PROPERTY = "RunNumber";
+
+    /**
+     * The properties of this model.
+     */
+    private static final String[] RUN_PROPERTIES = AbstractModel.getPropertyNames(RunModel.class);
+
+    /**
+     * The start date of the run which comes from the EVIO PRESTART event.
+     */
+    public static final String START_DATE_PROPERTY = "StartDate";
+
+    /**
+     * The total events in the run which comes from the EVIO END event.
+     */
+    public static final String TOTAL_EVENTS_PROPERTY = "TotalEvents";
+
+    /**
+     * The data rate in MB/s.
+     */
+    private Double dataRate;
+
+    /**
+     * The data received in bytes.
+     */
+    private Double dataReceived;
+
+    /**
+     * The elapsed time in seconds.
+     */
+    private Integer elapsedTime;
+
+    /**
+     * The end date of the run.
+     */
+    private Date endDate;
+
+    /**
+     * The current event number.
+     */
+    private Integer eventNumber;
+
+    /**
+     * The event rate in Hertz.
+     */
+    private Double eventRate;
+
+    /**
+     * The number of events received.
+     */
+    private Integer eventsReceived;
+
+    /**
+     * The length of the run.
+     */
+    private Integer runLength;
+
+    /**
+     * The run number.
+     */
+    private Integer runNumber;
+
+    /**
+     * The run start date.
+     */
+    private Date startDate;
+
+    /**
+     * The total events received in the run.
+     */
+    private Integer totalEvents;
+
+    /**
+     * Add data received in bytes.
+     *
+     * @param addDataReceived the amount of data received in bytes
+     */
     public void addDataReceived(final double addDataReceived) {
         this.setDataReceived(this.dataReceived + addDataReceived);
     }
 
+    /**
+     * Compute the run length from the start and end date and set its value in the GUI.
+     */
     public void computeRunLength() {
         if (this.startDate != null && this.endDate != null) {
             final long elapsedMillis = this.endDate.getTime() - this.startDate.getTime();
@@ -47,55 +144,118 @@
         }
     }
 
+    /**
+     * Get the data rate in MB/s.
+     *
+     * @return the data rate in MB/s
+     */
     public double getDataRate() {
         return this.dataRate;
     }
 
+    /**
+     * Get the data received in bytes.
+     *
+     * @return the data received in bytes
+     */
     public double getDataReceived() {
         return this.dataReceived;
     }
 
+    /**
+     * Get the elapsed time in seconds.
+     *
+     * @return the elapsed time in seconds
+     */
     public int getElapsedTime() {
         return this.elapsedTime;
     }
 
+    /**
+     * Get the run end date.
+     *
+     * @return the run end date
+     */
     public Date getEndDate() {
         return this.endDate;
     }
 
+    /**
+     * Get the current event number.
+     *
+     * @return the current event number
+     */
     public int getEventNumber() {
         return this.eventNumber;
     }
 
+    /**
+     * Get the event rate in Hertz.
+     *
+     * @return the event rate in Hertz
+     */
     public double getEventRate() {
         return this.eventRate;
     }
 
+    /**
+     * Get the number of events received in the session.
+     *
+     * @return the number of events received
+     */
     public int getEventsReceived() {
         return this.eventsReceived;
     }
 
+    /**
+     * Get the property names for this model.
+     *
+     * @return the property names for this model
+     */
     @Override
     public String[] getPropertyNames() {
         return RUN_PROPERTIES;
     }
 
+    /**
+     * Get the run length in seconds.
+     *
+     * @return the run length in seconds
+     */
     public int getRunLength() {
         return this.runLength;
     }
 
+    /**
+     * Get the run number.
+     *
+     * @return the run number
+     */
     public int getRunNumber() {
         return this.runNumber;
     }
 
+    /**
+     * Get the start date.
+     *
+     * @return the start date
+     */
     public Date getStartDate() {
         return this.startDate;
     }
 
+    /**
+     * Get the total events in the run.
+     *
+     * @return the total events in the run
+     */
     public int getTotalEvents() {
         return this.totalEvents;
     }
 
+    /**
+     * Reset the model for new run.
+     */
     public void reset() {
         setDataReceived(0);
         setElapsedTime(0);
@@ -107,69 +267,124 @@
         setTotalEvents(0);
     }
 
+    /**
+     * Set the data rate in MB/s.
+     *
+     * @param dataRate the data rate in MB/s
+     */
     public void setDataRate(final double dataRate) {
         final Double oldValue = this.dataRate;
         this.dataRate = dataRate;
         this.firePropertyChange(DATA_RATE_PROPERTY, oldValue, this.dataRate);
     }
 
+    /**
+     * Set the data received in bytes.
+     *
+     * @param dataReceived the data received in bytes
+     */
     public void setDataReceived(final double dataReceived) {
         final Double oldValue = this.dataReceived;
         this.dataReceived = dataReceived;
         this.firePropertyChange(DATA_RECEIVED_PROPERTY, oldValue, this.dataReceived);
     }
 
+    /**
+     * Set the elapsed time in seconds.
+     *
+     * @param elapsedTime the elapsed time in seconds
+     */
     public void setElapsedTime(final int elapsedTime) {
         final Integer oldValue = this.elapsedTime;
         this.elapsedTime = elapsedTime;
         this.firePropertyChange(ELAPSED_TIME_PROPERTY, oldValue, this.elapsedTime);
     }
 
+    /**
+     * Set the run end date.
+     *
+     * @param endDate the run end date
+     */
     public void setEndDate(final Date endDate) {
         final Date oldValue = this.endDate;
         this.endDate = endDate;
         this.firePropertyChange(END_DATE_PROPERTY, oldValue, this.endDate);
     }
 
+    /**
+     * Set the current event number.
+     *
+     * @param eventNumber the current event number
+     */
     public void setEventNumber(final int eventNumber) {
         final Integer oldValue = this.eventNumber;
         this.eventNumber = eventNumber;
         this.firePropertyChange(EVENT_NUMBER_PROPERTY, oldValue, this.eventNumber);
     }
 
+    /**
+     * Set the event rate in Hertz.
+     *
+     * @param eventRate the event rate in Hertz
+     */
     public void setEventRate(final double eventRate) {
         final Double oldValue = this.eventRate;
         this.eventRate = eventRate;
         this.firePropertyChange(EVENT_RATE_PROPERTY, oldValue, this.eventRate);
     }
 
+    /**
+     * Set the number of events received.
+     *
+     * @param eventsReceived the number of events received
+     */
     public void setEventsReceived(final int eventsReceived) {
         final Integer oldValue = this.eventsReceived;
         this.eventsReceived = eventsReceived;
         this.firePropertyChange(EVENTS_RECEIVED_PROPERTY, oldValue, this.eventsReceived);
     }
 
+    /**
+     * Set the length of the run in seconds.
+     *
+     * @param runLength the length of the run in seconds
+     */
     public void setRunLength(final int runLength) {
         final Integer oldValue = this.runLength;
         this.runLength = runLength;
         this.firePropertyChange(RUN_LENGTH_PROPERTY, oldValue, this.runLength);
     }
 
+    /**
+     * Set the run number.
+     *
+     * @param runNumber the run number
+     */
     public void setRunNumber(final int runNumber) {
         final Integer oldValue = this.runNumber;
         this.runNumber = runNumber;
         this.firePropertyChange(RUN_NUMBER_PROPERTY, oldValue, this.runNumber);
     }
 
+    /**
+     * Set the start date.
+     *
+     * @param startDate the start date
+     */
     public void setStartDate(final Date startDate) {
         final Date oldValue = this.startDate;
         this.startDate = startDate;
         this.firePropertyChange(START_DATE_PROPERTY, oldValue, this.startDate);
     }
 
+    /**
+     * Set the total number of events in the run.
+     *
+     * @param totalEvents the total number of events in the run
+     */
     public void setTotalEvents(final int totalEvents) {
         final Integer oldValue = this.totalEvents;
         this.totalEvents = totalEvents;
         this.firePropertyChange(TOTAL_EVENTS_PROPERTY, oldValue, this.totalEvents);
     }
-}
+}

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SteeringType.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SteeringType.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SteeringType.java	Mon Apr 13 13:17:35 2015
@@ -6,5 +6,12 @@
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 public enum SteeringType {
-    FILE, RESOURCE;
+    /**
+     * Steering from local file on disk.
+     */
+    FILE,
+    /**
+     * Steering from resource in jar file.
+     */
+    RESOURCE;
 }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/SystemStatusTableModel.java	Mon Apr 13 13:17:35 2015
@@ -2,7 +2,6 @@
 
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -19,80 +18,152 @@
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
+@SuppressWarnings("serial")
 public final class SystemStatusTableModel extends AbstractTableModel implements SystemStatusListener {
 
-    public static final int ACTIVE_COL = 1;
-    public static final int CLEARABLE_COL = 7;
-    static final String[] columnNames = { "Reset", "Active", "Status", "System", "Description", "Message",
-        "Last Changed", "Clearable" };
-    public static final int DESCRIPTION_COL = 4;
-    public static final int LAST_CHANGED_COL = 6;
-    public static final int MESSAGE_COL = 5;
-    public static final int RESET_COL = 0;
-    public static final int STATUS_COL = 2;
-
-    public static final int SYSTEM_COL = 3;
-
-    final SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM-dd-yyyy HH:mm:ss.SSS");
-    List<SystemStatus> statuses = new ArrayList<SystemStatus>();
-
+    /**
+     * Active field column index.
+     */
+    public static final int ACTIVE_COLUMN_INDEX = 1;
+
+    /**
+     * Clearable field column index.
+     */
+    public static final int CLEARABLE_COLUMN_INDEX = 7;
+
+    /**
+     * The names of the columns.
+     */
+    private static final String[] COLUMN_NAMES = {"Reset", "Active", "Status", "System", "Description", "Message",
+            "Last Changed", "Clearable"};
+
+    /**
+     * Description column index.
+     */
+    public static final int DESCRIPTION_COLUMN_INDEX = 4;
+
+    /**
+     * Last changed field column index.
+     */
+    public static final int LAST_CHANGED_COLUMN_INDEX = 6;
+
+    /**
+     * Message field column index.
+     */
+    public static final int MESSAGE_COLUMN_INDEX = 5;
+
+    /**
+     * Reset field column index.
+     */
+    public static final int RESET_COLUMN_INDEX = 0;
+
+    /**
+     * Status field column index.
+     */
+    public static final int STATUS_COLUMN_INDEX = 2;
+
+    /**
+     * System field column index.
+     */
+    public static final int SYSTEM_COLUMN_INDEX = 3;
+
+    /**
+     * The list of system status objects that back the model.
+     */
+    private final List<SystemStatus> statuses = new ArrayList<SystemStatus>();
+
+    /**
+     * Add a system status to the model.
+     *
+     * @param status the system status to add to the model
+     */
     public void addSystemStatus(final SystemStatus status) {
         this.statuses.add(status);
         status.addListener(this);
         fireTableDataChanged();
     }
 
+    /**
+     * Clear all the data in the model.
+     */
     public void clear() {
         this.statuses.clear();
         fireTableDataChanged();
     }
 
-    @Override
-    public Class getColumnClass(final int column) {
-        switch (column) {
-        case ACTIVE_COL:
+    /**
+     * Get the class of the column.
+     *
+     * @param columnIndex the index of the column
+     */
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    @Override
+    public Class getColumnClass(final int columnIndex) {
+        switch (columnIndex) {
+        case ACTIVE_COLUMN_INDEX:
             return Boolean.class;
-        case LAST_CHANGED_COL:
+        case LAST_CHANGED_COLUMN_INDEX:
             return Date.class;
         default:
             return String.class;
         }
     }
 
+    /**
+     * Get the column count.
+     *
+     * @return the column count
+     */
     @Override
     public int getColumnCount() {
-        return columnNames.length;
-    }
-
-    @Override
-    public String getColumnName(final int col) {
-        return columnNames[col];
-    }
-
+        return COLUMN_NAMES.length;
+    }
+
+    /**
+     * Get the column name.
+     *
+     * @param columnIndex the column index
+     */
+    @Override
+    public String getColumnName(final int columnIndex) {
+        return COLUMN_NAMES[columnIndex];
+    }
+
+    /**
+     * Get the row count.
+     *
+     * @return the row count
+     */
     @Override
     public int getRowCount() {
         return this.statuses.size();
     }
 
+    /**
+     * Get a table cell value.
+     *
+     * @param rowIndex the row index
+     * @param columnIndex the column index
+     */
     @Override
     public Object getValueAt(final int rowIndex, final int columnIndex) {
         final SystemStatus status = this.statuses.get(rowIndex);
         switch (columnIndex) {
-        case ACTIVE_COL:
+        case ACTIVE_COLUMN_INDEX:
             return status.isActive();
-        case STATUS_COL:
+        case STATUS_COLUMN_INDEX:
             return status.getStatusCode().name();
-        case SYSTEM_COL:
+        case SYSTEM_COLUMN_INDEX:
             return status.getSubsystem().name();
-        case DESCRIPTION_COL:
+        case DESCRIPTION_COLUMN_INDEX:
             return status.getDescription();
-        case MESSAGE_COL:
+        case MESSAGE_COLUMN_INDEX:
             return status.getMessage();
-        case LAST_CHANGED_COL:
+        case LAST_CHANGED_COLUMN_INDEX:
             return new Date(status.getLastChangedMillis());
-        case RESET_COL:
-            // If the status is clearable, then it has a button that can be used to
-            // manually set the state to CLEARED. If the status is not clearable,
+        case RESET_COLUMN_INDEX:
+            // If the status is clear-able, then the cell has a button which can be used to
+            // manually set the state to CLEARED. If the status cannot be cleared,
             // then nothing is rendered in this cell.
             if (status.isClearable()) {
                 final JButton button = new JButton();
@@ -100,9 +171,6 @@
                     @Override
                     public void actionPerformed(final ActionEvent e) {
                         final SystemStatus status = SystemStatusTableModel.this.statuses.get(rowIndex);
-                        // Only clearable statuses can have this state set. Check for this
-                        // just to be safe, even though no button is available for non-clearable
-                        // statuses.
                         if (status.isClearable()) {
                             final StatusCode oldStatusCode = status.getStatusCode();
                             status.setStatus(StatusCode.CLEARED, "Cleared from " + oldStatusCode.name() + " state.");
@@ -113,29 +181,42 @@
             } else {
                 return null;
             }
-        case CLEARABLE_COL:
+        case CLEARABLE_COLUMN_INDEX:
             return status.isClearable();
         default:
             return null;
         }
     }
 
-    @Override
-    public boolean isCellEditable(final int row, final int col) {
-        if (col == ACTIVE_COL) {
-            return true;
-        } else {
-            return false;
+    /**
+     * Return <code>true</code> if cell is editable.
+     *
+     * @return <code>true</code> if cell is editable
+     */
+    @Override
+    public boolean isCellEditable(final int rowIndex, final int columnIndex) {
+        return columnIndex == ACTIVE_COLUMN_INDEX;
+    }
+
+    /**
+     * Set the table cell value.
+     *
+     * @param value the new value
+     * @param rowIndex the row index
+     * @param columnIndex the column index
+     */
+    @Override
+    public void setValueAt(final Object value, final int rowIndex, final int columnIndex) {
+        if (columnIndex == ACTIVE_COLUMN_INDEX) {
+            this.statuses.get(rowIndex).setActive((Boolean) value);
         }
     }
 
-    @Override
-    public void setValueAt(final Object value, final int row, final int col) {
-        if (col == ACTIVE_COL) {
-            this.statuses.get(row).setActive((Boolean) value);
-        }
-    }
-
+    /**
+     * Notify of system status changed.
+     *
+     * @param status the system status that changed
+     */
     @Override
     public void statusChanged(final SystemStatus status) {
         final int rowNumber = this.statuses.indexOf(status);

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/package-info.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/package-info.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/package-info.java	Mon Apr 13 13:17:35 2015
@@ -16,4 +16,5 @@
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
-package org.hps.monitoring.application;
+package org.hps.monitoring.application;
+

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/AIDAServer.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/AIDAServer.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/AIDAServer.java	Mon Apr 13 13:17:35 2015
@@ -14,25 +14,36 @@
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
-public class AIDAServer {
+public final class AIDAServer {
 
-    boolean connected = false;
-    String name;
-    RmiServerImpl server;
+    /**
+     * Connected flag.
+     */
+    private boolean connected = false;
+
+    /**
+     * The name of the server.
+     */
+    private String name;
+
+    /**
+     * The RMI server object.
+     */
+    private RmiServerImpl server;
 
     /**
      * Class constructor.
      *
-     * @param name The name of the AIDA server.
+     * @param name the name of the AIDA server
      */
     public AIDAServer(final String name) {
         this.name = name;
     }
 
     /**
-     * True if connected.
+     * Return <code>true</code> if connected.
      *
-     * @return True if connected to server.
+     * @return <code>true</code> if connected to server
      */
     public boolean connected() {
         return this.connected;
@@ -46,6 +57,11 @@
         this.connected = false;
     }
 
+    /**
+     * Get the server name as a string.
+     *
+     * @return the server name
+     */
     public String getName() {
         try {
             return InetAddress.getLocalHost().getCanonicalHostName() + this.server.getBindName() + ":"
@@ -68,7 +84,7 @@
     /**
      * Start the remote AIDA server.
      *
-     * @return True if server started successfully; false if an error occurred during initialization.
+     * @return <code>true</code> if server started successfully; false if an error occurred during initialization.
      */
     public boolean start() {
         final RemoteServer treeServer = new RemoteServer((IDevTree) AIDA.defaultInstance().tree());

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/DialogUtil.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/DialogUtil.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/DialogUtil.java	Mon Apr 13 13:17:35 2015
@@ -10,15 +10,19 @@
 import javax.swing.WindowConstants;
 
 /**
+ * This is a set of utility methods for creating Swing dialog windows.
+ *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 public final class DialogUtil {
 
     /**
-     * @param parent
-     * @param message
-     * @param title
-     * @return
+     * Show a confirmation dialog.
+     *
+     * @param parent the parent component
+     * @param message the message
+     * @param title the title of the dialog
+     * @return the result from the user's dialog selection
      */
     public static int showConfirmationDialog(final Component parent, final String title, final String message) {
         final Object[] options = { "Yes", "No", "Cancel" };
@@ -28,9 +32,11 @@
     }
 
     /**
-     * @param component
-     * @param error
-     * @param title
+     * Show an error dialog.
+     *
+     * @param component the parent component
+     * @param error the error message
+     * @param title the title of the dialog
      */
     public static void showErrorDialog(final Component component, final String title, final String message) {
         final Runnable runnable = new Runnable() {
@@ -43,9 +49,11 @@
     }
 
     /**
-     * @param component
-     * @param error
-     * @param title
+     * Show an error dialog with an associated thrown object.
+     *
+     * @param component the parent component
+     * @param error the <code>Throwable</code> error
+     * @param title the title of the dialog
      */
     public static void showErrorDialog(final Component component, final Throwable error, final String title) {
         final Runnable runnable = new Runnable() {
@@ -58,9 +66,11 @@
     }
 
     /**
-     * @param component
-     * @param title
-     * @param message
+     * Show an information dialog.
+     *
+     * @param component the parent component
+     * @param title the title of the dialog
+     * @param message the message
      */
     public static void showInfoDialog(final Component component, final String title, final String message) {
         final Runnable runnable = new Runnable() {
@@ -73,10 +83,12 @@
     }
 
     /**
-     * @param parentComponent
-     * @param title
-     * @param message
-     * @return
+     * Show a status dialog which will block GUI interaction.
+     *
+     * @param parentComponent the parent component
+     * @param title the title of the dialog
+     * @param message the message
+     * @return the dialog window component
      */
     public static JDialog showStatusDialog(final Component parentComponent, final String title, final String message) {
         final JOptionPane optionPane = new JOptionPane(message, JOptionPane.INFORMATION_MESSAGE,
@@ -101,4 +113,11 @@
         dialog.setVisible(true);
         return dialog;
     }
+
+    /**
+     * Do not allow class instantiation.
+     */
+    private DialogUtil() {
+        throw new UnsupportedOperationException("Do not instantiate this class.");
+    }
 }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ErrorHandler.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ErrorHandler.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ErrorHandler.java	Mon Apr 13 13:17:35 2015
@@ -8,10 +8,9 @@
 import javax.swing.SwingUtilities;
 
 /**
- * <p>
  * An error handling class which is able to do any of the following, depending on how the users wants to handle the
  * error.
- * </p>
+ * <p>
  * <ul>
  * <li>Print a message</li>
  * <li>Print the stack trace</li>
@@ -20,20 +19,36 @@
  * <li>Raise an exception</li>
  * <li>Exit the application</li>
  * </ul>
- * </p> It mostly uses the "builder" pattern so that the various handling methods can be easily chained, where
- * appropriate. Some methods are not available for chaining when it doesn't make sense. </p>
+ * <p>
+ * It mostly uses the "builder" pattern so that the various handling methods can be easily chained, where appropriate.
+ * Some methods are not available for chaining when it doesn't make sense.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 public final class ErrorHandler {
 
-    Component component;
-    Throwable error;
-    Logger logger;
-    String message;
+    /**
+     * The component used for showing dialog windows.
+     */
+    private final Component component;
 
     /**
-     * Constructor.
+     * The thrown error.
+     */
+    private Throwable error;
+
+    /**
+     * A logger for reporting error messages.
+     */
+    private final Logger logger;
+
+    /**
+     * The error message.
+     */
+    private String message;
+
+    /**
+     * Class constructor.
      *
      * @param component The GUI component to which this object is assigned.
      * @param logger The logger to which messages will be written.
@@ -44,7 +59,9 @@
     }
 
     /**
-     * Exit the application. This is not chainable for obvious reasons.
+     * Exit the application.
+     * <p>
+     * This is not a chain-able method for obvious reasons.
      */
     public void exit() {
         System.err.println("Fatal error.  Application will exit.");
@@ -54,7 +71,7 @@
     /**
      * Log the error message to the <code>Logger</code>.
      *
-     * @return This object.
+     * @return this object
      */
     public ErrorHandler log() {
         this.logger.log(Level.SEVERE, this.message, this.error);
@@ -74,7 +91,7 @@
     /**
      * Print the full stack trace of the error to System.err.
      *
-     * @return This object.
+     * @return this object
      */
     public ErrorHandler printStackTrace() {
         this.error.printStackTrace();
@@ -82,18 +99,21 @@
     }
 
     /**
-     * Rethrow the error as a <code>RuntimeException</code>. Additional methods cannot be chained to this as they would
-     * not be executed.
+     * Immediately re-throw the error as a <code>RuntimeException</code>.
+     * <p>
+     * Additional methods cannot be chained to this as they would not be executed.
      */
     public void raiseException() {
         throw new RuntimeException(this.message, this.error);
     }
 
     /**
-     * Set the error that occurred. This should always be called first in a method chain.
+     * Set the error that occurred.
+     * <p>
+     * This should always be called first when method chaining.
      *
-     * @param error The error which is a <code>Throwable</code>.
-     * @return This object.
+     * @param error the error which is any type of <code>Throwable</code>
+     * @return this object
      */
     public ErrorHandler setError(final Throwable error) {
         this.error = error;
@@ -102,10 +122,10 @@
     }
 
     /**
-     * Set the error message if it differs from the exception's message.
+     * Set the error message, if it differs from the exception's message.
      *
-     * @param message The erro message.
-     * @return This object.
+     * @param message the error message
+     * @return this object
      */
     public ErrorHandler setMessage(final String message) {
         this.message = message;
@@ -115,7 +135,7 @@
     /**
      * Show an error dialog with the message.
      *
-     * @return This object.
+     * @return this object
      */
     public ErrorHandler showErrorDialog() {
         final Runnable runnable = new Runnable() {
@@ -132,7 +152,9 @@
     /**
      * Show an error dialog with a custom message and title.
      *
-     * @return This object.
+     * @param message the error message
+     * @param title the title of the dialog window
+     * @return this object
      */
     public ErrorHandler showErrorDialog(final String message, final String title) {
         final Runnable runnable = new Runnable() {

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EtSystemUtil.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EtSystemUtil.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EtSystemUtil.java	Mon Apr 13 13:17:35 2015
@@ -11,18 +11,34 @@
  */
 public final class EtSystemUtil {
 
+    /**
+     * Create an {@link org.hps.record.et.EtConnection} from the settings in a
+     * {@link org.hps.monitoring.application.model.ConfigurationModel}.
+     *
+     * @param config the {@link org.hps.monitoring.application.model.ConfigurationModel} with the connection settings
+     * @return the new {@link org.hps.record.et.EtConnection}
+     */
     public static EtConnection createEtConnection(final ConfigurationModel config) {
         return EtConnection.createConnection(config.getEtName(), config.getHost(), config.getPort(),
                 config.getBlocking(), config.getQueueSize(), config.getPrescale(), config.getStationName(),
                 config.getStationPosition(), config.getWaitMode(), config.getWaitTime(), config.getChunkSize());
     }
 
+    /**
+     * Create an event selection array (with size 6).
+     *
+     * @return the event selection array
+     */
     public static int[] createSelectArray() {
         final int select[] = new int[EtConstants.stationSelectInts];
         Arrays.fill(select, -1);
         return select;
     }
 
+    /**
+     * Do not allow class instantiation.
+     */
     private EtSystemUtil() {
+        throw new UnsupportedOperationException("Do not instantiate this class.");
     }
 }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EvioFileFilter.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EvioFileFilter.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/EvioFileFilter.java	Mon Apr 13 13:17:35 2015
@@ -5,24 +5,37 @@
 import javax.swing.filechooser.FileFilter;
 
 /**
- * This is a simple file filter that will accept files with ".evio" anywhere in their name.
+ * This is a file filter that will accept files with ".evio" anywhere in their name.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 public final class EvioFileFilter extends FileFilter {
 
+    /**
+     * Class constructor.
+     */
     public EvioFileFilter() {
     }
 
+    /**
+     * Return <code>true</code> if path should be accepted.
+     *
+     * @return <code>true</code> to accept the path
+     */
     @Override
-    public boolean accept(final File pathname) {
-        if (pathname.getName().contains(".evio") || pathname.isDirectory()) {
+    public boolean accept(final File path) {
+        if (path.getName().contains(".evio") || path.isDirectory()) {
             return true;
         } else {
             return false;
         }
     }
 
+    /**
+     * Get the description of the file filter.
+     *
+     * @return the description of the file filter
+     */
     @Override
     public String getDescription() {
         return "EVIO files";

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ResourceUtil.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ResourceUtil.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/ResourceUtil.java	Mon Apr 13 13:17:35 2015
@@ -19,15 +19,19 @@
 import org.reflections.Reflections;
 
 /**
+ * This is a set of utility methods for getting jar resources at runtime.
+ *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
 public final class ResourceUtil {
 
     /**
-     * Find a list of available detector names. Only those detectors that have names starting with "HPS" in their
-     * detector.properties files will be returned.
+     * Find a list of available detector names.
+     * <p>
+     * Only those detectors that have names starting with "HPS" in their <code>detector.properties</code> files will be
+     * returned.
      *
-     * @return The list of available detector names.
+     * @return the list of available HPS detector names
      */
     public static String[] findDetectorNames() {
         final ClassLoader classLoader = ResourceUtil.class.getClassLoader();
@@ -68,7 +72,7 @@
      * Find all classes that implement {@link org.hps.record.LCSimEventBuilder} and return a list of their canonical
      * names.
      *
-     * @return The list of classes implementing LCSimEventBuilder.
+     * @return the list of fully qualified class names that implement LCSimEventBuilder
      */
     public static String[] findEventBuilderClassNames() {
         final Reflections reflections = new Reflections("org.hps");
@@ -81,10 +85,10 @@
     }
 
     /**
-     * Get the files with extension 'lcsim' from all loaded jar files.
+     * Get all of the files with the extension "lcsim" which are in a certain package.
      *
-     * @param packageName The package name for filtering the resources.
-     * @return A list of embedded steering file resources.
+     * @param packageName the package name for filtering the list of resources
+     * @return a list of embedded steering file resources
      */
     public static String[] findSteeringResources(final String packageName) {
         final List<String> resources = new ArrayList<String>();
@@ -115,10 +119,20 @@
         return arr;
     }
 
+    /**
+     * Get the list of available conditions tags from the conditions system.
+     *
+     * @return the list of available conditions tags
+     */
+    // FIXME: This method probably does not belong in this class.
     public static String[] getConditionsTags() {
         return DatabaseConditionsManager.getInstance().getTags().toArray(new String[] {});
     }
 
+    /**
+     * Do not allow class instantiation.
+     */
     private ResourceUtil() {
+        throw new UnsupportedOperationException("Do not instantiate this class.");
     }
 }

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/SyncEventProcessor.java	Mon Apr 13 13:17:35 2015
@@ -22,11 +22,23 @@
  * @see org.hps.recon.ecal.daqconfig.ConfigurationManager
  * @see org.hps.recon.ecal.daqconfig.EvioDAQParser
  */
-public class SyncEventProcessor extends EtEventProcessor {
+// FIXME: This class is currently unused.
+public final class SyncEventProcessor extends EtEventProcessor {
 
+    /**
+     * The name of the trigger configuration collection.
+     */
     private static final String TRIGGER_CONFIG = "TriggerConfig";
-    TriggerConfigEvioReader configReader = new TriggerConfigEvioReader();
 
+    /**
+     * The trigger configuration reader.
+     */
+    private final TriggerConfigEvioReader configReader = new TriggerConfigEvioReader();
+
+    /**
+     * Process an ET event and if there is a trigger configuration present, parse it and update the configuration in the
+     * global manager.
+     */
     @Override
     public void process(final EtEvent event) {
         EvioEvent evioEvent = null;

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/TableExporter.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/TableExporter.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/util/TableExporter.java	Mon Apr 13 13:17:35 2015
@@ -8,8 +8,9 @@
 import javax.swing.table.TableModel;
 
 /**
- * This is a utility for exporting a JTable's model data to a text file. Non-numeric fields are all contained in double
- * quotes.
+ * This is a utility for exporting a JTable's model data to a text file.
+ * <p>
+ * Non-numeric fields such as strings are delimited by double quotes.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
@@ -18,10 +19,10 @@
     /**
      * Export the given table to a text file.
      *
-     * @param table The JTable component.
-     * @param path The output file path.
-     * @param fieldDelimiter The field delimiter to use.
-     * @throws IOException if there are errors writing the file.
+     * @param table the JTable component
+     * @param path the output file path
+     * @param fieldDelimiter the field delimiter to use
+     * @throws IOException if there are errors writing the file
      */
     public static void export(final JTable table, final String path, final char fieldDelimiter) throws IOException {
 
@@ -58,6 +59,10 @@
         out.close();
     }
 
+    /**
+     * Do not allow class instantiation.
+     */
     private TableExporter() {
+        throw new UnsupportedOperationException("Do not instantiate this class.");
     }
 }