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
});
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",
wwwc: "W",
annotate: "T",
cineDialog: "C",
cinePlay: "SPACE",
rotateR: "F",
rotateL: "G",

View File

@ -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