@@ -13,6 +13,7 @@ class SignalNotifier(param.Parameterized):
1313 manual_curation_updated = param .Event ()
1414 time_info_updated = param .Event ()
1515 active_view_updated = param .Event ()
16+ unit_color_changed = param .Event ()
1617
1718 def __init__ (self , view = None ):
1819 param .Parameterized .__init__ (self )
@@ -41,6 +42,9 @@ def notify_active_view_updated(self):
4142 # views
4243 self .param .trigger ("active_view_updated" )
4344
45+ def notify_unit_color_changed (self ):
46+ self .param .trigger ("unit_color_changed" )
47+
4448
4549class SignalHandler (param .Parameterized ):
4650 def __init__ (self , controller , parent = None ):
@@ -61,6 +65,7 @@ def connect_view(self, view):
6165 view .notifier .param .watch (self .on_manual_curation_updated , "manual_curation_updated" )
6266 view .notifier .param .watch (self .on_time_info_updated , "time_info_updated" )
6367 view .notifier .param .watch (self .on_active_view_updated , "active_view_updated" )
68+ view .notifier .param .watch (self .on_unit_color_changed , "unit_color_changed" )
6469
6570 def on_spike_selection_changed (self , param ):
6671 if not self ._active :
@@ -112,6 +117,14 @@ def on_active_view_updated(self, param):
112117 view ._panel_view_is_active = True
113118 else :
114119 view ._panel_view_is_active = False
120+
121+ def on_unit_color_changed (self , param ):
122+ if not self ._active :
123+ return
124+ for view in self .controller .views :
125+ if param .obj .view == view :
126+ continue
127+ view .on_unit_color_changed ()
115128
116129param_type_map = {
117130 "float" : param .Number ,
@@ -125,16 +138,16 @@ class SettingsProxy:
125138 # for instance self.settings['my_params'] instead of self.settings.my_params
126139 # self.settings['my_params'] = value instead of self.settings.my_params = value
127140 def __init__ (self , myparametrized ):
128- self ._parametrized = myparametrized
141+ self ._parameterized = myparametrized
129142
130143 def __getitem__ (self , key ):
131- return getattr (self ._parametrized , key )
144+ return getattr (self ._parameterized , key )
132145
133146 def __setitem__ (self , key , value ):
134- self ._parametrized .param .update (** {key :value })
147+ self ._parameterized .param .update (** {key :value })
135148
136149 def keys (self ):
137- return list (p for p in self ._parametrized .param if p != "name" )
150+ return list (p for p in self ._parameterized .param if p != "name" )
138151
139152
140153def create_dynamic_parameterized (settings ):
@@ -167,7 +180,7 @@ def create_settings(view):
167180
168181def listen_setting_changes (view ):
169182 for setting_data in view ._settings :
170- view .settings ._parametrized .param .watch (view .on_settings_changed , setting_data ["name" ])
183+ view .settings ._parameterized .param .watch (view .on_settings_changed , setting_data ["name" ])
171184
172185
173186
@@ -216,7 +229,7 @@ def make_views(self):
216229
217230 tabs = [("📊" , view .layout )]
218231 if view_class ._settings is not None :
219- settings = pn .Param (view .settings ._parametrized , sizing_mode = "stretch_height" ,
232+ settings = pn .Param (view .settings ._parameterized , sizing_mode = "stretch_height" ,
220233 name = f"{ view_name .capitalize ()} settings" )
221234 if view_class ._need_compute :
222235 compute_button = pn .widgets .Button (name = "Compute" , button_type = "primary" )
@@ -351,8 +364,14 @@ def start_server(mainwindow, address="localhost", port=0):
351364
352365 pn .config .sizing_mode = "stretch_width"
353366
354- mainwindow .main_layout .servable ()
367+ # mainwindow.main_layout.servable()
368+ # TODO alessio : find automatically a port when port = 0
355369
370+ if address != "localhost" :
371+ websocket_origin = f"{ address } :{ port } "
372+ else :
373+ websocket_origin = None
374+
356375 server = pn .serve ({"/" : mainwindow .main_layout }, address = address , port = port ,
357- show = False , start = True , dev = True , autoreload = True ,
376+ show = False , start = True , dev = True , autoreload = True ,websocket_origin = websocket_origin ,
358377 title = "SpikeInterface GUI" )
0 commit comments