Author: [log in to unmask]
Date: Tue Mar 10 21:42:05 2015
New Revision: 2404
Log:
Merge trunk updates to monitoring-app dev branch.
Modified:
java/branches/monitoring-app-dev/ (props changed)
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/Commands.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MenuBar.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/RunPanel.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/SystemStatusTable.java
java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
java/branches/monitoring-app-dev/src/main/resources/org/hps/monitoring/config/default_config.prop
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/AbstractFieldsPanel.java Tue Mar 10 21:42:05 2015
@@ -11,6 +11,7 @@
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
+import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -136,7 +137,7 @@
c.gridy = currY;
c.insets = insets;
c.anchor = GridBagConstraints.WEST;
- JLabel waitModeLabel = new JLabel(name + ":");
+ JLabel waitModeLabel = new JLabel(name);
waitModeLabel.setHorizontalAlignment(JLabel.LEFT);
add(waitModeLabel, c);
@@ -278,6 +279,33 @@
return configurationModel;
}
+ /**
+ * Add a labeled JComponent to the panel.
+ * @param name The label text.
+ * @param component The component to add.
+ */
+ void addComponent(String name, JComponent component) {
+
+ // Add the label.
+ GridBagConstraints c = new GridBagConstraints();
+ c.gridx = 0;
+ c.gridy = currY;
+ c.insets = insets;
+ c.anchor = GridBagConstraints.WEST;
+ JLabel label = new JLabel(name + ":");
+ add(label, c);
+
+ // Add the component.
+ c = new GridBagConstraints();
+ c.gridx = 1;
+ c.gridy = currY;
+ c.insets = insets;
+ c.anchor = GridBagConstraints.EAST;
+ add(component, c);
+
+ ++currY;
+ }
+
boolean accept(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("ancestor")) {
return false;
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/Commands.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/Commands.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/Commands.java Tue Mar 10 21:42:05 2015
@@ -49,6 +49,9 @@
static final String CONDITIONS_TAG_CHANGED = "conditionsTagChanged";
+ static final String START_AIDA_SERVER = "startAIDAServer";
+ static final String STOP_AIDA_SERVER = "stopAIDAServer";
+
////////////////////////////////////////////
static final String BLOCKING_CHANGED = "blockingChanged";
static final String CHOOSE_COMPACT_FILE = "chooseCompactFile";
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/ConnectionSettingsPanel.java Tue Mar 10 21:42:05 2015
@@ -1,20 +1,4 @@
package org.hps.monitoring.application;
-
-import static org.hps.monitoring.application.Commands.BLOCKING_CHANGED;
-import static org.hps.monitoring.application.Commands.VERBOSE_CHANGED;
-import static org.hps.monitoring.application.Commands.WAIT_MODE_CHANGED;
-import static org.hps.monitoring.application.model.ConfigurationModel.BLOCKING_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.CHUNK_SIZE_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.ET_NAME_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.HOST_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.PORT_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.PRESCALE_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.QUEUE_SIZE_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.STATION_NAME_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.STATION_POSITION_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.VERBOSE_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.WAIT_MODE_PROPERTY;
-import static org.hps.monitoring.application.model.ConfigurationModel.WAIT_TIME_PROPERTY;
import java.awt.GridBagLayout;
import java.awt.Insets;
@@ -72,11 +56,11 @@
portField.addPropertyChangeListener("value", this);
blockingCheckBox = addCheckBox("Blocking", false, true);
- blockingCheckBox.setActionCommand(BLOCKING_CHANGED);
+ blockingCheckBox.setActionCommand(Commands.BLOCKING_CHANGED);
blockingCheckBox.addActionListener(this);
verboseCheckBox = addCheckBox("Verbose", false, true);
- verboseCheckBox.setActionCommand(VERBOSE_CHANGED);
+ verboseCheckBox.setActionCommand(Commands.VERBOSE_CHANGED);
verboseCheckBox.addActionListener(this);
stationNameField = addField("Station Name", 10);
@@ -92,7 +76,7 @@
stationPositionField.addPropertyChangeListener("value", this);
waitModeComboBox = addComboBox("Wait Mode", waitModes);
- waitModeComboBox.setActionCommand(WAIT_MODE_CHANGED);
+ waitModeComboBox.setActionCommand(Commands.WAIT_MODE_CHANGED);
waitModeComboBox.addActionListener(this);
waitTimeField = addField("Wait Time [microseconds]", 8);
@@ -130,29 +114,29 @@
configurationModel.removePropertyChangeListener(this);
try {
Object value = evt.getNewValue();
- if (evt.getPropertyName().equals(ET_NAME_PROPERTY)) {
+ if (evt.getPropertyName().equals(ConfigurationModel.ET_NAME_PROPERTY)) {
etNameField.setText((String) value);
- } else if (evt.getPropertyName().equals(HOST_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.HOST_PROPERTY)) {
hostField.setText((String) value);
- } else if (evt.getPropertyName().equals(PORT_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.PORT_PROPERTY)) {
portField.setText(value.toString());
- } else if (evt.getPropertyName().equals(BLOCKING_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.BLOCKING_PROPERTY)) {
blockingCheckBox.setSelected((Boolean) value);
- } else if (evt.getPropertyName().equals(VERBOSE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.VERBOSE_PROPERTY)) {
verboseCheckBox.setSelected((Boolean) value);
- } else if (evt.getPropertyName().equals(STATION_NAME_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.STATION_NAME_PROPERTY)) {
stationNameField.setText((String) value);
- } else if (evt.getPropertyName().equals(CHUNK_SIZE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.CHUNK_SIZE_PROPERTY)) {
chunkSizeField.setText(value.toString());
- } else if (evt.getPropertyName().equals(QUEUE_SIZE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.QUEUE_SIZE_PROPERTY)) {
queueSizeField.setText(value.toString());
- } else if (evt.getPropertyName().equals(STATION_POSITION_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.STATION_POSITION_PROPERTY)) {
stationPositionField.setText(value.toString());
- } else if (evt.getPropertyName().equals(WAIT_MODE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.WAIT_MODE_PROPERTY)) {
waitModeComboBox.setSelectedItem(((Mode) value).name());
- } else if (evt.getPropertyName().equals(WAIT_TIME_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.WAIT_TIME_PROPERTY)) {
waitTimeField.setText(value.toString());
- } else if (evt.getPropertyName().equals(PRESCALE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(ConfigurationModel.PRESCALE_PROPERTY)) {
prescaleField.setText(value.toString());
}
} finally {
@@ -166,18 +150,9 @@
*/
@Override
public void propertyChange(PropertyChangeEvent evt) {
-
if (!accept(evt)) {
return;
- }
-
- //System.out.println("ConnectionSettingsPanel.propertyChange");
- //System.out.println(" src: " + evt.getSource());
- //System.out.println(" propName: " + evt.getPropertyName());
- //System.out.println(" oldValue: " + evt.getOldValue());
- //System.out.println(" newValue: " + evt.getNewValue());
- //System.out.println(" propValue: " + evt.getPropagationId());
-
+ }
Object source = evt.getSource();
configurationModel.removePropertyChangeListener(this);
try {
@@ -210,11 +185,11 @@
*/
@Override
public void actionPerformed(ActionEvent e) {
- if (WAIT_MODE_CHANGED.equals(e.getActionCommand())) {
+ if (Commands.WAIT_MODE_CHANGED.equals(e.getActionCommand())) {
configurationModel.setWaitMode(Mode.valueOf((String) waitModeComboBox.getSelectedItem()));
- } else if (BLOCKING_CHANGED.equals(e.getActionCommand())) {
+ } else if (Commands.BLOCKING_CHANGED.equals(e.getActionCommand())) {
configurationModel.setBlocking(blockingCheckBox.isSelected());
- } else if (VERBOSE_CHANGED.equals(e.getActionCommand())) {
+ } else if (Commands.VERBOSE_CHANGED.equals(e.getActionCommand())) {
configurationModel.setVerbose(verboseCheckBox.isSelected());
}
}
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/EventProcessing.java Tue Mar 10 21:42:05 2015
@@ -24,6 +24,8 @@
import org.hps.record.enums.DataSourceType;
import org.hps.record.et.EtConnection;
import org.hps.record.evio.EvioDetectorConditionsProcessor;
+import org.jlab.coda.et.exception.EtClosedException;
+import org.jlab.coda.et.exception.EtException;
import org.lcsim.conditions.ConditionsManager;
import org.lcsim.conditions.ConditionsReader;
import org.lcsim.util.Driver;
@@ -82,14 +84,11 @@
// Get steering resource or file as a String parameter.
String steering = null;
SteeringType steeringType = configurationModel.getSteeringType();
- if (steeringType.equals(SteeringType.FILE))
- try {
- steering = configurationModel.getSteeringFile().getCanonicalPath();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- else
+ if (steeringType.equals(SteeringType.FILE)) {
+ steering = configurationModel.getSteeringFile();
+ } else {
steering = configurationModel.getSteeringResource();
+ }
MonitoringApplication.logger.config("Set steering to " + steering + " with type " + (steeringType == SteeringType.RESOURCE ? "RESOURCE" : "FILE"));
@@ -251,57 +250,57 @@
sessionState.jobManager.setup(is);
is.close();
}
-
- /**
- * Stop the event processing by executing a <code>STOP</code> command on the record loop and
- * killing the event processing thread. This is executed after the ET system is disconnected so
- * that the event processing does not potentially hang in a call to
- * <code>EtSystem.getEvents()</code> forever.
- */
+
synchronized void stop() {
-
- logger.info("event processing is stopping");
-
- // Disconnect from ET system.
+
+ // Kill session watchdog thread.
+ logger.fine("killing watchdog thread ...");
+ killWatchdogThread();
+ logger.fine("watchdog thread killed");
+
+ // Wake up ET system in case it is blocked in a getEvents() call.
+ if (sessionState.connection != null) {
+ try {
+ logger.fine("waking up ET stations ...");
+ sessionState.connection.getEtSystem().wakeUpAll(sessionState.connection.getEtStation());
+ logger.fine("ET stations woken up");
+ } catch (IOException | EtException | EtClosedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // Stop event processing.
+ logger.fine("commanding event processing to stop ...");
+ sessionState.loop.execute(Command.STOP);
+ logger.fine("event processing commanded to stop");
+
+ // Cleanup the event processing thread.
+ try {
+ logger.fine("joining on event processing thread ...");
+ sessionState.processingThread.join();
+ logger.fine("event processing thread joined");
+
+ // Invalidate event processing thread.
+ sessionState.processingThread = null;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ // Notify of last error that occurred in event processing.
+ if (sessionState.loop.getLastError() != null) {
+ // Log the error.
+ application.errorHandler.setError(sessionState.loop.getLastError()).log();
+ }
+
+ // Invalidate loop.
+ sessionState.loop = null;
+
+ // Disconnect from the ET system.
+ logger.fine("disconnecting from ET system ...");
disconnect();
-
- // Is the event processing thread not null?
- if (sessionState.processingThread != null) {
-
- // Is the event processing thread actually still alive?
- if (sessionState.processingThread.isAlive()) {
-
- // Request the event processing loop to execute stop.
- sessionState.loop.execute(Command.STOP);
-
- try {
- logger.info("waiting for event processing thread to finish");
- // This should always work, because the ET system is disconnected before this.
- sessionState.processingThread.interrupt();
- sessionState.processingThread.stop();
- sessionState.processingThread.join();
- logger.info("event processing thread finished");
- } catch (InterruptedException e) {
- // Don't know when this would ever happen.
- e.printStackTrace();
- }
- }
-
- // Notify of last error that occurred in event processing.
- if (sessionState.loop.getLastError() != null) {
- application.errorHandler.setError(sessionState.loop.getLastError()).log().printStackTrace();
- }
-
- // Set the event processing thread to null as it is unusable now.
- sessionState.processingThread = null;
- }
-
- // Set the loop to null as a new one will be created for next session.
- sessionState.loop = null;
-
- logger.info("event processing stopped");
- }
-
+ logger.fine("ET system disconnected");
+ }
+
/**
* Start event processing on the event processing thread
* and start the watchdog thread.
@@ -388,14 +387,16 @@
* Cleanup the ET connection.
*/
synchronized void closeEtConnection() {
- logger.fine("closing ET connection");
if (sessionState.connection != null) {
+ logger.fine("closing ET connection");
if (sessionState.connection.getEtSystem().alive()) {
+ logger.fine("cleaning up the connection ...");
sessionState.connection.cleanup();
+ logger.fine("connection cleanup successful");
}
sessionState.connection = null;
- }
- logger.fine("ET connection closed");
+ logger.fine("ET connection closed");
+ }
}
/**
@@ -458,10 +459,7 @@
synchronized void disconnect() {
logger.fine("disconnecting");
-
- // Kill the session watch dog thread.
- killWatchdogThread();
-
+
// Cleanup the ET connection.
closeEtConnection();
@@ -489,9 +487,11 @@
processingThread.join();
// Activate a disconnect using the ActionEvent which is used by the disconnect button.
+ logger.fine("processing thread ended so automatic disconnect is happening");
application.actionPerformed(new ActionEvent(Thread.currentThread(), 0, Commands.DISCONNECT));
} catch (InterruptedException e) {
+ logger.fine("SessionWatchdogThread got interrupted");
// This happens when the thread is interrupted by the user pressing the disconnect button.
}
}
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/JobSettingsPanel.java Tue Mar 10 21:42:05 2015
@@ -1,7 +1,4 @@
package org.hps.monitoring.application;
-
-import static org.hps.monitoring.application.Commands.*;
-import static org.hps.monitoring.application.model.ConfigurationModel.*;
import java.awt.GridBagLayout;
import java.awt.Insets;
@@ -21,10 +18,10 @@
import javax.swing.border.EmptyBorder;
import javax.swing.filechooser.FileFilter;
-import org.hps.conditions.database.DatabaseConditionsManager;
import org.hps.monitoring.application.model.ConfigurationModel;
import org.hps.monitoring.application.model.SteeringType;
import org.hps.monitoring.application.util.ResourceUtil;
+import org.hps.record.enums.ProcessingStage;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -34,11 +31,13 @@
* This is the GUI panel for setting job parameters. It is connected to the global configuration via
* a {@link org.hps.monitoring.model.ConfigurationModel} object.
*/
+// FIXME: Combo boxes should use explicit types.
class JobSettingsPanel extends AbstractFieldsPanel {
private JComboBox<?> steeringResourcesComboBox;
private JTextField steeringFileField;
private JComboBox<?> steeringTypeComboBox;
+ private JComboBox<ProcessingStage> processingStageComboBox;
private JComboBox<String> detectorNameComboBox;
private JTextField detectorAliasField;
private JComboBox<String> conditionsTagComboBox;
@@ -51,6 +50,7 @@
private JComboBox<?> logLevelComboBox;
private JCheckBox logToFileCheckbox;
private JTextField logFileNameField;
+ private JTextField aidaServerNameField;
// The package where steering resources must be located.
static final String STEERING_PACKAGE = "org/hps/steering/monitoring/";
@@ -76,16 +76,17 @@
super(new Insets(5, 3, 3, 5), true);
setBorder(new EmptyBorder(10, 10, 10, 10));
-
+
+ setLayout(new GridBagLayout());
+
+ // Listen on changes to the configuration which will then be automatically pushed to the GUI.
model.addPropertyChangeListener(this);
-
- setLayout(new GridBagLayout());
steeringResourcesComboBox = addComboBoxMultiline("Steering File Resource", ResourceUtil.findSteeringResources(STEERING_PACKAGE));
- steeringResourcesComboBox.setActionCommand(STEERING_RESOURCE_CHANGED);
+ steeringResourcesComboBox.setActionCommand(Commands.STEERING_RESOURCE_CHANGED);
steeringResourcesComboBox.addActionListener(this);
- steeringFileField = addField("Steering File", 35);
+ steeringFileField = addField("Steering File", 50);
steeringFileField.addPropertyChangeListener("value", this);
JButton steeringFileButton = addButton("Select Steering File");
@@ -93,15 +94,20 @@
steeringFileButton.addActionListener(this);
steeringTypeComboBox = addComboBox("Steering Type", new String[] { SteeringType.RESOURCE.name(), SteeringType.FILE.name() });
- steeringTypeComboBox.setActionCommand(STEERING_TYPE_CHANGED);
+ steeringTypeComboBox.setActionCommand(Commands.STEERING_TYPE_CHANGED);
steeringTypeComboBox.addActionListener(this);
+ processingStageComboBox = new JComboBox<ProcessingStage>(ProcessingStage.values());
+ addComponent("Processing Stage", processingStageComboBox);
+ processingStageComboBox.setActionCommand(Commands.PROCESSING_STAGE_CHANGED);
+ processingStageComboBox.addActionListener(this);
+
detectorNameComboBox = addComboBox("Detector Name", ResourceUtil.findDetectorNames());
- detectorNameComboBox.setActionCommand(DETECTOR_NAME_CHANGED);
+ detectorNameComboBox.setActionCommand(Commands.DETECTOR_NAME_CHANGED);
detectorNameComboBox.addActionListener(this);
detectorAliasField = addField("Detector Resources Directory", "", 35, true);
- detectorAliasField.setActionCommand(DETECTOR_ALIAS_CHANGED);
+ detectorAliasField.setActionCommand(Commands.DETECTOR_ALIAS_CHANGED);
detectorAliasField.addPropertyChangeListener("value", this);
detectorAliasField.addActionListener(this);
@@ -111,22 +117,21 @@
userRunNumberField = addField("User Run Number", "", 10, true);
userRunNumberField.addPropertyChangeListener("value", this);
- userRunNumberField.setActionCommand(USER_RUN_NUMBER_CHANGED);
+ userRunNumberField.setActionCommand(Commands.USER_RUN_NUMBER_CHANGED);
userRunNumberField.setEnabled(true);
userRunNumberField.setEditable(true);
-
-
+
conditionsTagComboBox = addComboBox("Conditions Tag", ResourceUtil.getConditionsTags());
conditionsTagComboBox.addItem("");
conditionsTagComboBox.setSelectedItem("");
- conditionsTagComboBox.setActionCommand(CONDITIONS_TAG_CHANGED);
+ conditionsTagComboBox.setActionCommand(Commands.CONDITIONS_TAG_CHANGED);
conditionsTagComboBox.addActionListener(this);
conditionsTagComboBox.setEditable(false);
conditionsTagComboBox.setEnabled(true);
freezeConditionsCheckBox = addCheckBox("Freeze detector conditions", false, true);
freezeConditionsCheckBox.addActionListener(this);
- freezeConditionsCheckBox.setActionCommand(FREEZE_CONDITIONS_CHANGED);
+ freezeConditionsCheckBox.setActionCommand(Commands.FREEZE_CONDITIONS_CHANGED);
maxEventsField = addField("Max Events", "-1", 10, false);
maxEventsField.addPropertyChangeListener("value", this);
@@ -135,15 +140,15 @@
eventBuilderComboBox = addComboBox("LCSim Event Builder", ResourceUtil.findEventBuilderClassNames());
eventBuilderComboBox.setSize(24, eventBuilderComboBox.getPreferredSize().height);
- eventBuilderComboBox.setActionCommand(EVENT_BUILDER_CHANGED);
+ eventBuilderComboBox.setActionCommand(Commands.EVENT_BUILDER_CHANGED);
eventBuilderComboBox.addActionListener(this);
disconnectOnErrorCheckBox = addCheckBox("Disconnect on error", false, true);
- disconnectOnErrorCheckBox.setActionCommand(DISCONNECT_ON_ERROR_CHANGED);
+ disconnectOnErrorCheckBox.setActionCommand(Commands.DISCONNECT_ON_ERROR_CHANGED);
disconnectOnErrorCheckBox.addActionListener(this);
disconnectOnEndRunCheckBox = addCheckBox("Disconnect on end run", false, true);
- disconnectOnEndRunCheckBox.setActionCommand(DISCONNECT_ON_END_RUN_CHANGED);
+ disconnectOnEndRunCheckBox.setActionCommand(Commands.DISCONNECT_ON_END_RUN_CHANGED);
disconnectOnEndRunCheckBox.addActionListener(this);
logLevelComboBox = addComboBox("Log Level", LOG_LEVELS);
@@ -153,8 +158,11 @@
logToFileCheckbox = addCheckBox("Log to File", false, false);
logToFileCheckbox.setEnabled(false);
- logFileNameField = addField("Log File Name", "", "Full path to log file.", 50, false);
+ logFileNameField = addField("Log File Name", "", "Full path to log file", 50, false);
logFileNameField.setEditable(false);
+
+ aidaServerNameField = addField("AIDA Server Name", "", "Name of AIDA server", 30, true);
+ aidaServerNameField.addPropertyChangeListener("value", this);
}
@Override
@@ -183,6 +191,7 @@
try {
checkSteeringFile(file);
configurationModel.setSteeringFile(file.getCanonicalPath());
+ configurationModel.setSteeringType(SteeringType.FILE);
} catch (IOException | JDOMException e) {
throw new RuntimeException("Error parsing the selected steering file.", e);
}
@@ -246,45 +255,44 @@
@Override
public void actionPerformed(ActionEvent event) {
-
- //System.out.println("JobSettingsPanel.actionPerformed - " + event.getActionCommand());
- //System.out.println(" source: " + event.getSource());
-
try {
configurationModel.removePropertyChangeListener(this);
+ String command = event.getActionCommand();
if (event.getActionCommand().equals(Commands.CHOOSE_STEERING_FILE)) {
chooseSteeringFile();
} else if (event.getActionCommand().equals(Commands.CHOOSE_COMPACT_FILE)) {
chooseCompactFile();
- } else if (DISCONNECT_ON_ERROR_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.DISCONNECT_ON_ERROR_CHANGED.equals(command)) {
configurationModel.setDisconnectOnError(disconnectOnErrorCheckBox.isSelected());
- } else if (DISCONNECT_ON_END_RUN_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.DISCONNECT_ON_END_RUN_CHANGED.equals(command)) {
configurationModel.setDisconnectOnEndRun(disconnectOnEndRunCheckBox.isSelected());
- } else if (STEERING_TYPE_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.STEERING_TYPE_CHANGED.equals(command)) {
configurationModel.setSteeringType(SteeringType.valueOf((String) steeringTypeComboBox.getSelectedItem()));
- } else if (STEERING_RESOURCE_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.STEERING_RESOURCE_CHANGED.equals(command)) {
configurationModel.setSteeringResource((String) steeringResourcesComboBox.getSelectedItem());
- } else if (LOG_LEVEL_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.LOG_LEVEL_CHANGED.equals(command)) {
configurationModel.setLogLevel(Level.parse((String) logLevelComboBox.getSelectedItem()));
- } else if (EVENT_BUILDER_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.EVENT_BUILDER_CHANGED.equals(command)) {
configurationModel.setEventBuilderClassName((String) eventBuilderComboBox.getSelectedItem());
- } else if (DETECTOR_NAME_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.DETECTOR_NAME_CHANGED.equals(command)) {
try {
configurationModel.setDetectorName((String) detectorNameComboBox.getSelectedItem());
} catch (Exception exception) {
exception.printStackTrace();
}
- } else if (FREEZE_CONDITIONS_CHANGED.equals(event.getActionCommand())) {
- if (configurationModel.hasPropertyKey(USER_RUN_NUMBER_PROPERTY) && configurationModel.getUserRunNumber() != null) {
+ } else if (Commands.FREEZE_CONDITIONS_CHANGED.equals(command)) {
+ if (configurationModel.hasPropertyKey(ConfigurationModel.USER_RUN_NUMBER_PROPERTY) && configurationModel.getUserRunNumber() != null) {
configurationModel.setFreezeConditions(freezeConditionsCheckBox.isSelected());
} else {
throw new IllegalArgumentException("Conditions system may only be frozen if there is a valid user run number.");
}
- } else if (DETECTOR_ALIAS_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.DETECTOR_ALIAS_CHANGED.equals(command)) {
configurationModel.setDetectorName(detectorAliasField.getText());
- } else if (CONDITIONS_TAG_CHANGED.equals(event.getActionCommand())) {
+ } else if (Commands.CONDITIONS_TAG_CHANGED.equals(command)) {
configurationModel.setConditionsTag((String) conditionsTagComboBox.getSelectedItem());
- }
+ } else if (Commands.PROCESSING_STAGE_CHANGED.equals(command)) {
+ configurationModel.setProcessingStage((ProcessingStage) processingStageComboBox.getSelectedItem());
+ }
} finally {
configurationModel.addPropertyChangeListener(this);
}
@@ -304,7 +312,6 @@
} else if (source == userRunNumberField) {
// Is run number being reset to null or empty?
if (userRunNumberField.getText() == null || userRunNumberField.getText().isEmpty()) {
- // System.out.println("resetting user run number back to null");
// Update the model to null user run number and do not freeze the conditions system.
configurationModel.setUserRunNumber(null);
configurationModel.setFreezeConditions(false);
@@ -323,6 +330,8 @@
} else if (source == maxEventsField) {
configurationModel.setMaxEvents(Long.parseLong(maxEventsField.getText()));
//System.out.println("setMaxEvents - " + configurationModel.getMaxEvents());
+ } else if (source == aidaServerNameField) {
+ configurationModel.setAIDAServerName(aidaServerNameField.getText());
} else if (evt.getPropertyName().equals(ConfigurationModel.LOG_TO_FILE_PROPERTY)) {
// This is getting the log to file prop change from the ConfigurationModel to update a read only component.
Boolean logToFile = (Boolean) evt.getNewValue();
@@ -339,7 +348,7 @@
}
} else if (evt.getPropertyName().equals(ConfigurationModel.CONDITIONS_TAG_PROPERTY)) {
conditionsTagComboBox.setSelectedItem(evt.getNewValue());
- }
+ }
} finally {
configurationModel.addPropertyChangeListener(this);
}
@@ -352,57 +361,56 @@
private class JobSettingsChangeListener implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- //System.out.println("JobSettingsChangeListener.propertyChange");
- //System.out.println(" src: " + evt.getSource());
- //System.out.println(" propName: " + evt.getPropertyName());
- //System.out.println(" oldValue: " + evt.getOldValue());
- //System.out.println(" newValue: " + evt.getNewValue());
- //System.out.println(" propId: " + evt.getPropagationId());
if (evt.getSource() instanceof ConfigurationModel) {
Object value = evt.getNewValue();
+ String property = evt.getPropertyName();
configurationModel.removePropertyChangeListener(this);
try {
- if (evt.getPropertyName().equals(DETECTOR_NAME_PROPERTY)) {
+ if (property.equals(ConfigurationModel.DETECTOR_NAME_PROPERTY)) {
detectorNameComboBox.setSelectedItem((String) value);
- } else if (evt.getPropertyName().equals(DETECTOR_ALIAS_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.DETECTOR_ALIAS_PROPERTY)) {
detectorAliasField.setText((String) value);
- } else if (evt.getPropertyName().equals(DISCONNECT_ON_ERROR_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.DISCONNECT_ON_ERROR_PROPERTY)) {
disconnectOnErrorCheckBox.setSelected((Boolean) value);
- } else if (evt.getPropertyName().equals(DISCONNECT_ON_END_RUN_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.DISCONNECT_ON_END_RUN_PROPERTY)) {
disconnectOnEndRunCheckBox.setSelected((Boolean) value);
- } else if (evt.getPropertyName().equals(EVENT_BUILDER_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.EVENT_BUILDER_PROPERTY)) {
eventBuilderComboBox.setSelectedItem((String) value);
- } else if (evt.getPropertyName().equals(LOG_FILE_NAME_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.LOG_FILE_NAME_PROPERTY)) {
logFileNameField.setText((String) value);
- } else if (evt.getPropertyName().equals(LOG_LEVEL_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.LOG_LEVEL_PROPERTY)) {
logLevelComboBox.setSelectedItem(value.toString());
- } else if (evt.getPropertyName().equals(LOG_TO_FILE_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.LOG_TO_FILE_PROPERTY)) {
logToFileCheckbox.setSelected((Boolean) value);
- } else if (evt.getPropertyName().equals(STEERING_TYPE_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.STEERING_TYPE_PROPERTY)) {
steeringTypeComboBox.setSelectedIndex(((SteeringType) value).ordinal());
- } else if (evt.getPropertyName().equals(STEERING_FILE_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.STEERING_FILE_PROPERTY)) {
if (value != null) {
- steeringFileField.setText(((File) value).getAbsolutePath());
+ steeringFileField.setText((String) evt.getNewValue());
} else {
// A null value here is actually okay and means this field should be reset to have no value.
steeringFileField.setText(null);
}
- } else if (evt.getPropertyName().equals(STEERING_RESOURCE_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.STEERING_RESOURCE_PROPERTY)) {
steeringResourcesComboBox.setSelectedItem(value);
- } else if (evt.getPropertyName().equals(USER_RUN_NUMBER_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.USER_RUN_NUMBER_PROPERTY)) {
if (value != null) {
userRunNumberField.setText(Integer.toString((int) value));
} else {
userRunNumberField.setText(null);
}
- } else if (evt.getPropertyName().equals(FREEZE_CONDITIONS_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.FREEZE_CONDITIONS_PROPERTY)) {
if (value != null) {
freezeConditionsCheckBox.setSelected((Boolean) value);
}
- } else if (evt.getPropertyName().equals(MAX_EVENTS_PROPERTY)) {
+ } else if (property.equals(ConfigurationModel.MAX_EVENTS_PROPERTY)) {
if (value != null) {
maxEventsField.setText(value.toString());
}
+ } else if (property.equals(ConfigurationModel.PROCESSING_STAGE_PROPERTY)) {
+ processingStageComboBox.setSelectedItem(evt.getNewValue());
+ } else if (property.equals(ConfigurationModel.AIDA_SERVER_NAME_PROPERTY)) {
+ aidaServerNameField.setText((String) evt.getNewValue());
}
} finally {
configurationModel.addPropertyChangeListener(this);
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MenuBar.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MenuBar.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MenuBar.java Tue Mar 10 21:42:05 2015
@@ -1,18 +1,4 @@
package org.hps.monitoring.application;
-
-import static org.hps.monitoring.application.Commands.EXIT;
-import static org.hps.monitoring.application.Commands.CLOSE_FILE;
-import static org.hps.monitoring.application.Commands.OPEN_FILE;
-import static org.hps.monitoring.application.Commands.CLEAR_PLOTS;
-import static org.hps.monitoring.application.Commands.SAVE_PLOTS;
-import static org.hps.monitoring.application.Commands.LOAD_SETTINGS;
-import static org.hps.monitoring.application.Commands.LOAD_DEFAULT_SETTINGS;
-import static org.hps.monitoring.application.Commands.SAVE_SCREENSHOT;
-import static org.hps.monitoring.application.Commands.SAVE_SETTINGS;
-import static org.hps.monitoring.application.Commands.SHOW_SETTINGS;
-import static org.hps.monitoring.application.Commands.DEFAULT_WINDOW;
-import static org.hps.monitoring.application.Commands.MAXIMIZE_WINDOW;
-import static org.hps.monitoring.application.Commands.MINIMIZE_WINDOW;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -40,6 +26,7 @@
JMenuItem openFileItem;
JMenu settingsMenu;
JMenuItem logItem;
+ JMenuItem serverItem;
ConfigurationModel configurationModel;
MenuBar(ConfigurationModel configurationModel, ConnectionStatusModel connectionModel, ActionListener listener) {
@@ -56,21 +43,21 @@
openFileItem = new JMenuItem("Open File ...");
openFileItem.setMnemonic(KeyEvent.VK_P);
- openFileItem.setActionCommand(OPEN_FILE);
+ openFileItem.setActionCommand(Commands.OPEN_FILE);
openFileItem.addActionListener(listener);
openFileItem.setToolTipText("Open an EVIO or LCIO data file");
fileMenu.add(openFileItem);
closeFileItem = new JMenuItem("Close File");
closeFileItem.setMnemonic(KeyEvent.VK_C);
- closeFileItem.setActionCommand(CLOSE_FILE);
+ closeFileItem.setActionCommand(Commands.CLOSE_FILE);
closeFileItem.addActionListener(listener);
closeFileItem.setToolTipText("Close the current file data source");
fileMenu.add(closeFileItem);
JMenuItem exitItem = new JMenuItem("Exit");
exitItem.setMnemonic(KeyEvent.VK_X);
- exitItem.setActionCommand(EXIT);
+ exitItem.setActionCommand(Commands.EXIT);
exitItem.addActionListener(listener);
exitItem.setToolTipText("Exit from the application");
fileMenu.add(exitItem);
@@ -81,7 +68,7 @@
JMenuItem settingsItem = new JMenuItem("Open Settings Window ...");
settingsItem.setMnemonic(KeyEvent.VK_O);
- settingsItem.setActionCommand(SHOW_SETTINGS);
+ settingsItem.setActionCommand(Commands.SHOW_SETTINGS);
settingsItem.addActionListener(listener);
settingsItem.setToolTipText("Show settings dialog");
settingsMenu.add(settingsItem);
@@ -89,21 +76,21 @@
JMenuItem loadConfigItem = new JMenuItem("Load Settings ...");
loadConfigItem.addActionListener(listener);
loadConfigItem.setMnemonic(KeyEvent.VK_L);
- loadConfigItem.setActionCommand(LOAD_SETTINGS);
+ loadConfigItem.setActionCommand(Commands.LOAD_SETTINGS);
loadConfigItem.setToolTipText("Load settings from a properties file");
settingsMenu.add(loadConfigItem);
JMenuItem saveConfigItem = new JMenuItem("Save Settings ...");
saveConfigItem.addActionListener(listener);
saveConfigItem.setMnemonic(KeyEvent.VK_S);
- saveConfigItem.setActionCommand(SAVE_SETTINGS);
+ saveConfigItem.setActionCommand(Commands.SAVE_SETTINGS);
saveConfigItem.setToolTipText("Save configuration to a properties file");
settingsMenu.add(saveConfigItem);
JMenuItem defaultSettingsItem = new JMenuItem("Load Default Settings");
defaultSettingsItem.addActionListener(listener);
defaultSettingsItem.setMnemonic(KeyEvent.VK_D);
- defaultSettingsItem.setActionCommand(LOAD_DEFAULT_SETTINGS);
+ defaultSettingsItem.setActionCommand(Commands.LOAD_DEFAULT_SETTINGS);
defaultSettingsItem.setToolTipText("Load the default settings");
settingsMenu.add(defaultSettingsItem);
@@ -113,7 +100,7 @@
JMenuItem savePlotsItem = new JMenuItem("Save Plots ...");
savePlotsItem.setMnemonic(KeyEvent.VK_S);
- savePlotsItem.setActionCommand(SAVE_PLOTS);
+ savePlotsItem.setActionCommand(Commands.SAVE_PLOTS);
savePlotsItem.addActionListener(listener);
savePlotsItem.setEnabled(true);
savePlotsItem.setToolTipText("Save plots to AIDA file");
@@ -121,7 +108,7 @@
JMenuItem clearPlotsItem = new JMenuItem("Clear Plots");
clearPlotsItem.setMnemonic(KeyEvent.VK_C);
- clearPlotsItem.setActionCommand(CLEAR_PLOTS);
+ clearPlotsItem.setActionCommand(Commands.CLEAR_PLOTS);
clearPlotsItem.addActionListener(listener);
clearPlotsItem.setEnabled(true);
clearPlotsItem.setToolTipText("Clear the AIDA plots");
@@ -141,7 +128,7 @@
JMenuItem screenshotItem = new JMenuItem("Save Screenshot ...");
screenshotItem.setMnemonic(KeyEvent.VK_S);
- screenshotItem.setActionCommand(SAVE_SCREENSHOT);
+ screenshotItem.setActionCommand(Commands.SAVE_SCREENSHOT);
screenshotItem.addActionListener(listener);
screenshotItem.setEnabled(true);
screenshotItem.setToolTipText("Save a screenshot to a graphics file");
@@ -155,13 +142,21 @@
logItem.setToolTipText("Redirect System.out to a file instead of terminal");
toolsMenu.add(logItem);
+ serverItem = new JMenuItem("Start AIDA Server ...");
+ serverItem.setMnemonic(KeyEvent.VK_A);
+ serverItem.setActionCommand(Commands.START_AIDA_SERVER);
+ serverItem.setEnabled(true);
+ serverItem.setToolTipText("Start AIDA RMI Server");
+ serverItem.addActionListener(listener);
+ toolsMenu.add(serverItem);
+
JMenu windowMenu = new JMenu("Window");
windowMenu.setMnemonic(KeyEvent.VK_W);
add(windowMenu);
JMenuItem maximizeItem = new JMenuItem("Maximize");
maximizeItem.setMnemonic(KeyEvent.VK_M);
- maximizeItem.setActionCommand(MAXIMIZE_WINDOW);
+ maximizeItem.setActionCommand(Commands.MAXIMIZE_WINDOW);
maximizeItem.addActionListener(listener);
maximizeItem.setEnabled(true);
maximizeItem.setToolTipText("Maximize the application window");
@@ -169,7 +164,7 @@
JMenuItem minimizeItem = new JMenuItem("Minimize");
minimizeItem.setMnemonic(KeyEvent.VK_I);
- minimizeItem.setActionCommand(MINIMIZE_WINDOW);
+ minimizeItem.setActionCommand(Commands.MINIMIZE_WINDOW);
minimizeItem.addActionListener(listener);
minimizeItem.setEnabled(true);
minimizeItem.setToolTipText("Minimize the application window");
@@ -177,7 +172,7 @@
JMenuItem defaultsItem = new JMenuItem("Restore Defaults");
defaultsItem.setMnemonic(KeyEvent.VK_D);
- defaultsItem.setActionCommand(DEFAULT_WINDOW);
+ defaultsItem.setActionCommand(Commands.DEFAULT_WINDOW);
defaultsItem.addActionListener(listener);
defaultsItem.setEnabled(true);
defaultsItem.setToolTipText("Restore the window defaults");
@@ -222,19 +217,16 @@
}
}
}
- void setServerConnected(boolean connected) {
- if (connected) {
- serverItem = new JMenuItem("Stop AIDA Server");
- serverItem.setMnemonic(KeyEvent.VK_A);
- serverItem.setActionCommand(Commands.STOP_AIDA_SERVER);
- serverItem.setEnabled(true);
- serverItem.setToolTipText("Stop the running AIDA RMI server");
- } else {
- serverItem = new JMenuItem("Start AIDA Server");
- serverItem.setMnemonic(KeyEvent.VK_A);
- serverItem.setActionCommand(Commands.START_AIDA_SERVER);
- serverItem.setEnabled(true);
- serverItem.setToolTipText("Start AIDA RMI server");
- }
- }
+
+ void startAIDAServer() {
+ serverItem.setActionCommand(Commands.STOP_AIDA_SERVER);
+ serverItem.setText("Stop AIDA Server");
+ serverItem.setToolTipText("Stop the remote AIDA server");
+ }
+
+ void stopAIDAServer() {
+ serverItem.setActionCommand(Commands.START_AIDA_SERVER);
+ serverItem.setText("Start AIDA Server");
+ serverItem.setToolTipText("Start the remote AIDA server");
+ }
}
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplication.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplication.java Tue Mar 10 21:42:05 2015
@@ -3,6 +3,7 @@
import hep.aida.jfree.AnalysisFactory;
import hep.aida.jfree.plotter.PlotterRegion;
import hep.aida.jfree.plotter.PlotterRegionListener;
+import hep.aida.ref.remote.rmi.client.RmiStoreFactory;
import java.awt.Dimension;
import java.awt.Rectangle;
@@ -105,6 +106,9 @@
// Filters for opening files.
static final FileFilter lcioFilter = new FileNameExtensionFilter("LCIO files", "slcio");
static final EvioFileFilter evioFilter = new EvioFileFilter();
+
+ AIDAServer server = new AIDAServer("hps-monitoring-app");
+ static final RmiStoreFactory rsf = new RmiStoreFactory();
/**
* Default log handler.
@@ -224,53 +228,59 @@
*/
public void actionPerformed(ActionEvent e) {
- String cmd = e.getActionCommand();
- if (Commands.CONNECT.equals(cmd)) {
+ logger.finest("actionPerformed - " + e.getActionCommand());
+
+ String command = e.getActionCommand();
+ if (Commands.CONNECT.equals(command)) {
startSession();
- } else if (Commands.DISCONNECT.equals(cmd)) {
+ } else if (Commands.DISCONNECT.equals(command)) {
processing.stop();
- } else if (Commands.SAVE_PLOTS.equals(cmd)) {
+ } else if (Commands.SAVE_PLOTS.equals(command)) {
savePlots();
- } else if (Commands.EXIT.equals(cmd)) {
+ } else if (Commands.EXIT.equals(command)) {
exit();
- } else if (Commands.PAUSE.equals(cmd)) {
+ } else if (Commands.PAUSE.equals(command)) {
processing.pause();
- } else if (Commands.NEXT.equals(cmd)) {
+ } else if (Commands.NEXT.equals(command)) {
processing.next();
- } else if (Commands.RESUME.equals(cmd)) {
+ } else if (Commands.RESUME.equals(command)) {
processing.resume();
- } else if (Commands.SHOW_SETTINGS.equals(cmd)) {
+ } else if (Commands.SHOW_SETTINGS.equals(command)) {
showSettingsDialog();
- } else if (Commands.LOAD_SETTINGS.equals(cmd)) {
+ } else if (Commands.LOAD_SETTINGS.equals(command)) {
loadSettings();
- } else if (Commands.SAVE_SETTINGS.equals(cmd)) {
+ } else if (Commands.SAVE_SETTINGS.equals(command)) {
saveSettings();
- } else if (Commands.CLEAR_PLOTS.equals(cmd)) {
+ } else if (Commands.CLEAR_PLOTS.equals(command)) {
clearPlots();
- } else if (Commands.LOAD_DEFAULT_SETTINGS.equals(cmd)) {
+ } else if (Commands.LOAD_DEFAULT_SETTINGS.equals(command)) {
loadDefaultSettings();
- } else if (Commands.OPEN_FILE.equals(cmd)) {
+ } else if (Commands.OPEN_FILE.equals(command)) {
openFile();
- } else if (Commands.DEFAULT_WINDOW.equals(cmd)) {
+ } else if (Commands.DEFAULT_WINDOW.equals(command)) {
restoreDefaultWindow();
- } else if (Commands.MAXIMIZE_WINDOW.equals(cmd)) {
+ } else if (Commands.MAXIMIZE_WINDOW.equals(command)) {
maximizeWindow();
- } else if (Commands.MINIMIZE_WINDOW.equals(cmd)) {
+ } else if (Commands.MINIMIZE_WINDOW.equals(command)) {
minimizeWindow();
- } else if (Commands.CLOSE_FILE.equals(cmd)) {
+ } else if (Commands.CLOSE_FILE.equals(command)) {
closeFile();
- } else if (Commands.SAVE_SCREENSHOT.equals(cmd)) {
+ } else if (Commands.SAVE_SCREENSHOT.equals(command)) {
saveScreenshot();
- } else if (Commands.LOG_LEVEL_CHANGED.equals(cmd)) {
+ } else if (Commands.LOG_LEVEL_CHANGED.equals(command)) {
setLogLevel();
- } else if (Commands.SAVE_LOG_TABLE.equals(cmd)) {
+ } else if (Commands.SAVE_LOG_TABLE.equals(command)) {
saveLogTable();
- } else if (Commands.CLEAR_LOG_TABLE.equals(cmd)) {
+ } else if (Commands.CLEAR_LOG_TABLE.equals(command)) {
getLogRecordModel().clear();
- } else if (Commands.LOG_TO_FILE.equals(cmd)) {
+ } else if (Commands.LOG_TO_FILE.equals(command)) {
chooseLogFile();
- } else if (Commands.LOG_TO_TERMINAL.equals(cmd)) {
+ } else if (Commands.LOG_TO_TERMINAL.equals(command)) {
logToTerminal();
+ } else if (Commands.START_AIDA_SERVER.equals(command)) {
+ startAIDAServer();
+ } else if (Commands.STOP_AIDA_SERVER.equals(command)) {
+ stopAIDAServer();
}
}
@@ -750,5 +760,32 @@
DialogUtil.showInfoDialog(frame, "Log to Terminal", "Log messages will be sent to the terminal.");
}
-
+
+ /**
+ * Start the AIDA server instance.
+ */
+ void startAIDAServer() {
+ if (configurationModel.hasValidProperty(ConfigurationModel.AIDA_SERVER_NAME_PROPERTY)) {
+ server.setName(configurationModel.getAIDAServerName());
+ }
+ boolean started = server.start();
+ if (started) {
+ frame.menu.startAIDAServer();
+ logger.info("AIDA server started at " + server.getName());
+ DialogUtil.showInfoDialog(frame, "AIDA Server Started", "The remote AIDA server started successfully.");
+ } else {
+ logger.warning("AIDA server failed to start");
+ DialogUtil.showErrorDialog(frame, "Failed to Start AIDA Server", "The remote AIDA server failed to start.");
+ }
+ }
+
+ /**
+ * Stop the AIDA server instance.
+ */
+ void stopAIDAServer() {
+ server.disconnect();
+ frame.menu.stopAIDAServer();
+ logger.info("AIDA server was stopped");
+ DialogUtil.showInfoDialog(frame, "AIDA Server Stopped", "The AIDA server was stopped.");
+ }
}
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java Tue Mar 10 21:42:05 2015
@@ -30,7 +30,7 @@
SystemStatusTable systemStatusTable;
JPanel buttonsPanel;
TriggerDiagnosticsPanel triggerPanel;
- MenuBar menu;
+ MenuBar menu;
JSplitPane mainSplitPane;
JSplitPane rightSplitPane;
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/RunPanel.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/RunPanel.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/RunPanel.java Tue Mar 10 21:42:05 2015
@@ -1,16 +1,4 @@
package org.hps.monitoring.application;
-
-import static org.hps.monitoring.application.model.RunModel.DATA_RATE_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.DATA_RECEIVED_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.ELAPSED_TIME_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.END_DATE_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.EVENTS_RECEIVED_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.EVENT_NUMBER_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.EVENT_RATE_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.RUN_LENGTH_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.RUN_NUMBER_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.START_DATE_PROPERTY;
-import static org.hps.monitoring.application.model.RunModel.TOTAL_EVENTS_PROPERTY;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
@@ -262,33 +250,33 @@
public void propertyChange(PropertyChangeEvent evt) {
//System.out.println("RunPanel.propertyChange - " + evt.getPropertyName());
Object value = evt.getNewValue();
- if (RUN_NUMBER_PROPERTY.equals(evt.getPropertyName())) {
+ if (RunModel.RUN_NUMBER_PROPERTY.equals(evt.getPropertyName())) {
runNumberField.setValue((Integer) value);
- } else if (START_DATE_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.START_DATE_PROPERTY.equals(evt.getPropertyName())) {
if (value != null)
startDateField.setValue((Date) value);
else
startDateField.setValue("");
- } else if (END_DATE_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.END_DATE_PROPERTY.equals(evt.getPropertyName())) {
if (value != null)
endDateField.setValue((Date) value);
else
endDateField.setValue("");
- } else if (RUN_LENGTH_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.RUN_LENGTH_PROPERTY.equals(evt.getPropertyName())) {
lengthField.setValue((Integer) value);
- } else if (TOTAL_EVENTS_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.TOTAL_EVENTS_PROPERTY.equals(evt.getPropertyName())) {
totalEventsField.setValue((Integer) value);
- } else if (EVENTS_RECEIVED_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.EVENTS_RECEIVED_PROPERTY.equals(evt.getPropertyName())) {
eventsReceivedField.setValue((Integer) value);
- } else if (ELAPSED_TIME_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.ELAPSED_TIME_PROPERTY.equals(evt.getPropertyName())) {
elapsedTimeField.setValue((Integer) value);
- } else if (DATA_RECEIVED_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.DATA_RECEIVED_PROPERTY.equals(evt.getPropertyName())) {
dataReceivedField.setValue(formatter.format((Double) value));
- } else if (EVENT_NUMBER_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.EVENT_NUMBER_PROPERTY.equals(evt.getPropertyName())) {
eventNumberField.setValue((Integer) value);
- } else if (DATA_RATE_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.DATA_RATE_PROPERTY.equals(evt.getPropertyName())) {
dataRateField.setValue(formatter.format((Double) value));
- } else if (EVENT_RATE_PROPERTY.equals(evt.getPropertyName())) {
+ } else if (RunModel.EVENT_RATE_PROPERTY.equals(evt.getPropertyName())) {
eventRateField.setValue(formatter.format((Double) value));
}
}
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/SystemStatusTable.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/SystemStatusTable.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/SystemStatusTable.java Tue Mar 10 21:42:05 2015
@@ -1,6 +1,4 @@
package org.hps.monitoring.application;
-
-import static org.hps.monitoring.application.model.SystemStatusTableModel.*;
import java.awt.Color;
import java.awt.Component;
@@ -66,7 +64,7 @@
});
// Date formatting for last changed.
- getColumnModel().getColumn(LAST_CHANGED_COL).setCellRenderer(new DefaultTableCellRenderer() {
+ getColumnModel().getColumn(SystemStatusTableModel.LAST_CHANGED_COL).setCellRenderer(new DefaultTableCellRenderer() {
final SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM-dd-yyyy HH:mm:ss.SSS");
@@ -80,16 +78,16 @@
});
// Button for clearing system statuses.
- getColumnModel().getColumn(RESET_COL).setCellRenderer(new ButtonRenderer("Clear"));
+ getColumnModel().getColumn(SystemStatusTableModel.RESET_COL).setCellRenderer(new ButtonRenderer("Clear"));
addMouseListener(new JTableButtonMouseListener(this));
getColumn("Clearable").setWidth(0);
getColumn("Clearable").setMinWidth(0);
getColumn("Clearable").setMaxWidth(0);
// Column widths.
- getColumnModel().getColumn(ACTIVE_COL).setPreferredWidth(8);
- getColumnModel().getColumn(STATUS_COL).setPreferredWidth(10);
- getColumnModel().getColumn(SYSTEM_COL).setPreferredWidth(10);
+ getColumnModel().getColumn(SystemStatusTableModel.ACTIVE_COL).setPreferredWidth(8);
+ getColumnModel().getColumn(SystemStatusTableModel.STATUS_COL).setPreferredWidth(10);
+ getColumnModel().getColumn(SystemStatusTableModel.SYSTEM_COL).setPreferredWidth(10);
// TODO: Add default width setting for every column.
setAutoCreateRowSorter(true);
@@ -109,7 +107,7 @@
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
- boolean clearable = (Boolean) table.getModel().getValueAt(row, CLEARABLE_COL);
+ boolean clearable = (Boolean) table.getModel().getValueAt(row, SystemStatusTableModel.CLEARABLE_COL);
if (clearable)
return this;
else
Modified: java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
=============================================================================
--- java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java (original)
+++ java/branches/monitoring-app-dev/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java Tue Mar 10 21:42:05 2015
@@ -1,6 +1,5 @@
package org.hps.monitoring.application.model;
-import java.io.File;
import java.util.logging.Level;
import org.hps.record.enums.DataSourceType;
@@ -16,6 +15,7 @@
Configuration configuration;
// Job setting properties.
+ public static final String AIDA_SERVER_NAME_PROPERTY = "AIDAServerName";
public static final String CONDITIONS_TAG_PROPERTY = "ConditionsTag";
public static final String DETECTOR_NAME_PROPERTY = "DetectorName";
public static final String DETECTOR_ALIAS_PROPERTY = "DetectorAlias";
@@ -105,18 +105,14 @@
firePropertyChange(STEERING_TYPE_PROPERTY, oldValue, getSteeringType());
}
- public File getSteeringFile() {
- if (configuration.hasKey(STEERING_FILE_PROPERTY)) {
- return new File(configuration.get(STEERING_FILE_PROPERTY));
- } else {
- return null;
- }
+ public String getSteeringFile() {
+ return configuration.get(STEERING_FILE_PROPERTY);
}
public void setSteeringFile(String steeringFile) {
- File oldValue = getSteeringFile();
+ String oldValue = getSteeringFile();
configuration.set(STEERING_FILE_PROPERTY, steeringFile);
- firePropertyChange(STEERING_FILE_PROPERTY, oldValue, getSteeringFile().getPath());
+ firePropertyChange(STEERING_FILE_PROPERTY, oldValue, getSteeringFile());
}
public String getSteeringResource() {
@@ -402,6 +398,16 @@
public String getConditionsTag() {
return configuration.get(CONDITIONS_TAG_PROPERTY);
+ }
+
+ public void setAIDAServerName(String AIDAServerName) {
+ String oldValue = getAIDAServerName();
+ configuration.set(AIDA_SERVER_NAME_PROPERTY, AIDAServerName);
+ firePropertyChange(AIDA_SERVER_NAME_PROPERTY, oldValue, getAIDAServerName());
+ }
+
+ public String getAIDAServerName() {
+ return configuration.get(AIDA_SERVER_NAME_PROPERTY);
}
public void remove(String property) {
Modified: java/branches/monitoring-app-dev/src/main/resources/org/hps/monitoring/config/default_config.prop
=============================================================================
--- java/branches/monitoring-app-dev/src/main/resources/org/hps/monitoring/config/default_config.prop (original)
+++ java/branches/monitoring-app-dev/src/main/resources/org/hps/monitoring/config/default_config.prop Tue Mar 10 21:42:05 2015
@@ -2,8 +2,9 @@
# Monitoring Application configuration
# job settings
+AIDAServerName=hps-monitoring-app
DetectorName=HPS-Proposal2014-v8-6pt6
-DisconnectOnError=false
+DisconnectOnError=true
DisconnectOnEndRun=true
EventBuilderClassName=org.hps.evio.LCSimEngRunEventBuilder
#LogFileName=
@@ -19,8 +20,9 @@
DataSourceType=ET_SERVER
#DataSourcePath=
ProcessingStage=LCIO
-
+
# ET connection settings
+# FIXME: These should really all be prepended by 'Et' so their purpose is clear.
Blocking=false
EtName=ETBuffer
ChunkSize=1
@@ -33,6 +35,4 @@
StationName=MY_STATION
Verbose=false
WaitMode=TIMED
-WaitTime=1000000000
-
-SaveLayout=false;
+WaitTime=1000000000
|