Commit in hps-java/src/main/java/org/lcsim/hps/monitoring on MAIN
ConnectionPanel.java+22-711.12 -> 1.13
EventPanel.java+10-281.6 -> 1.7
MonitoringApplication.java+45-141.18 -> 1.19
MonitoringCommands.java+11.4 -> 1.5
+78-113
4 modified files
move all ActionEvent handling to MonitoringApplication; use Timer to update event time counter; fix bug with load and save boolean connection settings to prop file

hps-java/src/main/java/org/lcsim/hps/monitoring
ConnectionPanel.java 1.12 -> 1.13
diff -u -r1.12 -r1.13
--- ConnectionPanel.java	8 Apr 2012 23:48:11 -0000	1.12
+++ ConnectionPanel.java	18 Apr 2012 19:52:15 -0000	1.13
@@ -1,16 +1,9 @@
 package org.lcsim.hps.monitoring;
 
-import static org.lcsim.hps.monitoring.MonitoringCommands.connectCmd;
-import static org.lcsim.hps.monitoring.MonitoringCommands.disconnectCmd;
-import static org.lcsim.hps.monitoring.MonitoringCommands.loadConnectionCmd;
-import static org.lcsim.hps.monitoring.MonitoringCommands.resetConnectionSettingsCmd;
-import static org.lcsim.hps.monitoring.MonitoringCommands.saveConnectionCmd;
-
 import java.awt.Color;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -28,13 +21,13 @@
 
 import org.jlab.coda.et.enums.Mode;
 
