From b4475efc5dea9ec912d3222d76adf5bfb4207d01 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 30 Mar 2020 20:04:24 +0200 Subject: [PATCH] numbers shorcuts --- Canvas.js | 22 ++++++++++++++++++++++ FloatingSpace/CircularMenuItem.js | 15 ++++++++++++++- Globals.js | 1 + 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Canvas.js b/Canvas.js index 29d8cc855..473851549 100644 --- a/Canvas.js +++ b/Canvas.js @@ -40,6 +40,7 @@ function newCanvas () { designSpace: undefined, animation: undefined, mouse: undefined, + shorcutNumbers: new Map(), initialize: initialize, finalize: finalize } @@ -57,12 +58,14 @@ function newCanvas () { }, action: '' } + return thisObject function finalize () { try { thisObject.chartingSpace.finalize() thisObject.floatingSpace.finalize() + thisObject.shorcutNumbers = undefined browserCanvas.removeEventListener('mousedown', onMouseDown, false) browserCanvas.removeEventListener('mouseup', onMouseUp, false) @@ -252,6 +255,24 @@ function newCanvas () { checkMediaRecording(event) canvas.chartingSpace.onKeyPressed(event) + /* Shourcuts to Menu Items */ + if ((event.keyCode >= 48 && event.keyCode <= 57)) { + let number = event.key + if (MENU_ITEM_ON_FOCUS !== undefined) { + let menuItem = thisObject.shorcutNumbers.get(number) + if (menuItem !== undefined) { + menuItem.shorcutNumber = undefined + } + thisObject.shorcutNumbers.set(number, MENU_ITEM_ON_FOCUS) + MENU_ITEM_ON_FOCUS.shorcutNumber = number + } else { + let menuItem = thisObject.shorcutNumbers.get(number) + if (menuItem !== undefined) { + menuItem.internalClick() + } + } + } + if (event.key === 'Escape' && canvas.floatingSpace.inMapMode === true) { canvas.floatingSpace.exitMapMode() } @@ -409,6 +430,7 @@ function newCanvas () { } if ((event.ctrlKey === true || event.metaKey === true) && event.altKey === true) { + /* Shortcuts to nodes */ if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 65 && event.keyCode <= 90)) { /* From here we prevent the default behaviour. Putting it earlier prevents imput box and text area to receive keystrokes */ event.preventDefault() diff --git a/FloatingSpace/CircularMenuItem.js b/FloatingSpace/CircularMenuItem.js index fa75c524a..e344d69fc 100644 --- a/FloatingSpace/CircularMenuItem.js +++ b/FloatingSpace/CircularMenuItem.js @@ -39,6 +39,7 @@ function newCircularMenuItem () { relatedUiObject: undefined, dontShowAtFullscreen: undefined, isEnabled: true, + shorcutNumber: undefined, internalClick: internalClick, physics: physics, invisiblePhysics: invisiblePhysics, @@ -255,13 +256,20 @@ function newCircularMenuItem () { } else { isMouseOver = false } + MENU_ITEM_ON_FOCUS = thisObject } function onMouseNotOver (point) { isMouseOver = false + MENU_ITEM_ON_FOCUS = undefined } function internalClick () { + if (thisObject.shorcutNumber !== undefined) { + let label = thisObject.payload.node.name + ' ' + labelToPrint + canvas.cockpitSpace.setStatus(label, 50, canvas.cockpitSpace.statusTypes.ALL_GOOD) + } + onMouseClick() } @@ -435,6 +443,11 @@ function newCircularMenuItem () { /* Menu Label */ if (thisObject.type === 'Icon & Text') { + label = labelToPrint + if (thisObject.shorcutNumber !== undefined) { + label = '' + thisObject.shorcutNumber + '- ' + labelToPrint + } + let labelPoint let fontSize = 15 @@ -448,7 +461,7 @@ function newCircularMenuItem () { browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)' - browserCanvasContext.fillText(labelToPrint, labelPoint.x, labelPoint.y) + browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y) } } } diff --git a/Globals.js b/Globals.js index ef291cca2..1eea3dd41 100644 --- a/Globals.js +++ b/Globals.js @@ -121,6 +121,7 @@ let dailyFilePeriods = dailyFilePeriods = JSON.parse(dailyFilePeriods); let SHOW_ANIMATION_PERFORMACE = false; +let MENU_ITEM_ON_FOCUS let testUser = window.localStorage.getItem("test_user") let LOGGED_IN_USER_LOCAL_STORAGE_KEY