diff --git a/dist/ueblueprint.js b/dist/ueblueprint.js index e575502..c729b0b 100755 --- a/dist/ueblueprint.js +++ b/dist/ueblueprint.js @@ -1787,7 +1787,12 @@ class LinkElement extends IElement { * @param {LinkMessageElement} linkMessage */ setLinkMessage(linkMessage) { - this.template.applyLinkMessage(this, linkMessage); + if (linkMessage) { + this.template.applyLinkMessage(this, linkMessage); + } else if (this.linkMessageElement) { + this.linkMessageElement.remove(); + this.linkMessageElement = null; + } } } @@ -2086,7 +2091,10 @@ class IMouseClickDrag extends IPointing { } } -/** @typedef {import("../../element/PinElement").default} PinElement */ +/** + * @typedef {import("../../element/PinElement").default} PinElement + * @typedef {import("../../element/LinkElement").default} LinkElement + */ class MouseCreateLink extends IMouseClickDrag { /** @type {NodeListOf} */ @@ -2100,11 +2108,11 @@ class MouseCreateLink extends IMouseClickDrag { constructor(target, blueprint, options) { super(target, blueprint, options); - /** @type {import("../../element/PinElement").PinElement} */ + /** @type {PinElement} */ this.target; - /** @type {import("../../element/LinkElement").LinkElement} */ + /** @type {LinkElement} */ this.link; - /** @type {import("../../entity/PinEntity").default} */ + /** @type {PinElement} */ this.enteredPin; let self = this; @@ -2148,6 +2156,7 @@ class MouseCreateLink extends IMouseClickDrag { || link.getSourcePin() == this.enteredPin && link.getDestinationPin() == this.target )) { this.link.setDestinationPin(this.enteredPin); + this.link.setLinkMessage(null); this.blueprint.addGraphElement(this.link); } else { this.link.remove(); diff --git a/js/Blueprint.js b/js/Blueprint.js index 29d734c..81d6f74 100755 --- a/js/Blueprint.js +++ b/js/Blueprint.js @@ -2,15 +2,15 @@ import BlueprintTemplate from "./template/BlueprintTemplate" import Configuration from "./Configuration" import Copy from "./input/common/Copy" import IElement from "./element/IElement" -import LinkElement from "./element/LinkElement" -import NodeElement from "./element/NodeElement" -import SelectorElement from "./element/SelectorElement" import KeyboardCanc from "./input/keybaord/KeyboardCanc" import KeyboardSelectAll from "./input/keybaord/KeyboardSelectAll" +import LinkElement from "./element/LinkElement" import MouseScrollGraph from "./input/mouse/MouseScrollGraph" import MouseTracking from "./input/mouse/MouseTracking" +import NodeElement from "./element/NodeElement" import Paste from "./input/common/Paste" import Select from "./input/mouse/Select" +import SelectorElement from "./element/SelectorElement" import Unfocus from "./input/mouse/Unfocus" import Utility from "./Utility" import Zoom from "./input/mouse/Zoom" diff --git a/js/element/ISelectableDraggableElement.js b/js/element/ISelectableDraggableElement.js index f8a1ed4..d3b6c4c 100644 --- a/js/element/ISelectableDraggableElement.js +++ b/js/element/ISelectableDraggableElement.js @@ -1,6 +1,6 @@ import Configuration from "../Configuration" -import MouseMoveNodes from "../input/mouse/MouseMoveNodes" import IElement from "./IElement" +import MouseMoveNodes from "../input/mouse/MouseMoveNodes" /** @typedef {import("../template/SelectableDraggableTemplate").default} SelectableDraggableTemplate */ diff --git a/js/element/LinkElement.js b/js/element/LinkElement.js index 53420b6..f3995c4 100644 --- a/js/element/LinkElement.js +++ b/js/element/LinkElement.js @@ -1,6 +1,6 @@ +import Configuration from "../Configuration" import IElement from "./IElement" import LinkTemplate from "../template/LinkTemplate" -import Configuration from "../Configuration" /** * @typedef {import("./PinElement").default} PinElement @@ -168,7 +168,12 @@ export default class LinkElement extends IElement { * @param {LinkMessageElement} linkMessage */ setLinkMessage(linkMessage) { - this.template.applyLinkMessage(this, linkMessage) + if (linkMessage) { + this.template.applyLinkMessage(this, linkMessage) + } else if (this.linkMessageElement) { + this.linkMessageElement.remove() + this.linkMessageElement = null + } } } diff --git a/js/element/NodeElement.js b/js/element/NodeElement.js index e150809..92c4960 100644 --- a/js/element/NodeElement.js +++ b/js/element/NodeElement.js @@ -1,9 +1,9 @@ +import Configuration from "../Configuration" +import ISelectableDraggableElement from "./ISelectableDraggableElement" import NodeTemplate from "../template/NodeTemplate" import ObjectEntity from "../entity/ObjectEntity" import PinEntity from "../entity/PinEntity" -import ISelectableDraggableElement from "./ISelectableDraggableElement" import SerializerFactory from "../serialization/SerializerFactory" -import Configuration from "../Configuration" export default class NodeElement extends ISelectableDraggableElement { diff --git a/js/element/PinElement.js b/js/element/PinElement.js index 414affd..13cc437 100644 --- a/js/element/PinElement.js +++ b/js/element/PinElement.js @@ -1,6 +1,6 @@ import IElement from "./IElement" -import PinTemplate from "../template/PinTemplate" import MouseCreateLink from "../input/mouse/MouseCreateLink" +import PinTemplate from "../template/PinTemplate" export default class PinElement extends IElement { diff --git a/js/entity/ObjectEntity.js b/js/entity/ObjectEntity.js index 7fa6fe3..f0d393c 100755 --- a/js/entity/ObjectEntity.js +++ b/js/entity/ObjectEntity.js @@ -1,6 +1,6 @@ -import IEntity from "./IEntity" import FunctionReferenceEntity from "./FunctionReferenceEntity" import GuidEntity from "./GuidEntity" +import IEntity from "./IEntity" import IntegerEntity from "./IntegerEntity" import ObjectReferenceEntity from "./ObjectReferenceEntity" import PinEntity from "./PinEntity" diff --git a/js/entity/PinEntity.js b/js/entity/PinEntity.js index 06477cb..a816ee8 100755 --- a/js/entity/PinEntity.js +++ b/js/entity/PinEntity.js @@ -1,5 +1,5 @@ -import IEntity from "./IEntity" import GuidEntity from "./GuidEntity" +import IEntity from "./IEntity" import LocalizedTextEntity from "./LocalizedTextEntity" import ObjectReferenceEntity from "./ObjectReferenceEntity" import PinReferenceEntity from "./PinReferenceEntity" diff --git a/js/entity/PinReferenceEntity.js b/js/entity/PinReferenceEntity.js index 21721ad..44ca388 100755 --- a/js/entity/PinReferenceEntity.js +++ b/js/entity/PinReferenceEntity.js @@ -1,5 +1,5 @@ -import IEntity from "./IEntity" import GuidEntity from "./GuidEntity" +import IEntity from "./IEntity" import PathSymbol from "./PathSymbolEntity" export default class PinReferenceEntity extends IEntity { diff --git a/js/input/common/Paste.js b/js/input/common/Paste.js index fb68ecc..7fa67a0 100755 --- a/js/input/common/Paste.js +++ b/js/input/common/Paste.js @@ -1,6 +1,6 @@ +import IContext from "../IContext" import NodeElement from "../../element/NodeElement" import ObjectSerializer from "../../serialization/ObjectSerializer" -import IContext from "../IContext" export default class Paste extends IContext { diff --git a/js/input/keybaord/KeyboardCanc.js b/js/input/keybaord/KeyboardCanc.js index f926061..e456afb 100755 --- a/js/input/keybaord/KeyboardCanc.js +++ b/js/input/keybaord/KeyboardCanc.js @@ -1,5 +1,5 @@ -import IKeyboardShortcut from "./IKeyboardShortcut" import Configuration from "../../Configuration" +import IKeyboardShortcut from "./IKeyboardShortcut" export default class KeyvoardCanc extends IKeyboardShortcut { diff --git a/js/input/keybaord/KeyboardSelectAll.js b/js/input/keybaord/KeyboardSelectAll.js index 0a793ec..9d8a9a8 100755 --- a/js/input/keybaord/KeyboardSelectAll.js +++ b/js/input/keybaord/KeyboardSelectAll.js @@ -1,5 +1,5 @@ -import IKeyboardShortcut from "./IKeyboardShortcut" import Configuration from "../../Configuration" +import IKeyboardShortcut from "./IKeyboardShortcut" export default class KeyboardSelectAll extends IKeyboardShortcut { diff --git a/js/input/mouse/MouseCreateLink.js b/js/input/mouse/MouseCreateLink.js index fca8401..7cc2090 100755 --- a/js/input/mouse/MouseCreateLink.js +++ b/js/input/mouse/MouseCreateLink.js @@ -1,8 +1,11 @@ +import IMouseClickDrag from "./IMouseClickDrag" import LinkElement from "../../element/LinkElement" import LinkMessageElement from "../../element/LinkMessageElement" -import IMouseClickDrag from "./IMouseClickDrag" -/** @typedef {import("../../element/PinElement").default} PinElement */ +/** + * @typedef {import("../../element/LinkElement").default} LinkElement + * @typedef {import("../../element/PinElement").default} PinElement + */ export default class MouseCreateLink extends IMouseClickDrag { /** @type {NodeListOf} */ @@ -16,11 +19,11 @@ export default class MouseCreateLink extends IMouseClickDrag { constructor(target, blueprint, options) { super(target, blueprint, options) - /** @type {import("../../element/PinElement").PinElement} */ + /** @type {PinElement} */ this.target - /** @type {import("../../element/LinkElement").LinkElement} */ + /** @type {LinkElement} */ this.link - /** @type {import("../../entity/PinEntity").default} */ + /** @type {PinElement} */ this.enteredPin let self = this @@ -64,6 +67,7 @@ export default class MouseCreateLink extends IMouseClickDrag { || link.getSourcePin() == this.enteredPin && link.getDestinationPin() == this.target )) { this.link.setDestinationPin(this.enteredPin) + this.link.setLinkMessage(null) this.blueprint.addGraphElement(this.link) } else { this.link.remove() diff --git a/js/serialization/ISerializer.js b/js/serialization/ISerializer.js index ce9c74f..ff636a7 100644 --- a/js/serialization/ISerializer.js +++ b/js/serialization/ISerializer.js @@ -1,5 +1,5 @@ -import IEntity from "../entity/IEntity" import Grammar from "./Grammar" +import IEntity from "../entity/IEntity" import Parsimmon from "parsimmon" import SerializerFactory from "./SerializerFactory" import TypeInitialization from "../entity/TypeInitialization" diff --git a/js/serialization/ObjectSerializer.js b/js/serialization/ObjectSerializer.js index 05e979a..55f3bd9 100755 --- a/js/serialization/ObjectSerializer.js +++ b/js/serialization/ObjectSerializer.js @@ -1,6 +1,6 @@ +import ISerializer from "./ISerializer" import ObjectEntity from "../entity/ObjectEntity" import PinEntity from "../entity/PinEntity" -import ISerializer from "./ISerializer" import SerializerFactory from "./SerializerFactory" export default class ObjectSerializer extends ISerializer { diff --git a/js/template/BlueprintTemplate.js b/js/template/BlueprintTemplate.js index 88752ea..11103e9 100755 --- a/js/template/BlueprintTemplate.js +++ b/js/template/BlueprintTemplate.js @@ -1,8 +1,8 @@ import Configuration from "../Configuration" import html from "./html" +import ITemplate from "./ITemplate" import sanitizeText from "./sanitizeText" import SelectorElement from "../element/SelectorElement" -import ITemplate from "./ITemplate" /** @typedef {import("../Blueprint").default} Blueprint */ export default class BlueprintTemplate extends ITemplate { diff --git a/js/template/LinkMessageTemplate.js b/js/template/LinkMessageTemplate.js index 8e88318..e0406dc 100644 --- a/js/template/LinkMessageTemplate.js +++ b/js/template/LinkMessageTemplate.js @@ -1,6 +1,6 @@ -import LinkElement from "../element/LinkElement" import html from "./html" import ITemplate from "./ITemplate" +import LinkElement from "../element/LinkElement" /** * @typedef {import("../element/LinkMessageElement").default} LinkMessageElement diff --git a/js/template/LinkTemplate.js b/js/template/LinkTemplate.js index 2715cd5..527ba2b 100755 --- a/js/template/LinkTemplate.js +++ b/js/template/LinkTemplate.js @@ -1,7 +1,7 @@ -import html from "./html" -import sanitizeText from "./sanitizeText" -import ITemplate from "./ITemplate" import Configuration from "../Configuration" +import html from "./html" +import ITemplate from "./ITemplate" +import sanitizeText from "./sanitizeText" /** * @typedef {import("../element/LinkElement").default} LinkElement diff --git a/js/template/NodeTemplate.js b/js/template/NodeTemplate.js index 702dd8d..d61c547 100755 --- a/js/template/NodeTemplate.js +++ b/js/template/NodeTemplate.js @@ -1,6 +1,5 @@ -import PinElement from "../element/PinElement" import html from "./html" -import PinEntity from "../entity/PinEntity" +import PinElement from "../element/PinElement" import sanitizeText from "./sanitizeText" import SelectableDraggableTemplate from "./SelectableDraggableTemplate" diff --git a/js/template/PinTemplate.js b/js/template/PinTemplate.js index ba1dd64..4022dbd 100755 --- a/js/template/PinTemplate.js +++ b/js/template/PinTemplate.js @@ -1,7 +1,7 @@ -import Utility from "../Utility" import html from "./html" -import sanitizeText from "./sanitizeText" import ITemplate from "./ITemplate" +import sanitizeText from "./sanitizeText" +import Utility from "../Utility" /** * @typedef {import("../element/PinElement").default} PinElement diff --git a/js/template/SelectableDraggableTemplate.js b/js/template/SelectableDraggableTemplate.js index 9179fd4..e869367 100755 --- a/js/template/SelectableDraggableTemplate.js +++ b/js/template/SelectableDraggableTemplate.js @@ -1,5 +1,5 @@ -import sanitizeText from "./sanitizeText" import ITemplate from "./ITemplate" +import sanitizeText from "./sanitizeText" /** * @typedef {import("../element/ISelectableDraggableElement").default} ISelectableDraggableElement diff --git a/js/template/SelectorTemplate.js b/js/template/SelectorTemplate.js index d0440f0..342cfdc 100755 --- a/js/template/SelectorTemplate.js +++ b/js/template/SelectorTemplate.js @@ -1,5 +1,5 @@ -import sanitizeText from "./sanitizeText" import ITemplate from "./ITemplate" +import sanitizeText from "./sanitizeText" /** * @typedef {import("../element/SelectorElement").default} SelectorElement