Disable double click for now. (#1872)

This commit is contained in:
James Petts 2020-07-06 13:28:21 +01:00 committed by GitHub
parent 9099e197fb
commit 25ded882ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 71 additions and 34 deletions

View File

@ -404,6 +404,8 @@ function OHIFCornerstoneSRViewport({
? _viewportLabels[firstViewportIndexWithMatchingDisplaySetUid]
: '';
// TODO -> disabled double click for now: onDoubleClick={_onDoubleClick}
return (
<>
<ViewportActionBar
@ -434,14 +436,15 @@ function OHIFCornerstoneSRViewport({
spacing:
PixelSpacing && PixelSpacing.length
? `${PixelSpacing[0].toFixed(2)}mm x ${PixelSpacing[1].toFixed(
2
)}mm`
2
)}mm`
: '',
scanner: ManufacturerModelName || '',
},
}}
/>
<div className="relative flex flex-row w-full h-full overflow-hidden" onDoubleClick={_onDoubleClick}>
<div className="relative flex flex-row w-full h-full overflow-hidden">
<CornerstoneViewport
onElementEnabled={onElementEnabled}
viewportIndex={viewportIndex}

View File

@ -292,6 +292,8 @@ function TrackedCornerstoneViewport({
const showNavArrows = isTracked && viewportIndex === activeViewportIndex;
// TODO -> disabled double click for now: onDoubleClick={_onDoubleClick}
return (
<>
<ViewportActionBar
@ -328,10 +330,7 @@ function TrackedCornerstoneViewport({
}}
/>
{/* TODO: Viewport interface to accept stack or layers of content like this? */}
<div
className="relative flex flex-row w-full h-full overflow-hidden"
onDoubleClick={_onDoubleClick}
>
<div className="relative flex flex-row w-full h-full overflow-hidden">
<CornerstoneViewport
onElementEnabled={onElementEnabled}
viewportIndex={viewportIndex}
@ -416,7 +415,6 @@ function _getCornerstoneStack(displaySet, dataSource) {
return stack;
}
function _onDoubleClick() {
const cancelActiveManipulatorsForElement = cornerstoneTools.getModule(
'manipulatorState'
@ -427,7 +425,6 @@ function _onDoubleClick() {
});
}
/**
* Builds the viewport data from a datasource and a displayset.
*

View File

@ -9,6 +9,7 @@ const publicAPI = {
setCachedLayout: _setCachedLayout,
setServiceImplementation,
reset: _reset,
set: _set,
};
const serviceImplementation = {
@ -20,6 +21,7 @@ const serviceImplementation = {
_setLayout: () => console.warn('setLayout() NOT IMPLEMENTED'),
_reset: () => console.warn('reset() NOT IMPLEMENTED'),
_setCachedLayout: () => console.warn('setCachedLayout() NOT IMPLEMENTED'),
_set: () => console.warn('set() NOT IMPLEMENTED'),
};
function _getState() {
@ -41,6 +43,10 @@ function _setLayout({ numCols, numRows }) {
return serviceImplementation._setLayout({ numCols, numRows });
}
function _set(state) {
return serviceImplementation._set(state);
}
function _reset() {
return serviceImplementation._reset({});
}
@ -55,6 +61,7 @@ function setServiceImplementation({
setCachedLayout: setCachedLayoutImplementation,
setLayout: setLayoutImplementation,
reset: resetImplementation,
set: setImplementation,
}) {
if (getStateImplementation) {
serviceImplementation._getState = getStateImplementation;
@ -74,6 +81,9 @@ function setServiceImplementation({
if (setCachedLayoutImplementation) {
serviceImplementation._setCachedLayout = setCachedLayoutImplementation;
}
if (setImplementation) {
serviceImplementation._set = setImplementation;
}
}
export default {

View File

@ -36,7 +36,7 @@ export function ViewportGridProvider({ children, service }) {
viewports[viewportIndex] = { displaySetInstanceUID, imageIndex };
return { ...state, ...{ viewports }, cachedLayout: undefined };
return { ...state, ...{ viewports }, cachedLayout: null };
}
case 'SET_LAYOUT': {
const { numCols, numRows } = action.payload;
@ -55,7 +55,7 @@ export function ViewportGridProvider({ children, service }) {
return {
...state,
...{ activeViewportIndex, numCols, numRows, viewports },
cachedLayout: undefined,
cachedLayout: null,
};
}
case 'RESET': {
@ -63,15 +63,21 @@ export function ViewportGridProvider({ children, service }) {
numCols: 1,
numRows: 1,
activeViewportIndex: 0,
viewports: [
{ displaySetInstanceUID: undefined, imageIndex: undefined },
],
viewports: [{ displaySetInstanceUID: null, imageIndex: null }],
cachedLayout: null,
};
}
case 'SET_CACHED_LAYOUT': {
return { ...state, cachedLayout: action.payload };
}
case 'SET': {
return {
...state,
...action.payload,
};
}
default:
return action.payload;
}
@ -129,6 +135,15 @@ export function ViewportGridProvider({ children, service }) {
[dispatch]
);
const set = useCallback(
payload =>
dispatch({
type: 'SET',
payload,
}),
[dispatch]
);
/**
* Sets the implementation of a modal service that can be used by extensions.
*
@ -143,6 +158,7 @@ export function ViewportGridProvider({ children, service }) {
setLayout,
reset,
setCachedLayout,
set,
});
}
}, [
@ -153,6 +169,7 @@ export function ViewportGridProvider({ children, service }) {
setLayout,
reset,
setCachedLayout,
set,
]);
const api = {
@ -161,6 +178,8 @@ export function ViewportGridProvider({ children, service }) {
setDisplaysetForViewport,
setLayout,
setCachedLayout,
reset,
set,
};
return (

View File

@ -30,6 +30,7 @@ function ViewerViewportGrid(props) {
const isImageSet = x => x instanceof ImageSet;
return isImageSet(a) === isImageSet(b) ? 0 : isImageSet(a) ? -1 : 1;
});
viewportGridService.setDisplaysetForViewport({
viewportIndex: 0,
displaySetInstanceUID: displaySets[0].displaySetInstanceUID,
@ -68,17 +69,17 @@ function ViewerViewportGrid(props) {
};
const onDoubleClick = viewportIndex => {
// TODO -> Disabled for now.
// onNewImage on a cornerstone viewport is firing setDisplaySetForViewport.
// Which it really really shouldn't. We need a larger fix for jump to
// measurements and all cornerstone "imageIndex" state to fix this.
if (cachedLayout) {
viewportGridService.setLayout({
viewportGridService.set({
numCols: cachedLayout.numCols,
numRows: cachedLayout.numRows,
});
cachedLayout.viewports.forEach((viewport, viewportIndex) => {
viewportGridService.setDisplaysetForViewport({
viewportIndex,
displaySetInstanceUID: viewport.displaySetInstanceUID,
});
activeViewportIndex: cachedLayout.activeViewportIndex,
viewports: cachedLayout.viewports,
cachedLayout: null,
});
return;
@ -90,17 +91,22 @@ function ViewerViewportGrid(props) {
};
});
viewportGridService.setDisplaysetForViewport({
viewportIndex: 0,
displaySetInstanceUID: viewports[viewportIndex].displaySetInstanceUID,
});
viewportGridService.setLayout({ numCols: 1, numRows: 1 });
viewportGridService.setCachedLayout({
numCols,
numRows,
viewports: cachedViewports,
viewportGridService.set({
numCols: 1,
numRows: 1,
activeViewportIndex: 0,
viewports: [
{
displaySetInstanceUID: viewports[viewportIndex].displaySetInstanceUID,
imageIndex: undefined,
},
],
cachedLayout: {
numCols,
numRows,
viewports: cachedViewports,
activeViewportIndex: viewportIndex,
},
});
};
@ -157,6 +163,9 @@ function ViewerViewportGrid(props) {
setActiveViewportIndex(viewportIndex);
};
// TEMP -> Double click disabled for now
// onDoubleClick={() => onDoubleClick(viewportIndex)}
viewportPanes[i] = (
<ViewportPane
key={viewportIndex}
@ -164,7 +173,6 @@ function ViewerViewportGrid(props) {
acceptDropsFor="displayset"
onDrop={onDropHandler.bind(null, viewportIndex)}
onInteraction={onInterationHandler}
onDoubleClick={() => onDoubleClick(viewportIndex)}
isActive={activeViewportIndex === viewportIndex}
>
<ViewportComponent