Author: [log in to unmask]
Date: Mon Nov 10 14:45:43 2014
New Revision: 1476
Log:
Change the event builder setting from a text field to a combo box that lists all available event builders.
Modified:
java/trunk/monitoring-app/pom.xml
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/JobSettingsPanel.java
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java
Modified: java/trunk/monitoring-app/pom.xml
=============================================================================
--- java/trunk/monitoring-app/pom.xml (original)
+++ java/trunk/monitoring-app/pom.xml Mon Nov 10 14:45:43 2014
@@ -136,5 +136,10 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.reflections</groupId>
+ <artifactId>reflections</artifactId>
+ <version>0.9.9-RC1</version>
+ </dependency>
</dependencies>
</project>
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/JobSettingsPanel.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/JobSettingsPanel.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/JobSettingsPanel.java Mon Nov 10 14:45:43 2014
@@ -1,7 +1,25 @@
package org.hps.monitoring.gui;
-import static org.hps.monitoring.gui.Commands.*;
-import static org.hps.monitoring.gui.model.ConfigurationModel.*;
+import static org.hps.monitoring.gui.Commands.AIDA_AUTO_SAVE_CHANGED;
+import static org.hps.monitoring.gui.Commands.DISCONNECT_ON_END_RUN_CHANGED;
+import static org.hps.monitoring.gui.Commands.DISCONNECT_ON_ERROR_CHANGED;
+import static org.hps.monitoring.gui.Commands.EVENT_BUILDER_CHANGED;
+import static org.hps.monitoring.gui.Commands.LOG_LEVEL_CHANGED;
+import static org.hps.monitoring.gui.Commands.LOG_TO_FILE_CHANGED;
+import static org.hps.monitoring.gui.Commands.STEERING_RESOURCE_CHANGED;
+import static org.hps.monitoring.gui.Commands.STEERING_TYPE_CHANGED;
+import static org.hps.monitoring.gui.model.ConfigurationModel.AIDA_AUTO_SAVE_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.AIDA_FILE_NAME_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.DETECTOR_NAME_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.DISCONNECT_ON_END_RUN_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.DISCONNECT_ON_ERROR_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.EVENT_BUILDER_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.LOG_FILE_NAME_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.LOG_LEVEL_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.LOG_TO_FILE_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.STEERING_FILE_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.STEERING_RESOURCE_PROPERTY;
+import static org.hps.monitoring.gui.model.ConfigurationModel.STEERING_TYPE_PROPERTY;
import java.awt.GridBagLayout;
import java.awt.Insets;
@@ -15,7 +33,9 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.logging.Level;
@@ -26,12 +46,14 @@
import javax.swing.JFileChooser;
import javax.swing.JTextField;
+import org.hps.evio.LCSimEventBuilder;
import org.hps.monitoring.enums.SteeringType;
import org.hps.monitoring.gui.model.ConfigurationModel;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
+import org.reflections.Reflections;
/**
* This is the GUI panel for setting job parameters. It is connected to the global configuration via
@@ -47,7 +69,8 @@
private JTextField detectorNameField;
private JCheckBox disconnectOnErrorCheckBox;
private JCheckBox disconnectOnEndRunCheckBox;
- private JTextField eventBuilderField;
+ //private JTextField eventBuilderField;
+ private JComboBox<String> eventBuilderComboBox;
private JTextField logFileNameField;
private JComboBox<?> logLevelComboBox;
private JCheckBox logToFileCheckbox;
@@ -59,7 +82,7 @@
static final String STEERING_PACKAGE = "org/hps/steering/monitoring/";
// FIXME: This should be in the default global config file rather than hard-coded here.
- static final String DEFAULT_EVENT_BUILDER_CLASS_NAME = "org.hps.evio.LCSimTestRunEventBuilder";
+ static final String DEFAULT_EVENT_BUILDER_CLASS_NAME = "org.hps.evio.LCSimEngRunEventBuilder";
// This will connect the GUI component to the underlying global configuration model.
ConfigurationModel configurationModel;
@@ -105,10 +128,10 @@
detectorNameField = addField("Detector Name", 20);
detectorNameField.addPropertyChangeListener("value", this);
- eventBuilderField = addField("Event Builder Class", 30);
- eventBuilderField.setActionCommand(Commands.SET_EVENT_BUILDER);
- eventBuilderField.addPropertyChangeListener("value", this);
-
+ eventBuilderComboBox = addComboBox("LCSim Event Builder", this.findEventBuilderClassNames());
+ eventBuilderComboBox.setActionCommand(Commands.EVENT_BUILDER_CHANGED);
+ eventBuilderComboBox.addActionListener(this);
+
logToFileCheckbox = addCheckBox("Log to File", false, false);
logToFileCheckbox.setEnabled(false);
logToFileCheckbox.setActionCommand(LOG_TO_FILE_CHANGED);
@@ -157,7 +180,7 @@
* Attaches the ActionListener from the main app to specific GUI components in this class.
*/
void addActionListener(ActionListener listener) {
- eventBuilderField.addActionListener(listener);
+ eventBuilderComboBox.addActionListener(listener);
logFileNameField.addActionListener(listener);
logToFileCheckbox.addActionListener(listener);
steeringResourcesComboBox.addActionListener(listener);
@@ -221,7 +244,7 @@
* Get the files with extension "lcsim" from all loaded jar files.
* @return A list of embedded steering file resources.
*/
- public static String[] getAvailableSteeringFileResources(String packageName) {
+ static String[] getAvailableSteeringFileResources(String packageName) {
List<String> resources = new ArrayList<String>();
URL url = JobSettingsPanel.class.getResource("MonitoringApplication.class");
String scheme = url.getProtocol();
@@ -268,7 +291,9 @@
configurationModel.setLogLevel(Level.parse((String) logLevelComboBox.getSelectedItem()));
} else if (AIDA_AUTO_SAVE_CHANGED.equals(e.getActionCommand())) {
configurationModel.setAidaAutoSave(aidaAutoSaveCheckbox.isSelected());
- }
+ } else if (EVENT_BUILDER_CHANGED.equals(e.getActionCommand())) {
+ configurationModel.setEventBuilderClassName((String) eventBuilderComboBox.getSelectedItem());
+ }
}
/**
@@ -286,8 +311,6 @@
if (source == detectorNameField) {
configurationModel.setDetectorName(detectorNameField.getText());
- } else if (source == eventBuilderField) {
- configurationModel.setEventBuilderClassName(eventBuilderField.getText());
} else if (source == steeringFileField) {
configurationModel.setSteeringFile(steeringFileField.getText());
} else if (source == logFileNameField) {
@@ -315,40 +338,39 @@
if (evt.getPropertyName().equals(DETECTOR_NAME_PROPERTY)) {
detectorNameField.setText((String) value);
- }
- if (evt.getPropertyName().equals(AIDA_AUTO_SAVE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(AIDA_AUTO_SAVE_PROPERTY)) {
aidaAutoSaveCheckbox.setSelected((Boolean) value);
- }
- if (evt.getPropertyName().equals(AIDA_FILE_NAME_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(AIDA_FILE_NAME_PROPERTY)) {
aidaSaveFileNameField.setText((String) value);
- }
- if (evt.getPropertyName().equals(DISCONNECT_ON_ERROR_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(DISCONNECT_ON_ERROR_PROPERTY)) {
disconnectOnErrorCheckBox.setSelected((Boolean) value);
- }
- if (evt.getPropertyName().equals(DISCONNECT_ON_END_RUN_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(DISCONNECT_ON_END_RUN_PROPERTY)) {
disconnectOnEndRunCheckBox.setSelected((Boolean) value);
- }
- if (evt.getPropertyName().equals(EVENT_BUILDER_PROPERTY)) {
- eventBuilderField.setText((String) value);
- }
- if (evt.getPropertyName().equals(LOG_FILE_NAME_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(EVENT_BUILDER_PROPERTY)) {
+ eventBuilderComboBox.setSelectedItem((String) value);
+ } else if (evt.getPropertyName().equals(LOG_FILE_NAME_PROPERTY)) {
logFileNameField.setText((String) value);
- }
- if (evt.getPropertyName().equals(LOG_LEVEL_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(LOG_LEVEL_PROPERTY)) {
logLevelComboBox.setSelectedItem(value.toString());
- }
- if (evt.getPropertyName().equals(LOG_TO_FILE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(LOG_TO_FILE_PROPERTY)) {
logToFileCheckbox.setSelected((Boolean) value);
- }
- if (evt.getPropertyName().equals(STEERING_TYPE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(STEERING_TYPE_PROPERTY)) {
steeringTypeComboBox.setSelectedIndex(((SteeringType) value).ordinal());
- }
- if (evt.getPropertyName().equals(STEERING_FILE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(STEERING_FILE_PROPERTY)) {
steeringFileField.setText(((File) value).getPath());
- }
- if (evt.getPropertyName().equals(STEERING_RESOURCE_PROPERTY)) {
+ } else if (evt.getPropertyName().equals(STEERING_RESOURCE_PROPERTY)) {
steeringResourcesComboBox.setSelectedItem(value);
}
}
}
+
+ String[] findEventBuilderClassNames() {
+ Reflections reflections = new Reflections("org.hps");
+ Set<Class<? extends LCSimEventBuilder>> subTypes = reflections.getSubTypesOf(LCSimEventBuilder.class);
+ Set<String> classNames = new HashSet<String>();
+ for (Class<? extends LCSimEventBuilder> type : subTypes) {
+ classNames.add(type.getCanonicalName());
+ }
+ return classNames.toArray(new String[classNames.size()]);
+ }
}
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java Mon Nov 10 14:45:43 2014
@@ -1708,4 +1708,5 @@
private static EtConnection fromConfigurationModel(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());
}
+
}
|