From 3954001a8406cc8affe5fd05a4dc3e7c46fb7a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B0=D1=82=D0=BE=D0=BB=D0=B8=D0=B9=20=D0=9C?= =?UTF-8?q?=D0=B0=D0=B9=D0=BE=D1=80=D0=BE=D0=B2?= Date: Thu, 8 Dec 2022 10:49:02 +0300 Subject: [PATCH] fix: fire selection `CHANGE` event to correct listener (#118) The `CHANGE` event is now fired to `GraphSelectionModel` instead of `Graph`. This is the behavior of mxGraph that was mistakenly modified during the migration of the code. --- packages/core/src/view/handler/SelectionCellsHandler.ts | 2 +- packages/core/src/view/undoable_changes/SelectionChange.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/src/view/handler/SelectionCellsHandler.ts b/packages/core/src/view/handler/SelectionCellsHandler.ts index 6969940e9..7be7733e0 100644 --- a/packages/core/src/view/handler/SelectionCellsHandler.ts +++ b/packages/core/src/view/handler/SelectionCellsHandler.ts @@ -63,7 +63,7 @@ class SelectionCellsHandler extends EventSource implements GraphPlugin { } }; - this.graph.addListener(InternalEvent.CHANGE, this.refreshHandler); + this.graph.getSelectionModel().addListener(InternalEvent.CHANGE, this.refreshHandler); this.graph.getDataModel().addListener(InternalEvent.CHANGE, this.refreshHandler); this.graph.getView().addListener(InternalEvent.SCALE, this.refreshHandler); this.graph.getView().addListener(InternalEvent.TRANSLATE, this.refreshHandler); diff --git a/packages/core/src/view/undoable_changes/SelectionChange.ts b/packages/core/src/view/undoable_changes/SelectionChange.ts index e4cde4c79..27f76b595 100644 --- a/packages/core/src/view/undoable_changes/SelectionChange.ts +++ b/packages/core/src/view/undoable_changes/SelectionChange.ts @@ -49,11 +49,11 @@ class SelectionChange implements UndoableChange { selectionModel.updatingSelectionResource; for (const removed of this.removed) { - this.graph.getSelectionModel().cellRemoved(removed); + selectionModel.cellRemoved(removed); } for (const added of this.added) { - this.graph.getSelectionModel().cellAdded(added); + selectionModel.cellAdded(added); } [this.added, this.removed] = [this.removed, this.added]; @@ -61,7 +61,7 @@ class SelectionChange implements UndoableChange { window.status = Translations.get(selectionModel.doneResource) || selectionModel.doneResource; - this.graph.fireEvent( + selectionModel.fireEvent( new EventObject(InternalEvent.CHANGE, { added: this.added, removed: this.removed }) ); }