fix(tool-context-menu): Show context-menu on tool right-click
This commit is contained in:
parent
4ee352592c
commit
e947f1fad0
@ -37,47 +37,6 @@ function removeMeasurementTimepoint(data, index, toolType, element) {
|
|||||||
cornerstone.updateImage(element);
|
cornerstone.updateImage(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO = Check if we have the same function already in Cornerstone Tools
|
|
||||||
function getNearbyToolData(element, coords) {
|
|
||||||
const Viewerbase = OHIF.viewerbase;
|
|
||||||
const allTools = Viewerbase.toolManager.getTools();
|
|
||||||
let pointNearTool = false;
|
|
||||||
const isTouchDevice = Viewerbase.helpers.isTouchDevice();
|
|
||||||
const nearbyTool = {};
|
|
||||||
|
|
||||||
toolTypes.forEach(toolType => {
|
|
||||||
const toolData = cornerstoneTools.getToolState(element, toolType);
|
|
||||||
if (!toolData) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = 0; i < toolData.data.length; i++) {
|
|
||||||
const data = toolData.data[i];
|
|
||||||
|
|
||||||
let toolInterface;
|
|
||||||
if (isTouchDevice) {
|
|
||||||
toolInterface = allTools[toolType].touch;
|
|
||||||
} else {
|
|
||||||
toolInterface = allTools[toolType].mouse;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (toolInterface.pointNearTool(element, data, coords)) {
|
|
||||||
pointNearTool = true;
|
|
||||||
nearbyTool.tool = data;
|
|
||||||
nearbyTool.index = i;
|
|
||||||
nearbyTool.toolType = toolType;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pointNearTool === true) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return pointNearTool ? nearbyTool : undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
function keyDownCallback(event) {
|
function keyDownCallback(event) {
|
||||||
const eventData = event.detail;
|
const eventData = event.detail;
|
||||||
const keyCode = eventData.which;
|
const keyCode = eventData.which;
|
||||||
@ -88,7 +47,7 @@ function keyDownCallback(event) {
|
|||||||
if (keyCode === keys.DELETE ||
|
if (keyCode === keys.DELETE ||
|
||||||
(keyCode === keys.D && eventData.event.ctrlKey === true)) {
|
(keyCode === keys.D && eventData.event.ctrlKey === true)) {
|
||||||
|
|
||||||
const nearbyToolData = getNearbyToolData(eventData.element, eventData.currentPoints.canvas);
|
const nearbyToolData = OHIF.viewerbase.toolManager.getNearbyToolData(eventData.element, eventData.currentPoints.canvas, toolTypes);
|
||||||
|
|
||||||
if (!nearbyToolData || nearbyToolData.tool.isCreating) return;
|
if (!nearbyToolData || nearbyToolData.tool.isCreating) return;
|
||||||
|
|
||||||
|
|||||||
@ -59,7 +59,7 @@ Template.viewerMain.events({
|
|||||||
'cornerstonetoolsmouseclick .imageViewerViewport'(event) {
|
'cornerstonetoolsmouseclick .imageViewerViewport'(event) {
|
||||||
const { originalEvent } = event;
|
const { originalEvent } = event;
|
||||||
const eventData = originalEvent.detail;
|
const eventData = originalEvent.detail;
|
||||||
if (eventData.which === 3) {
|
if (eventData.event && eventData.event.which === 3) {
|
||||||
createDropdown(eventData);
|
createDropdown(eventData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -213,10 +213,35 @@ export const toolManager = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getNearbyToolData() {
|
getNearbyToolData(element, coords, toolTypes) {
|
||||||
// TODO: Implement this and let the others (e.g. deleteLesionKeyboardTool) use this function
|
let pointNearTool = false;
|
||||||
// if it does not exist in cornerstoneTools
|
const nearbyTool = {};
|
||||||
return undefined;
|
|
||||||
|
const toolTypesToCheck = toolTypes || this.getTools();
|
||||||
|
toolTypesToCheck.forEach(toolType => {
|
||||||
|
const toolData = cornerstoneTools.getToolState(element, toolType);
|
||||||
|
if (!toolData) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < toolData.data.length; i++) {
|
||||||
|
const data = toolData.data[i];
|
||||||
|
const tool = cornerstoneTools.getToolForElement(element, toolType);
|
||||||
|
if (tool && typeof tool.pointNearTool === 'function' && tool.pointNearTool(element, data, coords)) {
|
||||||
|
pointNearTool = true;
|
||||||
|
nearbyTool.tool = data;
|
||||||
|
nearbyTool.index = i;
|
||||||
|
nearbyTool.toolType = toolType;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pointNearTool === true) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return pointNearTool ? nearbyTool : undefined;
|
||||||
},
|
},
|
||||||
|
|
||||||
getActiveTool(button = 'left') {
|
getActiveTool(button = 'left') {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user