From 2a692c51577547d350bfe96a006949f185ebdd77 Mon Sep 17 00:00:00 2001
From: Matthias Konitzny <konitzny@ibr.cs.tu-bs.de>
Date: Fri, 25 Mar 2022 11:49:54 +0100
Subject: [PATCH] The editor tools now correctly import image assets.

---
 src/editor/js/interactions.js       | 2 +-
 src/editor/js/toolbar.js            | 5 -----
 src/editor/js/tools/addnodetool.js  | 5 +++--
 src/editor/js/tools/collecttool.js  | 3 ++-
 src/editor/js/tools/connecttool.js  | 3 ++-
 src/editor/js/tools/deletetool.js   | 6 ++++--
 src/editor/js/tools/redotool.js     | 9 +++++----
 src/editor/js/tools/savetool.js     | 5 +++--
 src/editor/js/tools/selecttool.js   | 3 ++-
 src/editor/js/tools/settingstool.js | 5 +++--
 src/editor/js/tools/undotool.js     | 3 ++-
 11 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/src/editor/js/interactions.js b/src/editor/js/interactions.js
index 4809612..1f7f1bf 100644
--- a/src/editor/js/interactions.js
+++ b/src/editor/js/interactions.js
@@ -1,6 +1,6 @@
 import jQuery from "jquery";
 import { state } from "./editor";
