Author: [log in to unmask]
Date: Thu Mar 5 10:14:30 2015
New Revision: 2263
Log:
More updates to monitoring branch.
Removed:
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourcePanel.java
Modified:
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/Main.java
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/Commands.java
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationActionListener.java
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsPanel.java
Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/Main.java
=============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/Main.java (original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/Main.java Thu Mar 5 10:14:30 2015
@@ -16,7 +16,6 @@
/**
* This is the front-end for running the monitoring app via a {@link #main(String[])} method.
*/
-// FIXME: Move to org.hps.monitoring instead of gui package.
public class Main {
public static void main(String[] args) {
@@ -49,54 +48,5 @@
}
MonitoringApplication.create(configuration);
- }
-
- /**
- * Run the monitoring application from the command line.
- * @param args The command line arguments.
- */
- /*
- public static void main(String[] args) {
-
- // Set up command line parsing.
- Options options = new Options();
- options.addOption(new Option("h", false, "Print help."));
- options.addOption(new Option("c", true, "Load a properties file with configuration parameters."));
- CommandLineParser parser = new PosixParser();
-
- // Parse command line arguments.
- final CommandLine cl;
- try {
- cl = parser.parse(options, args);
- } catch (ParseException e) {
- throw new RuntimeException("Problem parsing command line options.", e);
- }
-
- // Print help and exit.
- if (cl.hasOption("h")) {
- HelpFormatter help = new HelpFormatter();
- help.printHelp(" ", options);
- System.exit(1);
- }
-
- // Run the application on the Swing EDT.
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
-
- // Create the application class.
- MonitoringApplication app = new MonitoringApplication();
-
- // Load the connection settings.
- if (cl.hasOption("c")) {
- app.setConfiguration(new Configuration(new File(cl.getOptionValue("c"))));
- }
-
- app.initialize();
-
- // Set the app to be visible.
- app.setVisible(true);
- }
- });
- }
- */
+ }
}
Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/Commands.java
=============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/Commands.java (original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/Commands.java Thu Mar 5 10:14:30 2015
@@ -12,11 +12,10 @@
static final String SETTINGS_SHOW = "settingsShow";
static final String OPEN_FILE = "openFile";
+ static final String DATA_SOURCE_CHANGED = "dataSourceChanged";
////////////////////////////////////////////
- static final String AIDA_AUTO_SAVE = "aidaAutoSave";
- static final String AIDA_AUTO_SAVE_CHANGED = "aidaAutoSaveChanged";
static final String BLOCKING_CHANGED = "blockingChanged";
static final String CHOOSE_COMPACT_FILE = "chooseCompactFile";
static final String CHOOSE_LOG_FILE = "chooseLogFile";
Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java
=============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java (original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/ConnectionStatusPanel.java Thu Mar 5 10:14:30 2015
@@ -14,7 +14,6 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
-import javax.swing.SwingUtilities;
import org.hps.monitoring.application.model.ConnectionStatusModel;
Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java
=============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java (original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java Thu Mar 5 10:14:30 2015
@@ -1,6 +1,7 @@
package org.hps.monitoring.application;
import java.awt.Dimension;
+import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -9,6 +10,7 @@
import javax.swing.JComboBox;
import org.hps.monitoring.application.DataSourceComboBox.DataSourceItem;
+import org.hps.monitoring.application.model.ConfigurationModel;
import org.hps.monitoring.application.model.ConnectionStatusModel;
import org.hps.record.enums.DataSourceType;
@@ -17,22 +19,33 @@
* @author Jeremy McCormick <[log in to unmask]>
*
*/
-public class DataSourceComboBox extends JComboBox<DataSourceItem> implements PropertyChangeListener {
+public class DataSourceComboBox extends JComboBox<DataSourceItem> implements PropertyChangeListener, ActionListener {
ConnectionStatusModel connectionModel;
+ ConfigurationModel configurationModel;
- DataSourceComboBox(ConnectionStatusModel connectionModel, ActionListener listener) {
+ DataSourceComboBox(
+ ConfigurationModel configurationModel,
+ ConnectionStatusModel connectionModel,
+ ActionListener listener) {
addActionListener(listener);
- setPreferredSize(new Dimension(400, this.getPreferredSize().height));
- this.connectionModel = connectionModel;
+ setActionCommand(Commands.DATA_SOURCE_CHANGED);
+ setPreferredSize(new Dimension(400, this.getPreferredSize().height));
+ setEditable(false);
connectionModel.addPropertyChangeListener(this);
+ configurationModel.addPropertyChangeListener(this);
+ this.configurationModel = configurationModel;
}
public void addItem(DataSourceItem item) {
// Do not add duplicates.
- if (((DefaultComboBoxModel<DataSourceItem>)getModel()).getIndexOf(item) == -1) {
+ if (!contains(item)) {
super.addItem(item);
}
+ }
+
+ boolean contains(DataSourceItem item) {
+ return ((DefaultComboBoxModel<DataSourceItem>)getModel()).getIndexOf(item) != -1;
}
static class DataSourceItem {
@@ -42,6 +55,7 @@
DataSourceItem(String name, DataSourceType type) {
this.type = type;
+ this.name = name;
}
public String toString() {
@@ -70,6 +84,71 @@
} else {
setEnabled(false);
}
- }
+ } else if (evt.getPropertyName().equals(ConfigurationModel.DATA_SOURCE_PATH_PROPERTY)) {
+ System.out.println("data source path property changed");
+ addDataSourceItem();
+ }
}
-}
+
+ public void actionPerformed(ActionEvent evt) {
+ if (evt.getActionCommand().equals(Commands.DATA_SOURCE_CHANGED)) {
+ try {
+ configurationModel.removePropertyChangeListener(this);
+ DataSourceItem item = (DataSourceItem) getSelectedItem();
+ configurationModel.setDataSourceType(item.type);
+ if (item.type != DataSourceType.ET_SERVER) {
+ configurationModel.setDataSourcePath(item.name);
+ }
+ } finally {
+ configurationModel.addPropertyChangeListener(this);
+ }
+ }
+ }
+
+ void addDataSourceItem() {
+
+ DataSourceType type = configurationModel.getDataSourceType();
+ String path = configurationModel.getDataSourcePath();
+
+ // Remove an existing ET item in case the settings have changed.
+ if (hasEtItem()) {
+ removeEtItem();
+ }
+
+ // Always make sure there is an ET server available as a data source.
+ addItem(new DataSourceItem(getEtName(), DataSourceType.ET_SERVER));
+
+ // Add a data source for a file.
+ if (!type.equals(DataSourceType.ET_SERVER)) {
+ DataSourceItem newItem = new DataSourceItem(path, type);
+ if (!contains(newItem)) {
+ addItem(newItem);
+ setSelectedItem(newItem);
+ }
+ }
+ }
+
+ void removeEtItem() {
+ for (int i=0; i<this.getItemCount(); i++) {
+ DataSourceItem item = this.getItemAt(i);
+ if (item.type == DataSourceType.ET_SERVER) {
+ this.removeItem(item);
+ break;
+ }
+ }
+ }
+
+ boolean hasEtItem() {
+ for (int i=0; i<this.getItemCount(); i++) {
+ DataSourceItem item = this.getItemAt(i);
+ if (item.type == DataSourceType.ET_SERVER) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ String getEtName() {
+ return configurationModel.getEtName() + "@" + configurationModel.getHost() + ":" + configurationModel.getPort();
+ }
+}
Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationActionListener.java
=============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationActionListener.java (original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationActionListener.java Thu Mar 5 10:14:30 2015
@@ -59,6 +59,7 @@
String cmd = e.getActionCommand();
if (CONNECT.equals(cmd)) {
+ // FIXME: Can the application run this in a separate thread instead?
// Run the start session method on a separate thread.
new Thread() {
public void run() {
Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
=============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java (original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java Thu Mar 5 10:14:30 2015
@@ -81,7 +81,11 @@
topPanel.add(sep);
// Add the data source combo box.
- JComboBox<DataSourceItem> dataSourceComboBox = new DataSourceComboBox(application.connectionModel, application.actionListener);
+ JComboBox<DataSourceItem> dataSourceComboBox =
+ new DataSourceComboBox(
+ application.configurationModel,
+ application.connectionModel,
+ application.actionListener);
topPanel.add(dataSourceComboBox);
// Create the bottom panel.
Modified: java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsPanel.java
=============================================================================
--- java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsPanel.java (original)
+++ java/branches/monitoring-app-HPSJAVA-442/src/main/java/org/hps/monitoring/application/SettingsPanel.java Thu Mar 5 10:14:30 2015
@@ -22,7 +22,6 @@
JTabbedPane tabs;
JobSettingsPanel jobPanel;
ConnectionSettingsPanel connectionPanel;
- DataSourcePanel dataSourcePanel;
static final String OKAY_COMMAND = "settingsOkay";
JDialog parent;
@@ -33,33 +32,25 @@
connectionPanel = new ConnectionSettingsPanel();
jobPanel = new JobSettingsPanel();
- dataSourcePanel = new DataSourcePanel();
// Push configuration to sub-components.
connectionPanel.setConfigurationModel(configurationModel);
jobPanel.setConfigurationModel(configurationModel);
- dataSourcePanel.setConfigurationModel(configurationModel);
// Add ActionListener to sub-components.
connectionPanel.addActionListener(listener);
jobPanel.addActionListener(listener);
- dataSourcePanel.addActionListener(listener);
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
tabs = new JTabbedPane();
tabs.addTab("Connection Settings", connectionPanel);
tabs.addTab("Job Settings", jobPanel);
- tabs.addTab("Data Source", dataSourcePanel);
add(tabs);
JButton okayButton = new JButton("Okay");
okayButton.setActionCommand(OKAY_COMMAND);
okayButton.addActionListener(this);
-
- //defaultsButton = new JButton("Defaults");
- //defaultsButton.setActionCommand(Commands.LOAD_DEFAULT_SETTINGS);
- //defaultsButton.addActionListener(this);
add(Box.createRigidArea(new Dimension(1, 5)));
JPanel buttonsPanel = new JPanel();
@@ -70,18 +61,6 @@
add(Box.createRigidArea(new Dimension(1, 5)));
}
- ConnectionSettingsPanel getConnectionPanel() {
- return connectionPanel;
- }
-
- JobSettingsPanel getJobSettingsPanel() {
- return jobPanel;
- }
-
- DataSourcePanel getDataSourcePanel() {
- return dataSourcePanel;
- }
-
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals(OKAY_COMMAND)) {
|