Skip to content

Commit 863cce4

Browse files
ianthomas23martinRenou
authored andcommitted
Use @observe("_transforms") rather than custom message
1 parent 31e03b9 commit 863cce4

File tree

2 files changed

+22
-23
lines changed

2 files changed

+22
-23
lines changed

ipydatagrid/datagrid.py

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
List,
2222
Unicode,
2323
default,
24+
observe,
2425
validate,
2526
)
2627

@@ -1148,24 +1149,6 @@ def _handle_comm_msg(self, _, content, _buffs):
11481149

11491150
self.send(answer, buffers)
11501151

1151-
elif event_type == "frontend-transforms":
1152-
# Transforms is an array of dicts.
1153-
frontend_transforms = content.get("transforms")
1154-
1155-
self._transformed_data = None
1156-
data = self.__dataframe_reference
1157-
1158-
if frontend_transforms:
1159-
self._transformed_data = self._apply_frontend_transforms(
1160-
frontend_transforms, data
1161-
)
1162-
data = self._transformed_data
1163-
1164-
self._row_count = len(data) # Sync to frontend.
1165-
1166-
# Should only request a tick if the transforms have changed.
1167-
self.tick()
1168-
11691152
elif event_type == "unique-values-request":
11701153
column = content.get("column")
11711154
unique = (
@@ -1176,3 +1159,22 @@ def _handle_comm_msg(self, _, content, _buffs):
11761159
"values": unique,
11771160
}
11781161
self.send(answer)
1162+
1163+
@observe("_transforms")
1164+
def _on_transforms_changed(self, change):
1165+
# Transforms is an array of dicts.
1166+
frontend_transforms = change["new"]
1167+
1168+
self._transformed_data = None
1169+
data = self.__dataframe_reference
1170+
1171+
if frontend_transforms:
1172+
self._transformed_data = self._apply_frontend_transforms(
1173+
frontend_transforms, data
1174+
)
1175+
data = self._transformed_data
1176+
1177+
self._row_count = len(data) # Sync to frontend.
1178+
1179+
# Should only request a tick if the transforms have changed.
1180+
self.tick()

js/datagrid.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,12 @@ export class DataGridModel extends DOMWidgetModel {
260260

261261
updateTransforms() {
262262
const transforms = this.get('_transforms');
263-
if (this.get('_transform_on_backend')) {
264-
const msg = { type: 'frontend-transforms', transforms: transforms };
265-
this.send(msg);
266-
} else {
263+
if (!this.get('_transform_on_backend')) {
267264
if (this.selectionModel) {
268265
this.selectionModel.clear();
269266
}
270-
this.data_model.replaceTransforms(transforms);
271267
}
268+
this.data_model.replaceTransforms(transforms);
272269
}
273270

274271
updateSelectionModel() {

0 commit comments

Comments
 (0)