@@ -108,32 +108,28 @@ export
108108 this . set ( '_data' , this . data_model . dataset ) ;
109109 this . save_changes ( ) ;
110110 break ;
111+ case ( 'cell-edit-event' ) :
112+ // Update data in widget model
113+ const newData = this . get ( '_data' ) ;
114+ newData . data [ msg . row ] [ msg . columnIndex ] = msg . value ;
115+ this . set ( '_data' , newData ) ;
116+
117+ this . comm . send ( {
118+ method : 'custom' ,
119+ content : {
120+ event_type : 'cell-changed' ,
121+ region : msg . region ,
122+ row : msg . row ,
123+ column_index : msg . columnIndex ,
124+ value : msg . value
125+ }
126+ } , null ) ;
127+ break ;
111128 default :
112129 throw 'unreachable' ;
113130 }
114- } )
115-
116- this . data_model . changed . connect ( ( sender : ViewBasedJSONModel , args : any ) => {
117- if ( args . type === 'cells-changed' ) {
118- const value = this . data_model . data ( args . region , args . row , args . column ) ;
119- const datasetRow = this . data_model . getDatasetRowFromView ( args . region , args . row ) ;
120- // Getting a copy of the data and update the front-end model in place
121- const newData = this . get ( '_data' ) ;
122- newData . data [ datasetRow ] [ args . column ] = value ;
123- this . set ( '_data' , newData ) ;
124- // Update backend with new data
125- this . comm . send ( {
126- method : 'custom' ,
127- content : {
128- event_type : 'cell-changed' ,
129- region : args . region ,
130- row : datasetRow ,
131- column_index : args . column ,
132- value : value
133- }
134- } , null ) ;
135- }
136131 } ) ;
132+
137133 this . updateTransforms ( ) ;
138134 this . trigger ( 'data-model-changed' ) ;
139135 this . updateSelectionModel ( ) ;
@@ -269,7 +265,7 @@ function unpack_data(
269265}
270266
271267export
272- class DataGridView extends DOMWidgetView {
268+ class DataGridView extends DOMWidgetView {
273269 _createElement ( tagName : string ) {
274270 this . pWidget = new JupyterPhosphorPanelWidget ( { view : this } ) ;
275271 // initialize to light theme unless set earlier
@@ -327,7 +323,7 @@ class DataGridView extends DOMWidgetView {
327323 this . model . set ( 'column_widths' , JSONExt . deepCopy ( this . grid . columnWidths ) ) ;
328324 this . model . save_changes ( ) ;
329325 } ) ;
330-
326+
331327 this . model . on ( 'data-model-changed' , ( ) => {
332328 this . grid . dataModel = this . model . data_model ;
333329 } ) ;
@@ -410,7 +406,7 @@ class DataGridView extends DOMWidgetView {
410406
411407 return Promise . all ( promises ) ;
412408 }
413-
409+
414410 public updateGridStyle ( ) {
415411 this . grid . updateGridStyle ( ) ;
416412 }
@@ -430,9 +426,9 @@ class DataGridView extends DOMWidgetView {
430426 private updateGridRenderers ( ) {
431427 const defaultRenderer = this . default_renderer . renderer ;
432428 const renderers : Dict < CellRenderer > = { } ;
433- Object . entries ( this . renderers ) . forEach ( ( [ name , rendererView ] ) => {
434- renderers [ name ] = rendererView . renderer ;
435- }
429+ Object . entries ( this . renderers ) . forEach ( ( [ name , rendererView ] ) => {
430+ renderers [ name ] = rendererView . renderer ;
431+ }
436432 ) ;
437433 this . grid . defaultRenderer = defaultRenderer ;
438434 this . grid . renderers = renderers ;
@@ -510,9 +506,9 @@ namespace Private {
510506 // Updating the primary key to account for a multiIndex primary key.
511507 const primaryKey = data . schema . primaryKey . map ( ( key : string ) => {
512508 for ( let i = 0 ; i < data . schema . fields . length ; i ++ ) {
513- const curFieldKey = Array . isArray ( key )
514- ? data . schema . fields [ i ] . name [ 0 ]
515- : data . schema . fields [ i ] . name ;
509+ const curFieldKey = Array . isArray ( key )
510+ ? data . schema . fields [ i ] . name [ 0 ]
511+ : data . schema . fields [ i ] . name ;
516512 const newKey = Array . isArray ( key ) ? key [ 0 ] : key ;
517513
518514 if ( curFieldKey == newKey ) {
0 commit comments