-class ConnectionPanel extends JPanel implements ActionListener {
+class ConnectionPanel extends JPanel {
 
     JTextField etNameField;
     JTextField hostField;
     JTextField portField;
-    JCheckBox blockingField;
-    JCheckBox verboseField;
+    JCheckBox blockingCheckBox;
+    JCheckBox verboseCheckBox;
     JTextField statNameField;
     JTextField chunkField;
     JTextField qSizeField;
@@ -126,8 +119,8 @@
         c.gridx = 1;
         c.gridy = 3;
         c.anchor = GridBagConstraints.EAST;
-        blockingField = new JCheckBox();
-        add(blockingField, c);
+        blockingCheckBox = new JCheckBox();
+        add(blockingCheckBox, c);
 
         c = new GridBagConstraints();
         c.gridx = 0;
@@ -141,8 +134,8 @@
         c.gridx = 1;
         c.gridy = 4;
         c.anchor = GridBagConstraints.EAST;
-        verboseField = new JCheckBox();
-        add(verboseField, c);
+        verboseCheckBox = new JCheckBox();
+        add(verboseCheckBox, c);
 
         c = new GridBagConstraints();
         c.gridx = 0;
@@ -283,8 +276,8 @@
         connectionParameters.etName = etNameField.getText();
         connectionParameters.host = hostField.getText();
         connectionParameters.port = Integer.parseInt(portField.getText());
-        connectionParameters.blocking = blockingField.isSelected();
-        connectionParameters.verbose = verboseField.isSelected();
+        connectionParameters.blocking = blockingCheckBox.isSelected();
+        connectionParameters.verbose = verboseCheckBox.isSelected();
         connectionParameters.statName = statNameField.getText();
         connectionParameters.chunk = Integer.parseInt(chunkField.getText());
         connectionParameters.qSize = Integer.parseInt(qSizeField.getText());
@@ -326,8 +319,8 @@
         etNameField.setText(cn.etName);
         hostField.setText(cn.host);
         portField.setText(Integer.toString(cn.port));
-        blockingField.setSelected(cn.blocking);
-        verboseField.setSelected(cn.verbose);
+        blockingCheckBox.setSelected(cn.blocking);
+        verboseCheckBox.setSelected(cn.verbose);
         statNameField.setText(cn.statName);        
         chunkField.setText(Integer.toString(cn.chunk));
         qSizeField.setText(Integer.toString(cn.qSize));
@@ -339,34 +332,12 @@
         this.connectionParameters = cn;
     }
 
-    /*
-    void setConnectRequested(boolean b) {
-        this.connectRequested = false;
-    }
-
-    void setDisconnectRequested(boolean b) {
-        this.disconnectRequested = false;
-    }
-
-    private void setConnectRequested() {
-        connectRequested = true;
-        disconnectRequested = false;
-        enableConnectionPanel(false);
-    }
-    */
-
-    // FIXME Somehow this needs to interrupt if events are being fetched in Mode.SLEEP or we will never wake-up.
-    //private void setDisconnectRequested() {
-    //    disconnectRequested = true;
-    //    connectRequested = false;
-    //}
-
     void enableConnectionPanel(boolean e) {
         etNameField.setEnabled(e);
         hostField.setEnabled(e);
         portField.setEnabled(e);
-        blockingField.setEnabled(e);
-        verboseField.setEnabled(e);
+        blockingCheckBox.setEnabled(e);
+        verboseCheckBox.setEnabled(e);
         statNameField.setEnabled(e);
         chunkField.setEnabled(e);
         qSizeField.setEnabled(e);
@@ -377,32 +348,12 @@
         prescaleField.setEnabled(e);
     }
 
-    //boolean connectRequested() {
-    //    return this.connectRequested;
-    //}
-
-    //boolean disconnectRequested() {
-    //    return this.disconnectRequested;
-    //}
-
-    // FIXME These strings should be changed to constants.  If there are duplications
-    // with MonitorinApplication then move to common class like MonitoringCommands.
+    // FIXME: Move the event handling to MonitoringApplication.
     public void actionPerformed(ActionEvent e) {
-        //if (connectCmd.equals(e.getActionCommand())) {
-        //    setConnectRequested();
-        //} else if (disconnectCmd.equals(e.getActionCommand())) {
-        //    setDisconnectRequested();    		
-        //} else 
-        if (saveConnectionCmd.equals(e.getActionCommand())) {
-            save();
-        } else if (loadConnectionCmd.equals(e.getActionCommand())) {
-            load();
-        } else if (resetConnectionSettingsCmd.equals(e.getActionCommand())) {
-            reset();
-        }
+        
     }
 
-    private void save() {
+    void save() {
         JFileChooser fc = new JFileChooser();
         int r = fc.showSaveDialog(ConnectionPanel.this);
         if (r == JFileChooser.APPROVE_OPTION) {
@@ -411,7 +362,7 @@
         } 
     }
 
-    private void load() {
+    void load() {
         JFileChooser fc = new JFileChooser();
         int r = fc.showOpenDialog(ConnectionPanel.this);
         if (r == JFileChooser.APPROVE_OPTION) {
@@ -420,7 +371,7 @@
         }
     }
 
-    private void reset() {
+    void reset() {
         setConnectionParameters(new ConnectionParameters());
     }
 
@@ -429,8 +380,8 @@
         prop.setProperty("etName", etNameField.getText());
         prop.setProperty("host", hostField.getText());
         prop.setProperty("port", portField.getText());
-        prop.setProperty("blocking", blockingField.getText());
-        prop.setProperty("verbose", verboseField.getText());
+        prop.setProperty("blocking", Boolean.toString(blockingCheckBox.isSelected()));
+        prop.setProperty("verbose", Boolean.toString(verboseCheckBox.isSelected()));
         prop.setProperty("statName", statNameField.getText());
         prop.setProperty("chunk", chunkField.getText());
         prop.setProperty("qSize", qSizeField.getText());
@@ -467,8 +418,8 @@
             etNameField.setText(prop.getProperty("etName"));
             hostField.setText(prop.getProperty("host"));
             portField.setText(prop.getProperty("port"));
-            blockingField.setText(prop.getProperty("blocking"));
-            verboseField.setText(prop.getProperty("verbose"));
+            blockingCheckBox.setSelected(Boolean.parseBoolean(prop.getProperty("blocking")));
+            verboseCheckBox.setSelected(Boolean.parseBoolean(prop.getProperty("verbose")));
             statNameField.setText(prop.getProperty("statName"));
             chunkField.setText(prop.getProperty("chunk"));
             qSizeField.setText(prop.getProperty("qSize"));

hps-java/src/main/java/org/lcsim/hps/monitoring
EventPanel.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- EventPanel.java	13 Apr 2012 00:56:42 -0000	1.6
+++ EventPanel.java	18 Apr 2012 19:52:15 -0000	1.7
@@ -3,8 +3,6 @@
 import java.awt.Color;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.text.DecimalFormat;
 
 import javax.swing.JLabel;
@@ -12,7 +10,7 @@
 import javax.swing.JTextField;
 import javax.swing.SwingUtilities;
 
-class EventPanel extends JPanel implements ActionListener {
+class EventPanel extends JPanel { 
 
     private JTextField eventCounterField; // number of events in this job, can be reset via menu
     private JTextField elapsedTimeField; // elapsed time between job start or reset command
@@ -27,7 +25,6 @@
     private static final int defaultEventRefresh = 100;
     private int eventRefresh = defaultEventRefresh;
     
-    private long jobStartTime;
     private int eventCount;
     private int badEventCount;
     private int sessionSupplied;
@@ -217,7 +214,7 @@
     	});
     }
     
-    void updateAverageEventRate() {
+    void updateAverageEventRate(long jobStartTime) {
         if (updateEvent) {
             double jobTime = System.currentTimeMillis() - jobStartTime;
             if (jobTime > 0) {
@@ -231,25 +228,15 @@
             }
         }
     }
-        
-    void updateElapsedTime() {    
-        if (updateEvent) {
-            SwingUtilities.invokeLater(new Runnable() {
-                public void run() {
-                    elapsedTimeField.setText(Long.toString((System.currentTimeMillis() - jobStartTime)/1000));                    
-                }
-            });            
-        }
-    }
-    
-    // FIXME: Move this to MonitoringApplicationActionListener.
-    public void actionPerformed(ActionEvent e) {
-        String cmd = e.getActionCommand();
-        if (MonitoringCommands.resetEventsCmd.equals(cmd)) {
-            reset();
-        } 
+            
+    void setElapsedTime(final long time) {
+        SwingUtilities.invokeLater(new Runnable() {
+            public void run() {
+                elapsedTimeField.setText(Long.toString(time));
+            }
+        });       
     }
-        
+           
     void setEventRefresh(final int eventRefresh) {
         this.eventRefresh = eventRefresh;
         SwingUtilities.invokeLater(new Runnable() {
@@ -264,7 +251,6 @@
         resetBadEventCount();
         resetAverageEventRate();
         resetElapsedTime();
-        resetJobStartTime();
     }
 	    
 	private void resetEventCount() {
@@ -284,10 +270,6 @@
 	    });
 	}   
 
-	private void resetJobStartTime() {
-		jobStartTime = System.currentTimeMillis();
-	}
-
 	private void resetAverageEventRate() {
 	    SwingUtilities.invokeLater(new Runnable() {
             public void run() {

hps-java/src/main/java/org/lcsim/hps/monitoring
MonitoringApplication.java 1.18 -> 1.19
diff -u -r1.18 -r1.19
--- MonitoringApplication.java	17 Apr 2012 23:25:36 -0000	1.18
+++ MonitoringApplication.java	18 Apr 2012 19:52:15 -0000	1.19
@@ -13,6 +13,7 @@
 import static org.lcsim.hps.monitoring.MonitoringCommands.savePlotsCmd;
 import static org.lcsim.hps.monitoring.MonitoringCommands.screenshotCmd;
 import static org.lcsim.hps.monitoring.MonitoringCommands.terminalCmd;
+import static org.lcsim.hps.monitoring.MonitoringCommands.updateTimerCmd;
 
 import java.awt.AWTException;
 import java.awt.Dimension;
@@ -42,6 +43,7 @@
 import javax.swing.JPanel;
 import javax.swing.JTabbedPane;
 import javax.swing.SwingUtilities;
+import javax.swing.Timer;
 
 import org.jlab.coda.et.EtAttachment;
 import org.jlab.coda.et.EtEvent;
@@ -109,6 +111,10 @@
 	private LCSimEventBuilder eventBuilder;
 	
 	private MonitoringApplicationActionListener actionListener;
+	
+	private Timer timer;
+	
+	private long jobStartTime;
 
 	public static final class JobParameters {
 		private String detectorName;
@@ -145,18 +151,6 @@
 	        else if (disconnectCmd.equals(cmd)) {
 	            app.disconnect(ConnectionStatus.DISCONNECTING);
 	        } 
-	        else if (saveConnectionCmd.equals(cmd)) {
-	            app.connectionPanel.actionPerformed(e);
-	        } 
-	        else if (loadConnectionCmd.equals(cmd)) {
-	            app.connectionPanel.actionPerformed(e);
-	        } 
-	        else if (resetConnectionSettingsCmd.equals(cmd)) {
-	            app.connectionPanel.actionPerformed(e);        
-	        } 
-	        else if (resetEventsCmd.equals(cmd)) {
-	            app.eventPanel.actionPerformed(e);        
-	        } 
 	        else if (eventRefreshCmd.equals(cmd)) {
 	            app.setEventRefresh();
 	        }
@@ -178,6 +172,21 @@
 	        else if (exitCmd.equals(cmd)) {
 	            app.exit();
 	        }
+	        else if (updateTimerCmd.equals(cmd)) {
+	            app.updateTime();
+	        }
+	        else if (resetEventsCmd.equals(cmd)) {
+	            app.resetJob();
+	        } 
+	        else if (saveConnectionCmd.equals(e.getActionCommand())) {
+	            app.connectionPanel.save();
+	        } 
+	        else if (loadConnectionCmd.equals(e.getActionCommand())) {
+	            app.connectionPanel.load();
+	        } 
+	        else if (resetConnectionSettingsCmd.equals(e.getActionCommand())) {
+	            app.connectionPanel.reset();
+	        }
 	    } 
 	}
 	
@@ -546,6 +555,9 @@
 	    
 	    // This is only reset between different jobs (disconnects).
         eventPanel.resetSessionSupplied();
+        
+        // Start the job timer.
+        startTimer();
 
 	    // Start the event processing loop.
 	    int status = eventLoop();
@@ -572,6 +584,8 @@
 	private void stopJob() {
         if (jobManager != null)
             jobManager.finish();
+        timer.stop();
+        timer = null;
 	}
 	
 	private void startEvent() {
@@ -581,10 +595,10 @@
 	private void endEvent() {
 
 		// Update the average event rate.
-		eventPanel.updateAverageEventRate();                    
+		eventPanel.updateAverageEventRate(jobStartTime);                    
 
 		// Update elapsed time.
-		eventPanel.updateElapsedTime();
+		//eventPanel.updateElapsedTime();
 	}
 	
 	private void badEvent() {
@@ -864,4 +878,21 @@
             }
         }
     }
+    
+    private void startTimer() {
+        timer = new Timer(1000, actionListener);
+        timer.setActionCommand(updateTimerCmd);
+        jobStartTime = System.currentTimeMillis();
+        timer.start();
+    }   
+    
+    private void updateTime() {
+        final long elapsedTime = (System.currentTimeMillis() - jobStartTime)/1000;
+        eventPanel.setElapsedTime(elapsedTime);
+    }
+    
+    private void resetJob() {
+        jobStartTime = System.currentTimeMillis();
+        eventPanel.reset();
+    }
 }
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/monitoring
MonitoringCommands.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- MonitoringCommands.java	13 Apr 2012 00:56:42 -0000	1.4
+++ MonitoringCommands.java	18 Apr 2012 19:52:15 -0000	1.5
@@ -23,4 +23,5 @@
 	static final String terminalCmd = "terminalLog";
 	static final String screenshotCmd = "takeScreenshot";
 	static final String eventRefreshCmd = "eventRefreshEdit";
+	static final String updateTimerCmd = "updateTimer";
 }
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1