From da492102461d8edd779ffb54bc924d715356fe1c Mon Sep 17 00:00:00 2001 From: meshosk Date: Sun, 14 Apr 2024 23:38:36 +0200 Subject: [PATCH] MouserService refactoring. Dragged or moving items are stored in container --- src/components/parts/common/ConnectPoint.ts | 6 +- .../common/{DraggableOver.ts => Draggable.ts} | 24 +-- src/components/parts/common/Movable.ts | 6 +- src/components/parts/common/index.ts | 2 +- src/components/parts/models/CircleModel.ts | 2 +- src/components/parts/views/CableView.vue | 6 +- src/components/parts/views/CircleView.vue | 4 +- src/components/parts/views/ConnectorView.vue | 2 +- src/components/parts/views/InputJackView.vue | 4 +- .../services/ConnectionLockService.ts | 30 ++-- src/components/services/EditorService.ts | 5 +- src/components/services/MouseServise.ts | 162 +++++++++--------- src/views/EditorView.vue | 11 +- 13 files changed, 124 insertions(+), 140 deletions(-) rename src/components/parts/common/{DraggableOver.ts => Draggable.ts} (63%) diff --git a/src/components/parts/common/ConnectPoint.ts b/src/components/parts/common/ConnectPoint.ts index f12df41..3819995 100644 --- a/src/components/parts/common/ConnectPoint.ts +++ b/src/components/parts/common/ConnectPoint.ts @@ -1,4 +1,4 @@ -import {CircuitPart, DraggableOver, HighlightType, Movable} from "@/components/parts/common"; +import {CircuitPart, Draggable, HighlightType, Movable} from "@/components/parts/common"; import {ref} from "vue"; /** @@ -12,7 +12,7 @@ export class ConnectPoint { private _connectedTo :ConnectPoint[] = []; private readonly _name: string; - private readonly _draggable :DraggableOver = new DraggableOver(this); + private readonly _draggable :Draggable = new Draggable(this); constructor(part: CircuitPart, name :string) { this._part = part; @@ -54,7 +54,7 @@ export class ConnectPoint { } - get draggable(): DraggableOver { + get draggable(): Draggable { return this._draggable; } diff --git a/src/components/parts/common/DraggableOver.ts b/src/components/parts/common/Draggable.ts similarity index 63% rename from src/components/parts/common/DraggableOver.ts rename to src/components/parts/common/Draggable.ts index 38faf57..3e18bd6 100644 --- a/src/components/parts/common/DraggableOver.ts +++ b/src/components/parts/common/Draggable.ts @@ -1,15 +1,15 @@ import { ConnectPoint, Movable} from "./index"; -export class DraggableOver extends Movable { +export class Draggable extends Movable { private _dropAreaElement: any; private _canStartDrag = true; - private _onDraggedOverAction: (source: DraggableOver, target: DraggableOver) => void = (source, target) => {} - private _onDropAction: (droppedItem: DraggableOver) => void = (droppedItem :DraggableOver) => {} - private _onDraggingOverAction: (droppedItem: DraggableOver, droppedOVer: DraggableOver) => void = (droppedItem :DraggableOver, droppedOVer: DraggableOver) => {} + private _onDraggedOverAction: (source: Draggable, target: Draggable) => void = (source, target) => {} + private _onDropAction: (droppedItem: Draggable) => void = (droppedItem :Draggable) => {} + private _onDraggingOverAction: (droppedItem: Draggable, droppedOVer: Draggable) => void = (droppedItem :Draggable, droppedOVer: Draggable) => {} private _onDraggingOverEndAction: () => void = () => {} - private _onDraggingStartAction: (item :DraggableOver) => void = (x) => {} + private _onDraggingStartAction: () => void = () => {} private _onDraggingEndAction: () => void = () => {} private readonly _connectPoint: ConnectPoint; @@ -52,31 +52,31 @@ export class DraggableOver extends Movable { this._onDraggingOverEndAction = value; } - get onDraggingOverAction(): (droppedItem: DraggableOver, droppedOVer: DraggableOver) => void { + get onDraggingOverAction(): (droppedItem: Draggable, droppedOVer: Draggable) => void { return this._onDraggingOverAction; } - set onDraggingOverAction(value: (droppedItem: DraggableOver, droppedOVer: DraggableOver) => void) { + set onDraggingOverAction(value: (droppedItem: Draggable, droppedOVer: Draggable) => void) { this._onDraggingOverAction = value; } - get onDraggingStartAction(): (item :DraggableOver) => void { + get onDraggingStartAction(): () => void { return this._onDraggingStartAction; } - set onDraggingStartAction(value: (item :DraggableOver) => void) { + set onDraggingStartAction(value: (item :Draggable) => void) { this._onDraggingStartAction = value; } - get onDraggedOverAction(): (source: DraggableOver, target: DraggableOver) => void { + get onDraggedOverAction(): (source: Draggable, target: Draggable) => void { return this._onDraggedOverAction; } - set onDraggedOverAction(value: (source: DraggableOver, target: DraggableOver) => void) { + set onDraggedOverAction(value: (source: Draggable, target: Draggable) => void) { this._onDraggedOverAction = value; } - set onDropAction(value: (droppedItem: DraggableOver) => void) { + set onDropAction(value: (droppedItem: Draggable) => void) { this._onDropAction = value; } diff --git a/src/components/parts/common/Movable.ts b/src/components/parts/common/Movable.ts index 3861a4c..f025858 100644 --- a/src/components/parts/common/Movable.ts +++ b/src/components/parts/common/Movable.ts @@ -28,7 +28,7 @@ export class Movable extends Clickable { constructor() { super(); - this._mouseService = MouseService.inject(); + this._mouseService = (MouseService.inject() as MouseService); // computed need to be initialized in constructor this._xShifted = computed(() => { return this._x.value + this._xShift.value; @@ -39,12 +39,12 @@ export class Movable extends Clickable { } - onMouseDown(e: MouseEvent) { + onMouseDown(e: MouseEvent|null) { this.mousePressed() this.mouseService.register(this); } - mouseMoved(deltaX :number, deltaY :number) { + moveByDelta(deltaX :number, deltaY :number) { if (this.mouseIsDown.value) { if (this.isDragged.value != true) { this.isDragged.value = true; diff --git a/src/components/parts/common/index.ts b/src/components/parts/common/index.ts index 156e063..fcc98d7 100644 --- a/src/components/parts/common/index.ts +++ b/src/components/parts/common/index.ts @@ -1,6 +1,6 @@ export * from "./Clickable"; export * from "./Movable"; -export * from "./DraggableOver"; +export * from "./Draggable"; export * from "./ConnectPoint"; export * from "./CircuitPart"; export * from "../../services/ConnectionLockService"; \ No newline at end of file diff --git a/src/components/parts/models/CircleModel.ts b/src/components/parts/models/CircleModel.ts index 801b403..b310e00 100644 --- a/src/components/parts/models/CircleModel.ts +++ b/src/components/parts/models/CircleModel.ts @@ -1,4 +1,4 @@ -import {ConnectPoint, CircuitPart, Movable, DraggableOver} from "@/components/parts/common"; +import {ConnectPoint, CircuitPart, Movable, Draggable} from "@/components/parts/common"; import {ref, watch} from "vue"; /** diff --git a/src/components/parts/views/CableView.vue b/src/components/parts/views/CableView.vue index 13d364a..99b80e0 100644 --- a/src/components/parts/views/CableView.vue +++ b/src/components/parts/views/CableView.vue @@ -1,6 +1,6 @@