From e4112c44f1540650bb682ca97dd2493406190cdf Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Thu, 10 Dec 2015 11:32:53 +0100 Subject: [PATCH] Lesion and non-target tools are always interactive. Added set/get default tool states to toolManager (OHIFVIEWER-51) --- LesionTracker/client/components/init.js | 5 +++- Packages/viewerbase/lib/enableHotkeys.js | 1 - Packages/viewerbase/lib/toolManager.js | 33 ++++++++++++++++++++---- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/LesionTracker/client/components/init.js b/LesionTracker/client/components/init.js index 6404dee68..27cc0595c 100644 --- a/LesionTracker/client/components/init.js +++ b/LesionTracker/client/components/init.js @@ -9,5 +9,8 @@ Meteor.startup(function() { touch: cornerstoneTools.nonTargetTouch }); - toolManager.setAlwaysEnabledTools(['lesion', 'nonTarget']); + var states = toolManager.getToolDefaultStates(); + states.deactivate.push('lesion'); + states.deactivate.push('nonTarget'); + toolManager.setToolDefaultStates(states); }); \ No newline at end of file diff --git a/Packages/viewerbase/lib/enableHotkeys.js b/Packages/viewerbase/lib/enableHotkeys.js index 7584dc063..32f7141dc 100644 --- a/Packages/viewerbase/lib/enableHotkeys.js +++ b/Packages/viewerbase/lib/enableHotkeys.js @@ -23,7 +23,6 @@ Meteor.startup(function() { flipH: "H", wwwc: "W", annotate: "T", - cineDialog: "C", cinePlay: "SPACE", rotateR: "F", rotateL: "G", diff --git a/Packages/viewerbase/lib/toolManager.js b/Packages/viewerbase/lib/toolManager.js index 59dc00d6a..657c7c752 100644 --- a/Packages/viewerbase/lib/toolManager.js +++ b/Packages/viewerbase/lib/toolManager.js @@ -5,6 +5,13 @@ var alwaysEnabledTools = []; var tools = {}; +var toolDefaultStates = { + activate: [], + deactivate: [], + enable: [], + disable: [] +}; + var initialized = false; function configureTools() { @@ -75,8 +82,11 @@ toolManager = { addTool: function(name, base) { tools[name] = base; }, - setAlwaysEnabledTools: function(tools) { - alwaysEnabledTools = tools; + setToolDefaultStates: function(states) { + toolDefaultStates = states; + }, + getToolDefaultStates: function() { + return toolDefaultStates; }, setActiveToolForElement: function(tool, element) { var canvases = $(element).find('canvas'); @@ -91,9 +101,22 @@ toolManager = { tools[activeTool].touch.deactivate(element); } - // Enable any tools set as 'Always enabled' - alwaysEnabledTools.forEach(function(toolType) { - cornerstoneTools[toolType].enable(element); + // Enable tools based on their default states + Object.keys(toolDefaultStates).forEach(function(action) { + var relevantTools = toolDefaultStates[action]; + if (!relevantTools || !relevantTools.length) { + return; + } + + relevantTools.forEach(function(toolType) { + if ((action === 'activate') || + (action === 'deactivate')) { + tools[toolType].mouse[action](element, 1); + } else { + tools[toolType].mouse[action](element); + } + tools[toolType].touch[action](element); + }); }); // Get the stack toolData