-import { listAllSpaces, saveGraphJson } from "../../../datasets/datasets";
+import { listAllSpaces, saveGraphJson } from "../../datasets";
 import { SPACE } from "../../config";
 
 /**
diff --git a/src/editor/js/toolbar.js b/src/editor/js/toolbar.js
index 658553f..ab6cd8a 100644
--- a/src/editor/js/toolbar.js
+++ b/src/editor/js/toolbar.js
@@ -1,12 +1,9 @@
 import jQuery from "jquery";
-import { PLUGIN_PATH } from "../../config";
 import { state } from "./editor";
 
 const ID_TOOLBAR = "#toolbar";
 const SAVE_BUTTON_ID = "div#ks-editor #toolbar-save";
 
-const TOOL_ICON_SRC = PLUGIN_PATH + "editor/images/tools/";
-const TOOL_ICON_FORMAT = ".png";
 const TOOL_SELECTED_CLASS = "selected";
 
 export default class Toolbar {
@@ -55,9 +52,7 @@ export default class Toolbar {
             '" title="' +
             tool.getName() +
             '"><img src="' +
-            TOOL_ICON_SRC +
             tool.getIcon() +
-            TOOL_ICON_FORMAT +
             '"></button>'
         );
     }
diff --git a/src/editor/js/tools/addnodetool.js b/src/editor/js/tools/addnodetool.js
index 52a74c9..0984deb 100644
--- a/src/editor/js/tools/addnodetool.js
+++ b/src/editor/js/tools/addnodetool.js
@@ -1,9 +1,10 @@
 import Tool from "./tool";
 import { graph, state } from "../editor";
+import AddNodeIcon from "../../images/tools/addnode.png";
 
 export default class AddNodeTool extends Tool {
     constructor(key) {
-        super("Add node", "addnode", key);
+        super("Add node", AddNodeIcon, key);
     }
 
     onBackgroundClick(event, positions) {
@@ -22,4 +23,4 @@ export default class AddNodeTool extends Tool {
 
         state.setSelectedItem(node);
     }
-}
\ No newline at end of file
+}
diff --git a/src/editor/js/tools/collecttool.js b/src/editor/js/tools/collecttool.js
index ffd3f71..727e3a9 100644
--- a/src/editor/js/tools/collecttool.js
+++ b/src/editor/js/tools/collecttool.js
@@ -2,10 +2,11 @@ import Tool from "./tool";
 import { state } from "../editor";
 import { CONTEXT } from "../state";
 import { CollectMenu, COLLECTION_KEY } from "./menus/collectmenu";
+import CollectIcon from "../../images/tools/collect.png";
 
 export default class CollectTool extends Tool {
     constructor(key) {
-        super("Collect", "collect", key, new CollectMenu());
+        super("Collect", CollectIcon, key, new CollectMenu());
     }
 
     onNodeClick(node) {
diff --git a/src/editor/js/tools/connecttool.js b/src/editor/js/tools/connecttool.js
index 610e51d..95bf551 100644
--- a/src/editor/js/tools/connecttool.js
+++ b/src/editor/js/tools/connecttool.js
@@ -1,12 +1,13 @@
 import Tool from "./tool";
 import { graph, state } from "../editor";
 import * as Graph from "../graph";
+import ConnectIcon from "../../images/tools/connect.png";
 
 const KEEP_SOURCE_KEY_ID = 17;
 
 export default class ConnectTool extends Tool {
     constructor(key) {
-        super("Connect two nodes", "connect", key);
+        super("Connect two nodes", ConnectIcon, key);
         this.keepSource = false;
     }
 
diff --git a/src/editor/js/tools/deletetool.js b/src/editor/js/tools/deletetool.js
index ae34756..44e193c 100644
--- a/src/editor/js/tools/deletetool.js
+++ b/src/editor/js/tools/deletetool.js
@@ -3,6 +3,7 @@ import { graph, state, renderer } from "../editor";
 import * as Graph from "../graph";
 import jquery from "jquery";
 import ToolMenu from "./menus/toolmenu";
+import DeleteIcon from "../../images/tools/delete.png";
 
 const BOX_SELECT_LAYER_ID = "#box-select-layer";
 const BOX_SELECT_ID_WH = "box-select";
@@ -14,7 +15,7 @@ const SELECT_BOX_SELECTOR = BOX_SELECT_LAYER_ID + " #" + BOX_SELECT_ID_WH;
 var deleteToolInstance = undefined; // Used for box delete
 export default class DeleteTool extends Tool {
     constructor(key) {
-        super("Delete", "delete", key, new ToolMenu());
+        super("Delete", DeleteIcon, key, new ToolMenu());
         this.setupBoxSelect();
         this.isActive = false;
 
@@ -48,7 +49,8 @@ export default class DeleteTool extends Tool {
         var nodeNames = selectedNodes.map((n) => n[Graph.NODE_LABEL]);
         //! Problem: If browser is not actually showing the alerts, it always returns false!
         var shouldDelete = confirm(
-            "Are you sure you want to delete all these nodes?\n\n" + nodeNames.join("\n")
+            "Are you sure you want to delete all these nodes?\n\n" +
+                nodeNames.join("\n")
         );
 
         // Delete if confirmed
diff --git a/src/editor/js/tools/redotool.js b/src/editor/js/tools/redotool.js
index 1334b04..d8938f0 100644
--- a/src/editor/js/tools/redotool.js
+++ b/src/editor/js/tools/redotool.js
@@ -1,13 +1,14 @@
 import Tool from "./tool";
 import { graph, state } from "../editor";
+import RedoIcon from "../../images/tools/delete.png";
 
 export default class RedoTool extends Tool {
     constructor(key) {
-        super("Redo", "redo", key);
+        super("Redo", RedoIcon, key);
     }
-    
+
     onToolActivate() {
         graph.redo();
-        state.setTool(state.previousTool)
+        state.setTool(state.previousTool);
     }
-}
\ No newline at end of file
+}
diff --git a/src/editor/js/tools/savetool.js b/src/editor/js/tools/savetool.js
index efb5707..fa1c1ee 100644
--- a/src/editor/js/tools/savetool.js
+++ b/src/editor/js/tools/savetool.js
@@ -1,11 +1,12 @@
 import Tool from "./tool";
-import { saveGraphJson } from "../../../../datasets/datasets";
+import { saveGraphJson } from "../../../datasets";
 import { state, graph } from "../editor";
 import { SPACE } from "../../../config";
+import SaveIcon from "../../images/tools/save.png";
 
 export default class SaveTool extends Tool {
     constructor(key) {
-        super("Save", "save", key);
+        super("Save", SaveIcon, key);
     }
 
     onToolActivate() {
diff --git a/src/editor/js/tools/selecttool.js b/src/editor/js/tools/selecttool.js
index 8af8262..7d46a92 100644
--- a/src/editor/js/tools/selecttool.js
+++ b/src/editor/js/tools/selecttool.js
@@ -1,10 +1,11 @@
 import Tool from "./tool";
 import { graph, state } from "../editor";
 import * as SelectMenu from "./menus/selectmenu";
+import SelectIcon from "../../images/tools/select.png";
 
 export default class SelectTool extends Tool {
     constructor(key) {
-        super("Select", "select", key, new SelectMenu.SelectMenu());
+        super("Select", SelectIcon, key, new SelectMenu.SelectMenu());
     }
 
     onNodeClick(node) {
diff --git a/src/editor/js/tools/settingstool.js b/src/editor/js/tools/settingstool.js
index ca217e5..8b97ec4 100644
--- a/src/editor/js/tools/settingstool.js
+++ b/src/editor/js/tools/settingstool.js
@@ -6,10 +6,11 @@ import {
     PHYSICS_DELAY_KEY,
 } from "./menus/settingsmenu";
 import Tool from "./tool";
+import SettingsIcon from "../../images/tools/settings.png";
 
 export default class SettingsTool extends Tool {
     constructor(key) {
-        super("Settings", "settings", key, new SettingsMenu(), true);
+        super("Settings", SettingsIcon, key, new SettingsMenu(), true);
     }
 
     onMenuChange(key, value) {
@@ -18,7 +19,7 @@ export default class SettingsTool extends Tool {
         } else if (key === RESIMULATE_KEY) {
             graph.restartSimulation();
         } else if (key === PHYSICS_DELAY_KEY) {
-            graph.physicsDelay = Number(value) * 1000;  // Convert seconds to ms
+            graph.physicsDelay = Number(value) * 1000; // Convert seconds to ms
         }
     }
 }
diff --git a/src/editor/js/tools/undotool.js b/src/editor/js/tools/undotool.js
index f1a48df..0034cce 100644
--- a/src/editor/js/tools/undotool.js
+++ b/src/editor/js/tools/undotool.js
@@ -1,9 +1,10 @@
 import Tool from "./tool";
 import { graph, state } from "../editor";
+import UndoIcon from "../../images/tools/undo.png";
 
 export default class UndoTool extends Tool {
     constructor(key) {
-        super("Undo", "undo", key);
+        super("Undo", UndoIcon, key);
     }
 
     onToolActivate() {
-- 
GitLab