diff --git a/dist/ueblueprint.js b/dist/ueblueprint.js index 7920a11..9b7e787 100755 --- a/dist/ueblueprint.js +++ b/dist/ueblueprint.js @@ -3556,8 +3556,10 @@ class NodeTemplate extends SelectableDraggableTemplate {
- - ${sanitizeText(node.getNodeName())} + + + ${sanitizeText(node.getNodeName())} +
@@ -3578,11 +3580,11 @@ class NodeTemplate extends SelectableDraggableTemplate { */ apply(node) { super.apply(node); + const nodeName = node.entity.getFullName(); + node.dataset.name = sanitizeText(nodeName); if (node.selected) { node.classList.add("ueb-selected"); } - const nodeName = node.entity.getFullName(); - node.dataset.name = sanitizeText(nodeName); if (node.entity.AdvancedPinDisplay) { node.dataset.advancedDisplay = node.entity.AdvancedPinDisplay.toString(); } @@ -3597,6 +3599,17 @@ class NodeTemplate extends SelectableDraggableTemplate { pins.filter(v => v.isOutput()).forEach(v => outputContainer.appendChild(new PinElement(v))); } + /** + * Applies the style to the element. + * @param {NodeElement} node Element of the graph + */ + applyRename(node) { + const nodeName = node.entity.getFullName(); + node.dataset.name = sanitizeText(nodeName); + // @ts-expect-error + node.querySelector(".ueb-node-name-text").innerText = sanitizeText(node.entity.getFullName()); + } + /** * @param {NodeElement} node * @returns {NodeListOf} @@ -3663,6 +3676,7 @@ class NodeElement extends ISelectableDraggableElement { } } this.entity.Name = name; + this.template.applyRename(this); } getPinElements() { @@ -4205,8 +4219,8 @@ class Blueprint extends IElement { const nodeName = element.entity.getFullName(); const homonymNode = this.nodes.find(node => node.entity.getFullName() == nodeName); if (homonymNode) { - // Inserting node keeps tha name and the homonym nodes is renamed - let [name, counter] = homonymNode.entity.getNameAndCounter(); + // Inserted node keeps tha name and the homonym nodes is renamed + let name = homonymNode.entity.getDisplayName(); this.#nodeNameCounter[name] = this.#nodeNameCounter[name] ?? -1; do { ++this.#nodeNameCounter[name]; @@ -4217,13 +4231,13 @@ class Blueprint extends IElement { } this.nodes.push(element); nodeElements.push(element); + this.nodesContainerElement?.appendChild(element); } else if (element instanceof LinkElement && !this.links.includes(element)) { this.links.push(element); } } // Keep separated for linking purpose if (this.nodesContainerElement) { - graphElements.forEach(element => this.nodesContainerElement.appendChild(element)); nodeElements.forEach(node => node.cleanLinks()); } } @@ -4232,16 +4246,19 @@ class Blueprint extends IElement { * @param {...IElement} graphElements */ removeGraphElement(...graphElements) { - let removed = false; - graphElements.forEach(element => { + for (let element of graphElements) { if (element.closest("ueb-blueprint") == this) { element.remove(); - removed = false; + let elementsArray = element instanceof NodeElement + ? this.nodes + : element instanceof LinkElement + ? this.links + : null; + elementsArray?.splice( + elementsArray.findIndex(v => v == element), + 1 + ); } - }); - if (removed) { - this.nodes = /** @type {NodeElement[]} */ ([...this.querySelectorAll("ueb-node")]); - this.links = /** @type {LinkElement[]} */ ([...this.querySelectorAll("ueb-link")]); } } diff --git a/js/Blueprint.js b/js/Blueprint.js index 80a9b76..039ba98 100755 --- a/js/Blueprint.js +++ b/js/Blueprint.js @@ -404,8 +404,8 @@ export default class Blueprint extends IElement { const nodeName = element.entity.getFullName() const homonymNode = this.nodes.find(node => node.entity.getFullName() == nodeName) if (homonymNode) { - // Inserting node keeps tha name and the homonym nodes is renamed - let [name, counter] = homonymNode.entity.getNameAndCounter() + // Inserted node keeps tha name and the homonym nodes is renamed + let name = homonymNode.entity.getDisplayName() this.#nodeNameCounter[name] = this.#nodeNameCounter[name] ?? -1 do { ++this.#nodeNameCounter[name] @@ -416,13 +416,13 @@ export default class Blueprint extends IElement { } this.nodes.push(element) nodeElements.push(element) + this.nodesContainerElement?.appendChild(element) } else if (element instanceof LinkElement && !this.links.includes(element)) { this.links.push(element) } } // Keep separated for linking purpose if (this.nodesContainerElement) { - graphElements.forEach(element => this.nodesContainerElement.appendChild(element)) nodeElements.forEach(node => node.cleanLinks()) } } @@ -431,16 +431,19 @@ export default class Blueprint extends IElement { * @param {...IElement} graphElements */ removeGraphElement(...graphElements) { - let removed = false - graphElements.forEach(element => { + for (let element of graphElements) { if (element.closest("ueb-blueprint") == this) { element.remove() - removed = false + let elementsArray = element instanceof NodeElement + ? this.nodes + : element instanceof LinkElement + ? this.links + : null + elementsArray?.splice( + elementsArray.findIndex(v => v === element), + 1 + ) } - }) - if (removed) { - this.nodes = /** @type {NodeElement[]} */ ([...this.querySelectorAll("ueb-node")]) - this.links = /** @type {LinkElement[]} */ ([...this.querySelectorAll("ueb-link")]) } } diff --git a/js/element/NodeElement.js b/js/element/NodeElement.js index 5f39b91..a687d9f 100644 --- a/js/element/NodeElement.js +++ b/js/element/NodeElement.js @@ -63,6 +63,7 @@ export default class NodeElement extends ISelectableDraggableElement { } } this.entity.Name = name + this.template.applyRename(this) } getPinElements() { diff --git a/js/template/NodeTemplate.js b/js/template/NodeTemplate.js index 63f9e5a..06e5eee 100755 --- a/js/template/NodeTemplate.js +++ b/js/template/NodeTemplate.js @@ -21,8 +21,10 @@ export default class NodeTemplate extends SelectableDraggableTemplate {
- - ${sanitizeText(node.getNodeName())} + + + ${sanitizeText(node.getNodeName())} +
@@ -43,11 +45,11 @@ export default class NodeTemplate extends SelectableDraggableTemplate { */ apply(node) { super.apply(node) + const nodeName = node.entity.getFullName() + node.dataset.name = sanitizeText(nodeName) if (node.selected) { node.classList.add("ueb-selected") } - const nodeName = node.entity.getFullName() - node.dataset.name = sanitizeText(nodeName) if (node.entity.AdvancedPinDisplay) { node.dataset.advancedDisplay = node.entity.AdvancedPinDisplay.toString() } @@ -62,6 +64,17 @@ export default class NodeTemplate extends SelectableDraggableTemplate { pins.filter(v => v.isOutput()).forEach(v => outputContainer.appendChild(new PinElement(v))) } + /** + * Applies the style to the element. + * @param {NodeElement} node Element of the graph + */ + applyRename(node) { + const nodeName = node.entity.getFullName() + node.dataset.name = sanitizeText(nodeName) + // @ts-expect-error + node.querySelector(".ueb-node-name-text").innerText = sanitizeText(node.entity.getFullName()) + } + /** * @param {NodeElement} node * @returns {NodeListOf}