1
1
/*******************************************************************************
2
- * Copyright (c) 2011-2018 Oak Ridge National Laboratory.
2
+ * Copyright (c) 2011-2022 Oak Ridge National Laboratory.
3
3
* All rights reserved. This program and the accompanying materials
4
4
* are made available under the terms of the Eclipse Public License v1.0
5
5
* which accompanies this distribution, and is available at
@@ -81,6 +81,10 @@ public class DataBrowserRepresentation extends RegionBaseRepresentation<Pane, Da
81
81
*/
82
82
private volatile Controller controller ;
83
83
84
+ private final WidgetPropertyListener <Instant > config_dialog_listener = (p , o , n ) -> plot .getPlot ().showConfigurationDialog ();
85
+ private final WidgetPropertyListener <Instant > open_databrowser_listener = (p , o , n ) ->
86
+ DataBrowserRepresentation .openFullDataBrowser (model , model_widget .getMacrosOrProperties (), model_widget .propShowToolbar ().getValue ());
87
+ private final WidgetPropertyListener <Instant > refresh_plot_listener = (p , o , n ) -> controller .refresh ();
84
88
85
89
/** Listener to model's selected sample, updates widget.propSelectionValue() */
86
90
private class ModelSampleSelectionListener implements ModelListener
@@ -162,9 +166,9 @@ protected void registerListeners()
162
166
163
167
if (! toolkit .isEditMode ())
164
168
{
165
- model_widget .runtimePropConfigure ().addPropertyListener (( p , o , n ) -> plot . getPlot (). showConfigurationDialog () );
166
- model_widget .runtimePropOpenFull ().addPropertyListener (( p , o , n ) ->
167
- openFullDataBrowser ( model , model_widget .getMacrosOrProperties (), model_widget . propShowToolbar (). getValue ()) );
169
+ model_widget .runtimePropConfigure ().addPropertyListener (config_dialog_listener );
170
+ model_widget .runtimePropOpenFull ().addPropertyListener (open_databrowser_listener );
171
+ model_widget .runtimePropRefreshPlot (). addPropertyListener ( refresh_plot_listener );
168
172
169
173
// Track selected sample?
170
174
// 'selection_value_pv' must be set when runtime starts,
@@ -181,6 +185,14 @@ protected void unregisterListeners()
181
185
model_widget .propHeight ().removePropertyListener (sizeChangedListener );
182
186
model_widget .propShowToolbar ().removePropertyListener (optsChangedListener );
183
187
model_widget .propFile ().removePropertyListener (fileChangedListener );
188
+
189
+ if (! toolkit .isEditMode ())
190
+ {
191
+ model_widget .runtimePropConfigure ().removePropertyListener (config_dialog_listener );
192
+ model_widget .runtimePropOpenFull ().removePropertyListener (open_databrowser_listener );
193
+ model_widget .runtimePropRefreshPlot ().removePropertyListener (refresh_plot_listener );
194
+ }
195
+
184
196
super .unregisterListeners ();
185
197
}
186
198
0 commit comments