Author: [log in to unmask] Date: Fri Mar 6 21:55:35 2015 New Revision: 2322 Log: Add listener for notification when configuration is reset. Added: 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/model/ConfigurationModel.java Added: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationListener.java ============================================================================= --- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationListener.java (added) +++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/model/ConfigurationListener.java Fri Mar 6 21:55:35 2015 @@ -0,0 +1,6 @@ +package org.hps.monitoring.application.model; + +public interface ConfigurationListener { + + public void configurationChanged(ConfigurationModel model); +} 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 Fri Mar 6 21:55:35 2015 @@ -1,6 +1,5 @@ package org.hps.monitoring.application.model; -import java.awt.event.ActionListener; import java.io.File; import java.util.ArrayList; import java.util.List; @@ -17,6 +16,8 @@ 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"; @@ -53,6 +54,9 @@ public static final String WAIT_MODE_PROPERTY = "WaitMode"; public static final String WAIT_TIME_PROPERTY = "WaitTime"; public static final String PRESCALE_PROPERTY = "Prescale"; + + // Action command to get notified after configuration change is performed. + public static final String CONFIGURATION_CHANGED = "configurationChanged"; static final String[] CONFIG_PROPERTIES = AbstractModel.getPropertyNames(ConfigurationModel.class); @@ -64,10 +68,21 @@ this.configuration = configuration; 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() {