Fix links on pasted nodes

This commit is contained in:
barsdeveloper
2022-04-11 21:07:53 +02:00
parent 295e1d3120
commit 4b045b4c70
13 changed files with 334 additions and 235 deletions

View File

@@ -3,6 +3,7 @@
import Configuration from "../Configuration"
import IElement from "./IElement"
import MouseMoveNodes from "../input/mouse/MouseMoveNodes"
import Utility from "../Utility"
/**
* @typedef {import("../template/SelectableDraggableTemplate").default} SelectableDraggableTemplate
@@ -29,6 +30,23 @@ export default class ISelectableDraggableElement extends IElement {
}
}
#setSelected(value = true) {
this.selected = value
if (this.blueprint) {
if (this.selected) {
this.blueprint.addEventListener(Configuration.nodeDragEventName, this.dragHandler)
} else {
this.blueprint.removeEventListener(Configuration.nodeDragEventName, this.dragHandler)
}
}
this.template.applySelected(this)
}
connectedCallback() {
super.connectedCallback()
this.#setSelected(this.selected)
}
createInputObjects() {
return [
new MouseMoveNodes(this, this.blueprint, {
@@ -61,16 +79,9 @@ export default class ISelectableDraggableElement extends IElement {
}
setSelected(value = true) {
if (this.selected == value) {
return
if (this.selected != value) {
this.#setSelected(value)
}
this.selected = value
if (this.selected) {
this.blueprint.addEventListener(Configuration.nodeDragEventName, this.dragHandler)
} else {
this.blueprint.removeEventListener(Configuration.nodeDragEventName, this.dragHandler)
}
this.template.applySelected(this)
}
dispatchDragEvent(value) {
@@ -85,7 +96,7 @@ export default class ISelectableDraggableElement extends IElement {
}
snapToGrid() {
let snappedLocation = this.blueprint.snapToGrid(this.location)
let snappedLocation = Utility.snapToGrid(this.location, Configuration.gridSize)
if (this.location[0] != snappedLocation[0] || this.location[1] != snappedLocation[1]) {
this.setLocation(snappedLocation)
}