Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | 34x 46x 46x 46x 46x 46x 46x 46x 46x 34x 46x 46x 46x 46x 46x 46x 46x 34x 46x 46x 108x 108x 108x 108x 108x 159x 159x 34x 34x | import { eventTarget, EVENTS } from '@cornerstonejs/core'; import { Enums } from '@cornerstonejs/tools'; import { setEnabledElement } from './state'; import { findNearbyToolData } from './utils/findNearbyToolData'; const cs3DToolsEvents = Enums.Events; /** * Generates a name, consisting of: * * alt when the alt key is down * * ctrl when the cctrl key is down * * shift when the shift key is down * * 'button' followed by the button number (1 left, 3 right etc) */ function getEventName(evt) { const button = evt.detail.event.which; const nameArr = []; Iif (evt.detail.event.altKey) { nameArr.push('alt'); } Iif (evt.detail.event.ctrlKey) { nameArr.push('ctrl'); } Iif (evt.detail.event.shiftKey) { nameArr.push('shift'); } nameArr.push('button'); nameArr.push(button); return nameArr.join(''); } function initContextMenu({ cornerstoneViewportService, customizationService, commandsManager, }): void { /* * Run the commands associated with the given button press, * defaults on button1 and button2 */ const cornerstoneViewportHandleEvent = (name, evt) => { const customizations = customizationService.getCustomization( 'cornerstoneViewportClickCommands' ); const toRun = customizations[name]; Iif (!toRun) { return; } // only find nearbyToolData if required, for the click (which closes the context menu // we don't need to find nearbyToolData) let nearbyToolData = null; Iif (toRun.some(command => command.commandOptions?.requireNearbyToolData)) { nearbyToolData = findNearbyToolData(commandsManager, evt); } const options = { nearbyToolData, event: evt, }; commandsManager.run(toRun, options); }; const cornerstoneViewportHandleClick = evt => { const name = getEventName(evt); cornerstoneViewportHandleEvent(name, evt); }; function elementEnabledHandler(evt) { const { viewportId, element } = evt.detail; const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId); Iif (!viewportInfo) { return; } // TODO check update upstream setEnabledElement(viewportId, element); element.addEventListener(cs3DToolsEvents.MOUSE_CLICK, cornerstoneViewportHandleClick); } function elementDisabledHandler(evt) { const { element } = evt.detail; element.removeEventListener(cs3DToolsEvents.MOUSE_CLICK, cornerstoneViewportHandleClick); } eventTarget.addEventListener(EVENTS.ELEMENT_ENABLED, elementEnabledHandler.bind(null)); eventTarget.addEventListener(EVENTS.ELEMENT_DISABLED, elementDisabledHandler.bind(null)); } export default initContextMenu; |