diff --git a/editor/js/graph.js b/editor/js/graph.js index d6eb1d9e73c89d8fa65aa70d9d695cda2fcc46f7..16aaef23718de17e48a05ff74df2cae09fce819a 100644 --- a/editor/js/graph.js +++ b/editor/js/graph.js @@ -1,6 +1,8 @@ import ManagedData from "./manageddata"; import { PLUGIN_PATH, COLOR_PALETTE } from "../../config"; +const LINK_NAME_CONNECTOR = " → "; + export const NODE_LABEL = "name"; export const NODE_ID = "id"; export const NODE_TYPE = "type"; @@ -394,4 +396,22 @@ export class Graph extends ManagedData { return newNode; } + + static toStr(item) { + if (item === undefined) { + return "UNDEFINED"; + } + + if (item.node) { + return item[Graph.NODE_LABEL]; + } else if (item.link) { + return ( + Graph.toStr(item[Graph.LINK_SOURCE]) + + LINK_NAME_CONNECTOR + + Graph.toStr(item[Graph.LINK_TARGET]) + ); + } else { + return "UNDEFINED"; + } + } } diff --git a/editor/js/state.js b/editor/js/state.js index b4a9d76862c70ab6cd62fa2cda033eb5e1cdb4ae..cbf44c4cf38a0b1822215103f512744f78992e3d 100644 --- a/editor/js/state.js +++ b/editor/js/state.js @@ -7,7 +7,7 @@ import DeleteTool from "./tools/deletetool"; import AddNodeTool from "./tools/addnodetool"; import ConnectTool from "./tools/connecttool"; import { graph } from "./editor"; -import Display from "./display"; +import Toolbar from "./toolbar"; import * as Graph from "./graph"; export const TOOLS = { @@ -31,7 +31,7 @@ export class State extends Tool { constructor() { super("State"); - this.display = new Display(TOOLS); + this.display = new Toolbar(TOOLS); this.tool = undefined; this.setTool(TOOLS.select); diff --git a/editor/js/display.js b/editor/js/toolbar.js similarity index 66% rename from editor/js/display.js rename to editor/js/toolbar.js index 79d187c384922ee9f51672bf9391c11b4295223e..a4b93c25e70aab9386f1c69b7d5ea40d900003dc 100644 --- a/editor/js/display.js +++ b/editor/js/toolbar.js @@ -1,6 +1,5 @@ import jQuery from "jquery"; import { PLUGIN_PATH } from "../../config"; -import * as Graph from "./graph"; import { state } from "./editor"; const ID_TOOLBAR = "#toolbar"; @@ -9,9 +8,7 @@ const TOOL_ICON_SRC = PLUGIN_PATH + "editor/images/tools/"; const TOOL_ICON_FORMAT = ".png"; const TOOL_SELECTED_CLASS = "selected"; -const LINK_NAME_CONNECTOR = " → "; - -export default class Display { +export default class Toolbar { constructor(tools) { this.tools = Object.values(tools); this.previousTool = undefined; @@ -20,11 +17,11 @@ export default class Display { } setSelectedTool(tool) { - var selectedTool = jQuery(Display.getToolIdTag(tool)); + var selectedTool = jQuery(Toolbar.getToolIdTag(tool)); selectedTool.addClass(TOOL_SELECTED_CLASS); if (this.previousTool !== undefined) { - var previousTool = jQuery(Display.getToolIdTag(this.previousTool)); + var previousTool = jQuery(Toolbar.getToolIdTag(this.previousTool)); previousTool.removeClass(TOOL_SELECTED_CLASS); } @@ -44,13 +41,13 @@ export default class Display { } static getToolId(tool) { - return Display.getToolIdTag(tool).substr(1); + return Toolbar.getToolIdTag(tool).substr(1); } toolRenderer(tool) { return ( '<button id="' + - Display.getToolId(tool) + + Toolbar.getToolId(tool) + '" title="' + tool.getName() + '"><img src="' + @@ -62,7 +59,7 @@ export default class Display { } toolClickEvent(tool) { - jQuery("button" + Display.getToolIdTag(tool)).on( + jQuery("button" + Toolbar.getToolIdTag(tool)).on( "click", "", tool, @@ -78,22 +75,4 @@ export default class Display { items.forEach((i) => listCont.append(itemRenderer(i))); } - - static toStr(item) { - if (item === undefined) { - return "UNDEFINED"; - } - - if (item.node) { - return item[Graph.NODE_LABEL]; - } else if (item.link) { - return ( - Display.toStr(item[Graph.LINK_SOURCE]) + - LINK_NAME_CONNECTOR + - Display.toStr(item[Graph.LINK_TARGET]) - ); - } else { - return "UNDEFINED"; - } - } } diff --git a/editor/js/tools/menus/collectmenu.js b/editor/js/tools/menus/collectmenu.js index 1a931e9ac3447b045bb49a08e1e9f381d81dc0c2..ca181963b1954e700b82932ab76c84d401942b73 100644 --- a/editor/js/tools/menus/collectmenu.js +++ b/editor/js/tools/menus/collectmenu.js @@ -1,5 +1,5 @@ import jQuery from "jquery"; -import Display from "../../display"; +import { Graph } from "../../graph"; import ToolMenu from "./toolmenu"; export const COLLECTION_KEY = "collection"; @@ -38,7 +38,7 @@ export class CollectMenu extends ToolMenu { "<" + DOM_LIST_ITEM + ">" + - Display.toStr(item) + + Graph.toStr(item) + "</" + DOM_LIST_ITEM + ">" diff --git a/editor/js/tools/menus/selectmenu.js b/editor/js/tools/menus/selectmenu.js index a7aa270425a1c0a617fc93d1e64aadbd8fb09f32..40602f1d8e402cd9265299bfd60c476f8491eb2f 100644 --- a/editor/js/tools/menus/selectmenu.js +++ b/editor/js/tools/menus/selectmenu.js @@ -1,4 +1,3 @@ -import Display from "../../display"; import * as Graph from "../../graph"; import { CONTEXT } from "../../state"; import ToolMenu from "./toolmenu"; @@ -139,7 +138,7 @@ export class SelectMenu extends ToolMenu { } fillLink(link) { - this.find(LINK_NAME_ID).text(Display.toStr(link)); + this.find(LINK_NAME_ID).text(Graph.Graph.toStr(link)); LINK_MENU.forEach((menu) => { this.find(menu).val(link[this.toProperty(menu)]);