Lesion and non-target tools are always interactive. Added set/get default tool states to toolManager (OHIFVIEWER-51)

This commit is contained in:
Erik Ziegler 2015-12-10 11:32:53 +01:00
parent da3101be93
commit e4112c44f1
3 changed files with 32 additions and 7 deletions

View File

@ -9,5 +9,8 @@ Meteor.startup(function() {
touch: cornerstoneTools.nonTargetTouch touch: cornerstoneTools.nonTargetTouch
}); });
toolManager.setAlwaysEnabledTools(['lesion', 'nonTarget']); var states = toolManager.getToolDefaultStates();
states.deactivate.push('lesion');
states.deactivate.push('nonTarget');
toolManager.setToolDefaultStates(states);
}); });

View File

@ -23,7 +23,6 @@ Meteor.startup(function() {
flipH: "H", flipH: "H",
wwwc: "W", wwwc: "W",
annotate: "T", annotate: "T",
cineDialog: "C",
cinePlay: "SPACE", cinePlay: "SPACE",
rotateR: "F", rotateR: "F",
rotateL: "G", rotateL: "G",

View File

@ -5,6 +5,13 @@ var alwaysEnabledTools = [];
var tools = {}; var tools = {};
var toolDefaultStates = {
activate: [],
deactivate: [],
enable: [],
disable: []
};
var initialized = false; var initialized = false;
function configureTools() { function configureTools() {
@ -75,8 +82,11 @@ toolManager = {
addTool: function(name, base) { addTool: function(name, base) {
tools[name] = base; tools[name] = base;
}, },
setAlwaysEnabledTools: function(tools) { setToolDefaultStates: function(states) {
alwaysEnabledTools = tools; toolDefaultStates = states;
},
getToolDefaultStates: function() {
return toolDefaultStates;
}, },
setActiveToolForElement: function(tool, element) { setActiveToolForElement: function(tool, element) {
var canvases = $(element).find('canvas'); var canvases = $(element).find('canvas');
@ -91,9 +101,22 @@ toolManager = {
tools[activeTool].touch.deactivate(element); tools[activeTool].touch.deactivate(element);
} }
// Enable any tools set as 'Always enabled' // Enable tools based on their default states
alwaysEnabledTools.forEach(function(toolType) { Object.keys(toolDefaultStates).forEach(function(action) {
cornerstoneTools[toolType].enable(element); 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 // Get the stack toolData