diff --git a/editor/js/editor.js b/editor/js/editor.js index eebae44df5d7a4a3539aff160f406e2b0712fc05..ae1f5c47a20cc59375deab9509e79974ca8b0944 100644 --- a/editor/js/editor.js +++ b/editor/js/editor.js @@ -3,7 +3,7 @@ import * as Graph from "./graph"; import { loadGraphJson } from "../../datasets/datasets"; import ForceGraph from "force-graph"; import * as Interactions from "./interactions"; -import { DRAG_THRESHOLD_2D, setSpace, SPACE } from "../../config"; +import { setSpace, SPACE } from "../../config"; export var state = undefined; export var graph = undefined; @@ -57,7 +57,7 @@ function load() { .linkColor((link) => state.linkColor(link)) .nodeColor((node) => state.nodeColor(node)) .onNodeClick((node) => state.onNodeClick(node)) - .onNodeDragEnd((node, translate) => onNodeDragEnd(node, translate)) + .onNodeDragEnd((node, translate) => state.onNodeDragEnd(node, translate)) .autoPauseRedraw(false) // keep redrawing after engine has stopped .linkWidth((link) => state.linkWidth(link)) .linkDirectionalParticles(state.linkDirectionalParticles()) @@ -81,12 +81,3 @@ function load() { graphObj.graphData(data); }); } - -function onNodeDragEnd(node, translate) { - if ( - Math.sqrt(Math.pow(translate.x, 2) + Math.pow(translate.y, 2)) < - DRAG_THRESHOLD_2D - ) { - state.onNodeClick(node); - } -} diff --git a/editor/js/state.js b/editor/js/state.js index 1672b394d06a8a6b6c04fdc8a8160658b3a95719..b2f158c1611b85a8c3e067ef62688eb6e71d13cc 100644 --- a/editor/js/state.js +++ b/editor/js/state.js @@ -10,6 +10,7 @@ import SaveTool from "./tools/savetool"; import { graph } from "./editor"; import Toolbar from "./toolbar"; import * as Graph from "./graph"; +import { DRAG_THRESHOLD_2D } from "../../config"; export const TOOLS = { undo: new UndoTool("undo"), @@ -86,6 +87,18 @@ export class State extends Tool { this.tool.onNodeClick(node); } + onNodeDragEnd(node, translate) { + // Handle as click event, if drag distance under a certain threshold + var distanceDragged = Math.sqrt(Math.pow(translate.x, 2) + Math.pow(translate.y, 2)); + if (distanceDragged < DRAG_THRESHOLD_2D) { + this.onNodeClick(node); + return; + + } else { + this.tool.onNodeDragEnd(node, translate); + } + } + onLinkClick(link) { this.tool.onLinkClick(link); } diff --git a/editor/js/tools/tool.js b/editor/js/tools/tool.js index 31ee19ac3b1e2ae5d733b326e5d8cdda97943ed8..c19314bbf233d4250abd9e214f163c176d206d21 100644 --- a/editor/js/tools/tool.js +++ b/editor/js/tools/tool.js @@ -64,6 +64,12 @@ export default class Tool { } } + onNodeDragEnd(node, translate) { + if (this.warnings) { + console.warn('Method "onNodeDragEnd" not implemented.'); + } + } + onLinkClick(link) { if (this.warnings) { console.warn('Method "onLinkClick" not implemented.');