diff --git a/packages/mindplot/src/components/DragManager.ts b/packages/mindplot/src/components/DragManager.ts index 09403006..56bb3021 100644 --- a/packages/mindplot/src/components/DragManager.ts +++ b/packages/mindplot/src/components/DragManager.ts @@ -18,6 +18,7 @@ import { $assert, $defined } from '@wisemapping/core-js'; import DragTopic from './DragTopic'; import EventBusDispatcher from './layout/EventBusDispatcher'; +import Topic from './Topic'; import Workspace from './Workspace'; class DragManager { @@ -44,7 +45,7 @@ class DragManager { DragTopic.init(this._workspace); } - add(node) { + add(topic: Topic) { // Add behaviour ... const workspace = this._workspace; const screen = workspace.getScreenManager(); @@ -57,7 +58,7 @@ class DragManager { // Set initial position. const layoutManager = me._eventDispatcher.getLayoutManager(); - const dragNode = node.createDragNode(layoutManager); + const dragNode = topic.createDragNode(layoutManager); // Register mouse move listener ... const mouseMoveListener = dragManager._buildMouseMoveListener( @@ -67,7 +68,7 @@ class DragManager { // Register mouse up listeners ... const mouseUpListener = dragManager._buildMouseUpListener( - workspace, node, dragNode, dragManager, + workspace, topic, dragNode, dragManager, ); screen.addEvent('mouseup', mouseUpListener); @@ -75,7 +76,7 @@ class DragManager { window.document.body.style.cursor = 'move'; } }; - node.addEvent('mousedown', mouseDownListener); + topic.addEvent('mousedown', mouseDownListener); } remove() { @@ -114,10 +115,10 @@ class DragManager { return result; } - protected _buildMouseUpListener(workspace: Workspace, node, dragNode, dragManager: DragManager) { + protected _buildMouseUpListener(workspace: Workspace, topic: Topic, dragNode, dragManager: DragManager) { const screen = workspace.getScreenManager(); const me = this; - const result = (event) => { + const result = (event: Event) => { $assert(dragNode.isDragTopic, 'dragNode must be an DragTopic'); // Remove all the events. @@ -154,7 +155,7 @@ class DragManager { * - dragging * - enddragging */ - addEvent(type, listener) { + addEvent(type: string, listener) { this._listeners[type] = listener; } } diff --git a/packages/mindplot/src/components/commands/DragTopicCommand.ts b/packages/mindplot/src/components/commands/DragTopicCommand.ts index 8e3766ef..d550a378 100644 --- a/packages/mindplot/src/components/commands/DragTopicCommand.ts +++ b/packages/mindplot/src/components/commands/DragTopicCommand.ts @@ -62,7 +62,7 @@ class DragTopicCommand extends Command { const origPosition = topic.getPosition(); // Disconnect topic .. - if ($defined(origParentTopic) && origParentTopic.getId() !== this._parentId) { + if ($defined(origParentTopic)) { commandContext.disconnect(topic); } @@ -76,17 +76,15 @@ class DragTopicCommand extends Command { } // Finally, connect topic ... - if (!$defined(origParentTopic) || origParentTopic.getId() !== this._parentId) { - if ($defined(this._parentId)) { - const parentTopic = commandContext.findTopics([this._parentId])[0]; - commandContext.connect(topic, parentTopic); - } + if ($defined(this._parentId)) { + const parentTopic = commandContext.findTopics([this._parentId])[0]; + commandContext.connect(topic, parentTopic); + } - // Backup old parent id ... - this._parentId = null; - if ($defined(origParentTopic)) { - this._parentId = origParentTopic.getId(); - } + // Backup old parent id ... + this._parentId = null; + if ($defined(origParentTopic)) { + this._parentId = origParentTopic.getId(); } topic.setVisibility(true);