From dd6af5cd6b3ecd6c9f6b120e16d125f221d645da Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Thu, 23 May 2019 12:30:58 +0200 Subject: [PATCH] Drag Strated and Finished events implemented --- Canvas.js | 9 ++++++++ Container.js | 26 +++++++++++++++++++++++- FloatingSpace/StrategyPart.js | 14 +++++++++++++ FloatingSpace/StrategyPartConstructor.js | 2 +- StrategySpace/Workspace.js | 10 +++++---- 5 files changed, 55 insertions(+), 6 deletions(-) diff --git a/Canvas.js b/Canvas.js index f41ffc738..28f8a003b 100644 --- a/Canvas.js +++ b/Canvas.js @@ -202,6 +202,7 @@ function newCanvas () { if (container !== undefined && container.isDraggeable === true) { containerBeingDragged = container containerDragStarted = true + containerBeingDragged.eventHandler.raiseEvent('onDragStarted', point) return } @@ -216,6 +217,7 @@ function newCanvas () { if (container !== undefined && container.isDraggeable === true) { containerBeingDragged = container containerDragStarted = true + containerBeingDragged.eventHandler.raiseEvent('onDragStarted', point) return } @@ -226,6 +228,7 @@ function newCanvas () { if (container !== undefined && container.isDraggeable === true) { containerBeingDragged = container containerDragStarted = true + containerBeingDragged.eventHandler.raiseEvent('onDragStarted', point) return } @@ -241,6 +244,7 @@ function newCanvas () { if (container !== undefined && container.isDraggeable === true && event.button === 2) { containerBeingDragged = container containerDragStarted = true + containerBeingDragged.eventHandler.raiseEvent('onDragStarted', point) return } @@ -257,6 +261,7 @@ function newCanvas () { if (container.isDraggeable === true) { containerBeingDragged = container containerDragStarted = true + containerBeingDragged.eventHandler.raiseEvent('onDragStarted', point) return } else { viewPortBeingDragged = true @@ -270,6 +275,7 @@ function newCanvas () { containerBeingDragged = container containerDragStarted = true floatingObjectDragStarted = true + containerBeingDragged.eventHandler.raiseEvent('onDragStarted', point) return } @@ -386,6 +392,7 @@ function newCanvas () { floatingObjectDragStarted = false viewPortBeingDragged = false + containerBeingDragged.eventHandler.raiseEvent('onDragFinished', point) containerBeingDragged = undefined browserCanvas.style.cursor = 'auto' @@ -409,6 +416,7 @@ function newCanvas () { let targetContainer = thisObject.floatingSpace.getContainer(point) if (targetContainer !== undefined) { if (targetContainer.id !== containerBeingDragged.id) { + containerBeingDragged.eventHandler.raiseEvent('onDragFinished', point) containerBeingDragged = undefined containerDragStarted = false floatingObjectDragStarted = false @@ -417,6 +425,7 @@ function newCanvas () { return } } else { + containerBeingDragged.eventHandler.raiseEvent('onDragFinished', point) containerDragStarted = false containerBeingDragged = undefined floatingObjectDragStarted = false diff --git a/Container.js b/Container.js index 2b467470f..2753e96d9 100644 --- a/Container.js +++ b/Container.js @@ -33,6 +33,8 @@ function newContainer () { let onFocusParentEvent = false let onNotFocusParentEvent = false let onDisplaceParentEvent = false + let onDragStartedParentEvent = false + let onDragFinishedParentEvent = false let isConnectedToParent = false @@ -42,6 +44,8 @@ function newContainer () { let onFocusEventSubscriptionId let onNotFocusEventSubscriptionId let onDisplaceEventSubscriptionId + let onDragStartedEventSubscriptionId + let onDragFinishedEventSubscriptionId return thisObject @@ -53,6 +57,8 @@ function newContainer () { thisObject.parentContainer.eventHandler.stopListening(onFocusEventSubscriptionId) thisObject.parentContainer.eventHandler.stopListening(onNotFocusEventSubscriptionId) thisObject.parentContainer.eventHandler.stopListening(onDisplaceEventSubscriptionId) + thisObject.parentContainer.eventHandler.stopListening(onDragStartedEventSubscriptionId) + thisObject.parentContainer.eventHandler.stopListening(onDragFinishedEventSubscriptionId) thisObject.parentContainer = undefined thisObject.eventHandler.finalize() @@ -86,7 +92,9 @@ function newContainer () { onMouseNotOverEvent, onFocusEvent, onNotFocusEvent, - onDisplaceEvent + onDisplaceEvent, + onDragStartedEvent, + onDragFinishedEvent ) { connectedToParentWidth = onWidth connectedToParentHeight = onHeight @@ -98,6 +106,8 @@ function newContainer () { onFocusParentEvent = onFocusEvent onNotFocusParentEvent = onNotFocusEvent onDisplaceParentEvent = onDisplaceEvent + onDragStartedParentEvent = onDragStartedEvent + onDragFinishedParentEvent = onDragFinishedEvent isConnectedToParent = true @@ -123,6 +133,12 @@ function newContainer () { if (onDisplaceParentEvent === true) { onDisplaceEventSubscriptionId = thisObject.parentContainer.eventHandler.listenToEvent('onDisplace', onDisplace) } + if (onDragStartedParentEvent === true) { + onDragStartedEventSubscriptionId = thisObject.parentContainer.eventHandler.listenToEvent('onDragStarted', onDragStarted) + } + if (onDragFinishedParentEvent === true) { + onDragFinishedEventSubscriptionId = thisObject.parentContainer.eventHandler.listenToEvent('onDragFinished', onDragFinished) + } if (connectedToParentWidth) { thisObject.frame.width = thisObject.parentContainer.frame.width @@ -175,6 +191,14 @@ function newContainer () { thisObject.eventHandler.raiseEvent('onDisplace', event) } + function onDragStarted (event) { + thisObject.eventHandler.raiseEvent('onDragStarted', event) + } + + function onDragFinished (event) { + thisObject.eventHandler.raiseEvent('onDragFinished', event) + } + function isForThisPurpose (purpose) { if (purpose !== undefined) { switch (purpose) { diff --git a/FloatingSpace/StrategyPart.js b/FloatingSpace/StrategyPart.js index f85a812b1..b27fcb468 100644 --- a/FloatingSpace/StrategyPart.js +++ b/FloatingSpace/StrategyPart.js @@ -45,6 +45,8 @@ function newStrategyPart () { let selfFocusEventSubscriptionId let selfNotFocuskEventSubscriptionId let selfDisplaceEventSubscriptionId + let selfDragStartedEventSubscriptionId + let selfDragFinishedEventSubscriptionId let isHighlighted let highlightCounter = 0 @@ -68,6 +70,8 @@ function newStrategyPart () { thisObject.container.eventHandler.stopListening(selfFocusEventSubscriptionId) thisObject.container.eventHandler.stopListening(selfNotFocuskEventSubscriptionId) thisObject.container.eventHandler.stopListening(selfDisplaceEventSubscriptionId) + thisObject.container.eventHandler.stopListening(selfDragStartedEventSubscriptionId) + thisObject.container.eventHandler.stopListening(selfDragFinishedEventSubscriptionId) thisObject.container.finalize() thisObject.container = undefined @@ -111,6 +115,8 @@ function newStrategyPart () { selfFocusEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onFocus', onFocus) selfNotFocuskEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onNotFocus', onNotFocus) selfDisplaceEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onDisplace', onDisplace) + selfDragStartedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onDragStarted', onDragStarted) + selfDragFinishedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onDragFinished', onDragFinished) } function getContainer (point) { @@ -304,6 +310,14 @@ function newStrategyPart () { thisObject.partTitle.exitEditMode() } + function onDragStarted (event) { + console.log('DRAG STARED') + } + + function onDragFinished (event) { + console.log('DRAG FINISHED') + } + function drawBackground () { if (thisObject.isOnFocus === false) { drawConnectingLine() diff --git a/FloatingSpace/StrategyPartConstructor.js b/FloatingSpace/StrategyPartConstructor.js index 4fc2cca5a..bbe0151e8 100644 --- a/FloatingSpace/StrategyPartConstructor.js +++ b/FloatingSpace/StrategyPartConstructor.js @@ -41,7 +41,7 @@ function newStrategyPartConstructor () { strategyPart.isVisibleFunction = canvas.floatingSpace.isThisPointVisible let menuItemsInitialValues = getMenuItemsInitialValues(strategyPart, floatingObject, payload) strategyPart.initialize(payload, menuItemsInitialValues) - strategyPart.container.connectToParent(floatingObject.container, false, false, true, true, false, false, true, true, true) + strategyPart.container.connectToParent(floatingObject.container, false, false, true, true, false, false, true, true, true, true, true) payload.uiObject = strategyPart setFloatingObjectBasicProperties(floatingObject, payload) diff --git a/StrategySpace/Workspace.js b/StrategySpace/Workspace.js index a68c0097c..557fefa01 100644 --- a/StrategySpace/Workspace.js +++ b/StrategySpace/Workspace.js @@ -120,6 +120,7 @@ function newWorkspace () { } payload.parentNode.phases.splice(i, 1) payload.parentNode = undefined + payload.chainParent = undefined return } } @@ -464,8 +465,8 @@ function newWorkspace () { deleteEvent(strategy.sellPoint) deleteManagedItem(strategy.stopLoss) deleteManagedItem(strategy.buyOrder) - destroyPart(strategy) payload.parentNode.strategies.splice(j, 1) + destroyPart(strategy) cleanNode(strategy) return } @@ -513,8 +514,8 @@ function newWorkspace () { payload.parentNode.phases[k + 1].payload.chainParent = payload.chainParent } /* Continue destroying this phase */ - destroyPart(phase) payload.parentNode.phases.splice(k, 1) + destroyPart(phase) cleanNode(phase) return } @@ -541,8 +542,8 @@ function newWorkspace () { deleteCondition(condition) } situation.conditions = [] - destroyPart(situation) payload.parentNode.situations.splice(j, 1) + destroyPart(situation) cleanNode(situation) return } @@ -564,8 +565,8 @@ function newWorkspace () { for (let i = 0; i < payload.parentNode.conditions.length; i++) { let condition = payload.parentNode.conditions[i] if (condition.id === node.id) { - destroyPart(node) payload.parentNode.conditions.splice(i, 1) + destroyPart(node) cleanNode(condition) return } @@ -750,3 +751,4 @@ function newWorkspace () { } } } +