Commit in hps-java/src/main/java/org/lcsim/hps/monitoring on MAIN | |||
ConnectionPanel.java | +22 | -71 | 1.12 -> 1.13 |
EventPanel.java | +10 | -28 | 1.6 -> 1.7 |
MonitoringApplication.java | +45 | -14 | 1.18 -> 1.19 |
MonitoringCommands.java | +1 | 1.4 -> 1.5 | |
+78 | -113 |
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
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"));
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() {
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
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";
}
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