@@ -162,7 +162,25 @@ define(["nbextensions/widgets/widgets/js/manager",
162
162
this . trigger ( 'comm:close' ) ;
163
163
this . close ( true ) ;
164
164
} ,
165
-
165
+ _deserialize_state : function ( state ) {
166
+ /**
167
+ * Deserialize fields that have a custom serializer.
168
+ */
169
+ var serializers = this . constructor . serializers ;
170
+ if ( serializers ) {
171
+ var deserialized = { } ;
172
+ for ( var k in state ) {
173
+ if ( serializers [ k ] && serializers [ k ] . deserialize ) {
174
+ deserialized [ k ] = ( serializers [ k ] . deserialize ) ( state [ k ] , this ) ;
175
+ } else {
176
+ deserialized [ k ] = state [ k ] ;
177
+ }
178
+ }
179
+ return deserialized ;
180
+ } else {
181
+ return state ;
182
+ }
183
+ } ,
166
184
_handle_comm_msg : function ( msg ) {
167
185
/**
168
186
* Handle incoming comm msg.
@@ -180,16 +198,7 @@ define(["nbextensions/widgets/widgets/js/manager",
180
198
for ( var i = 0 ; i < buffer_keys . length ; i ++ ) {
181
199
state [ buffer_keys [ i ] ] = buffers [ i ] ;
182
200
}
183
-
184
- // deserialize fields that have custom deserializers
185
- var serializers = that . constructor . serializers ;
186
- if ( serializers ) {
187
- for ( var k in state ) {
188
- if ( serializers [ k ] && serializers [ k ] . deserialize ) {
189
- state [ k ] = ( serializers [ k ] . deserialize ) ( state [ k ] , that ) ;
190
- }
191
- }
192
- }
201
+ state = that . _deserialize_state ( state ) ;
193
202
return utils . resolve_promises_dict ( state ) ;
194
203
} ) . then ( function ( state ) {
195
204
return that . set_state ( state ) ;
@@ -435,7 +444,7 @@ define(["nbextensions/widgets/widgets/js/manager",
435
444
* Serialize the model. See the types.js deserialization function
436
445
* and the kernel-side serializer/deserializer
437
446
*/
438
- return "IPY_MODEL_" + this . id ;
447
+ return "IPY_MODEL_" + this . id ;
439
448
}
440
449
} ) ;
441
450
widgetmanager . WidgetManager . register_widget_model ( 'WidgetModel' , WidgetModel ) ;
0 commit comments