Author: [log in to unmask]
Date: Sat Mar 7 16:01:51 2015
New Revision: 2357
Log:
Fix up problems with updating data source combo box. Remove ConfigurationListener as it is not needed.
Removed:
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationListener.java
Modified:
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/Configuration.java
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/DataSourceComboBox.java Sat Mar 7 16:01:51 2015
@@ -11,7 +11,6 @@
import javax.swing.JComboBox;
import org.hps.monitoring.application.DataSourceComboBox.DataSourceItem;
-import org.hps.monitoring.application.model.ConfigurationListener;
import org.hps.monitoring.application.model.ConfigurationModel;
import org.hps.monitoring.application.model.ConnectionStatus;
import org.hps.monitoring.application.model.ConnectionStatusModel;
@@ -28,7 +27,7 @@
*
* @author Jeremy McCormick <[log in to unmask]>
*/
-class DataSourceComboBox extends JComboBox<DataSourceItem> implements PropertyChangeListener, ActionListener, ConfigurationListener {
+class DataSourceComboBox extends JComboBox<DataSourceItem> implements PropertyChangeListener, ActionListener{
ConnectionStatusModel connectionModel;
ConfigurationModel configurationModel;
@@ -65,16 +64,9 @@
setEditable(false);
this.configurationModel = configurationModel;
connectionModel.addPropertyChangeListener(this);
- configurationModel.addConfigurationListener(this);
+ configurationModel.addPropertyChangeListener(this);
}
- void setSelectedItem() {
- DataSourceItem item = findItem(configurationModel.getDataSourcePath(), getDataSourceType(configurationModel.getDataSourcePath()));
- if (item != null) {
- setSelectedItem(item);
- }
- }
-
boolean contains(DataSourceItem item) {
return ((DefaultComboBoxModel<DataSourceItem>) getModel()).getIndexOf(item) != -1;
}
@@ -91,12 +83,35 @@
setEnabled(false);
}
} else if (evt.getPropertyName().equals(ConfigurationModel.DATA_SOURCE_PATH_PROPERTY)) {
- String path = configurationModel.getDataSourcePath();
- DataSourceType type = getDataSourceType(path);
- addDataSourceItem(path, type);
- setSelectedItem();
+ if (configurationModel.hasValidProperty(ConfigurationModel.DATA_SOURCE_TYPE_PROPERTY)) {
+ String path = configurationModel.getDataSourcePath();
+ DataSourceType type = getDataSourceType(path);
+ if (type.isFile()) {
+ DataSourceItem item = findItem(path, type);
+ if (item == null) {
+ item = addDataSourceItem(path, type);
+ }
+ if (configurationModel.getDataSourceType().isFile()) {
+ setSelectedItem(item);
+ }
+ }
+ }
} else if (evt.getPropertyName().equals(ConfigurationModel.DATA_SOURCE_TYPE_PROPERTY)) {
- setSelectedItem();
+ if (configurationModel.getDataSourceType() == DataSourceType.ET_SERVER) {
+ DataSourceItem item = findEtItem();
+ if (item == null) {
+ item = new DataSourceItem(configurationModel.getEtPath(), DataSourceType.ET_SERVER);
+ }
+ setSelectedItem(item);
+ } else {
+ if (configurationModel.hasValidProperty(ConfigurationModel.DATA_SOURCE_PATH_PROPERTY)) {
+ DataSourceItem item = findItem(configurationModel.getDataSourcePath(), configurationModel.getDataSourceType());
+ if (item == null) {
+ item = addDataSourceItem(configurationModel.getDataSourcePath(), configurationModel.getDataSourceType());
+ }
+ setSelectedItem(item);
+ }
+ }
} else if (evt.getPropertyName().equals(ConfigurationModel.HOST_PROPERTY)) {
updateEtItem();
} else if (evt.getPropertyName().equals(ConfigurationModel.ET_NAME_PROPERTY)) {
@@ -125,46 +140,18 @@
// Update the model with data source settings.
configurationModel.removePropertyChangeListener(this);
DataSourceItem item = (DataSourceItem) getSelectedItem();
- configurationModel.setDataSourceType(item.type);
- if (item.type != DataSourceType.ET_SERVER) {
- configurationModel.setDataSourcePath(item.name);
+ if (item != null) {
+ configurationModel.setDataSourceType(item.type);
+ if (item.type != DataSourceType.ET_SERVER) {
+ configurationModel.setDataSourcePath(item.name);
+ }
}
} finally {
configurationModel.addPropertyChangeListener(this);
}
}
}
-
- public void configurationChanged(ConfigurationModel configurationModel) {
-
- // Clear the data source list.
- removeAllItems();
-
- // Add the default ET item.
- this.removeActionListener(this);
- try {
- addItem(new DataSourceItem(configurationModel.getEtPath(), DataSourceType.ET_SERVER));
-
- // Add a file source if one has been provided.
- if (configurationModel.getDataSourcePath() != null) {
- // Add an item for this data source.
- DataSourceItem newItem = new DataSourceItem(configurationModel.getDataSourcePath(), configurationModel.getDataSourceType());
- //System.out.println("adding new item " + newItem.name + " " + newItem.type);
- addItem(newItem);
- if (configurationModel.getDataSourceType().isFile()) {
- //System.out.println("setting selected");
- setSelectedItem(newItem);
- }
- }
- } finally {
- this.addActionListener(this);
- }
-
- // Don't add as property change listener until after configuration has been initialized.
- configurationModel.removePropertyChangeListener(this);
- configurationModel.addPropertyChangeListener(this);
- }
-
+
public void addItem(DataSourceItem item) {
// Do not add invalid looking items.
if (item.name == null || item.name.length() == 0) {
@@ -196,15 +183,19 @@
return null;
}
- void addDataSourceItem(String path, DataSourceType type) {
+ DataSourceItem addDataSourceItem(String path, DataSourceType type) {
DataSourceItem newItem = new DataSourceItem(path, type);
- if (!contains(newItem)) {
- addItem(newItem);
- }
+ addItem(newItem);
+ return newItem;
}
void updateEtItem() {
DataSourceItem item = findEtItem();
- item.name = configurationModel.getEtPath();
+ if (item == null) {
+ item = new DataSourceItem(configurationModel.getEtPath(), DataSourceType.ET_SERVER);
+ addItem(item);
+ } else {
+ item.name = configurationModel.getEtPath();
+ }
}
}
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplication.java Sat Mar 7 16:01:51 2015
@@ -280,6 +280,10 @@
* @param configuration The new configuration.
*/
void loadConfiguration(Configuration configuration) {
+
+ // HACK: Clear data source combo box for new config.
+ frame.dataSourceComboBox.removeAllItems();
+
// Set the Configuration on the ConfigurationModel which will trigger all the PropertyChangelListeners.
configurationModel.setConfiguration(configuration);
if (configuration.getFile() != null)
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/MonitoringApplicationFrame.java Sat Mar 7 16:01:51 2015
@@ -120,6 +120,7 @@
// Vertical split pane in left panel.
leftSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, runPanel, tableTabbedPane);
+ leftSplitPane.setResizeWeight(0.5);
leftPanel.add(leftSplitPane, BorderLayout.CENTER);
// Create the right panel.
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/Configuration.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/Configuration.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/Configuration.java Sat Mar 7 16:01:51 2015
@@ -75,7 +75,11 @@
* @return True if configuration has value for the key.
*/
boolean hasKey(String key) {
- return properties.getProperty(key) != null;
+ try {
+ return properties.containsKey(key);
+ } catch (java.lang.NullPointerException e) {
+ return false;
+ }
}
/**
@@ -164,7 +168,7 @@
* @param key The properties key.
* @return True if properties key is valid.
*/
- private boolean checkKey(String key) {
+ boolean checkKey(String key) {
return hasKey(key) && properties.getProperty(key) != null;
}
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationModel.java Sat Mar 7 16:01:51 2015
@@ -1,8 +1,6 @@
package org.hps.monitoring.application.model;
import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
import java.util.logging.Level;
import org.hps.record.enums.DataSourceType;
@@ -16,8 +14,6 @@
public final class ConfigurationModel extends AbstractModel {
Configuration configuration;
-
- List<ConfigurationListener> listeners = new ArrayList<ConfigurationListener>();
// Job setting properties.
public static final String DETECTOR_NAME_PROPERTY = "DetectorName";
@@ -69,22 +65,11 @@
fireModelChanged();
}
- public void addConfigurationListener(ConfigurationListener listener) {
- listeners.add(listener);
- }
-
public void setConfiguration(Configuration configuration) {
this.configuration = configuration;
fireModelChanged();
- fireConfigurationChanged();
- }
-
- void fireConfigurationChanged() {
- for (ConfigurationListener listener : listeners) {
- listener.configurationChanged(this);
- }
- }
-
+ }
+
public Configuration getConfiguration() {
return this.configuration;
}
@@ -423,7 +408,7 @@
}
public boolean hasValidProperty(String key) {
- return configuration.hasKey(key) && configuration.get(key) != null;
+ return configuration.checkKey(key);
}
@Override
|