StandaloneViewer reconcile + Minor fix to ResizeViewportManager
This commit is contained in:
parent
6ddc844945
commit
36def1e055
@ -20,7 +20,7 @@ Template.viewerMain.onCreated(() => {
|
||||
// and change it to jQuery._data(window, 'events')['resize'].
|
||||
// Otherwise this function will be probably overrided.
|
||||
// See cineDialog instance.setResizeHandler function
|
||||
window.addEventListener('resize', window.ResizeViewportManager.handleResize.bind(window.ResizeViewportManager));
|
||||
window.addEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||
|
||||
// Add beforeUnload event handler to check for unsaved changes
|
||||
window.addEventListener('beforeunload', unloadHandlers.beforeUnload);
|
||||
@ -113,7 +113,7 @@ Template.viewerMain.onDestroyed(() => {
|
||||
OHIF.log.info('viewerMain onDestroyed');
|
||||
|
||||
// Remove the Window resize listener
|
||||
window.removeEventListener('resize', window.ResizeViewportManager.handleResize.bind(window.ResizeViewportManager));
|
||||
window.removeEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||
|
||||
// Remove beforeUnload event handler...
|
||||
window.removeEventListener('beforeunload', unloadHandlers.beforeUnload);
|
||||
|
||||
@ -176,6 +176,10 @@ Viewerbase.dicomTagDescriptions = dicomTagDescriptions;
|
||||
import { ImageSet } from './lib/classes/ImageSet';
|
||||
Viewerbase.ImageSet = ImageSet;
|
||||
|
||||
// LayoutManager
|
||||
import { LayoutManager } from './lib/classes/LayoutManager';
|
||||
Viewerbase.LayoutManager = LayoutManager;
|
||||
|
||||
// ResizeViewportManager
|
||||
import { ResizeViewportManager } from './lib/classes/ResizeViewportManager';
|
||||
Viewerbase.ResizeViewportManager = ResizeViewportManager;
|
||||
|
||||
@ -6,6 +6,7 @@ import { getInstanceClassDefaultViewport } from '../instanceClassSpecificViewpor
|
||||
// Manage resizing viewports triggered by window resize
|
||||
export class ResizeViewportManager {
|
||||
constructor() {
|
||||
this._resizeHandler = null;
|
||||
OHIF.log.info('ResizeViewportManager');
|
||||
}
|
||||
|
||||
@ -150,4 +151,18 @@ export class ResizeViewportManager {
|
||||
this.resizeViewportElements();
|
||||
}, 100);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a unique event handler function associated with a given instance using lazy assignment.
|
||||
* @return {function} Returns a unique copy of the event handler of this class.
|
||||
*/
|
||||
getResizeHandler() {
|
||||
let resizeHandler = this._resizeHandler;
|
||||
if (resizeHandler === null) {
|
||||
resizeHandler = this.handleResize.bind(this);
|
||||
this._resizeHandler = resizeHandler;
|
||||
}
|
||||
return resizeHandler;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -19,10 +19,11 @@ ecmascript@0.6.1 # Enable ECMAScript2015+ syntax in app code
|
||||
shell-server@0.2.1 # Server-side component of the `meteor shell` command
|
||||
|
||||
# OHIF Packages
|
||||
design
|
||||
ohif:core
|
||||
ohif:design
|
||||
ohif:cornerstone
|
||||
ohif:viewerbase
|
||||
ohif:metadata
|
||||
ohif:study-list
|
||||
ohif:dicom-services
|
||||
ohif:hanging-protocols
|
||||
@ -31,7 +32,7 @@ ohif:hanging-protocols
|
||||
aldeed:template-extension
|
||||
aldeed:simple-schema@1.5.3
|
||||
stylus@2.513.8
|
||||
clinical:router
|
||||
iron:router
|
||||
session@1.1.7
|
||||
practicalmeteor:loglevel
|
||||
reactive-dict@1.1.8
|
||||
|
||||
@ -19,10 +19,6 @@ caching-compiler@1.1.9
|
||||
caching-html-compiler@1.0.7
|
||||
callback-hook@1.0.10
|
||||
check@1.2.4
|
||||
clinical:router@2.0.19
|
||||
clinical:router-location@2.1.0
|
||||
clinical:router-middleware-stack@2.1.2
|
||||
clinical:router-url@2.1.0
|
||||
coffeescript@1.11.1_4
|
||||
ddp@1.2.5
|
||||
ddp-client@1.3.2
|
||||
@ -30,7 +26,6 @@ ddp-common@1.2.8
|
||||
ddp-rate-limiter@1.0.6
|
||||
ddp-server@1.3.12
|
||||
deps@1.0.12
|
||||
design@0.0.1
|
||||
diff-sequence@1.0.7
|
||||
ecmascript@0.6.1
|
||||
ecmascript-runtime@0.3.15
|
||||
@ -49,6 +44,10 @@ iron:controller@1.0.12
|
||||
iron:core@1.0.11
|
||||
iron:dynamic-template@1.0.12
|
||||
iron:layout@1.0.12
|
||||
iron:location@1.0.11
|
||||
iron:middleware-stack@1.1.0
|
||||
iron:router@1.0.13
|
||||
iron:url@1.0.11
|
||||
jquery@1.11.10
|
||||
launch-screen@1.1.0
|
||||
livedata@1.0.18
|
||||
@ -74,9 +73,11 @@ npm-mongo@2.2.11_2
|
||||
observe-sequence@1.0.14
|
||||
ohif:core@0.0.1
|
||||
ohif:cornerstone@0.0.1
|
||||
ohif:design@0.0.1
|
||||
ohif:dicom-services@0.0.1
|
||||
ohif:hanging-protocols@0.0.1
|
||||
ohif:log@0.0.1
|
||||
ohif:metadata@0.0.1
|
||||
ohif:study-list@0.0.1
|
||||
ohif:viewerbase@0.0.1
|
||||
ohif:wadoproxy@0.0.1
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
Template.flexboxLayout.events({
|
||||
'transitionend .sidebarMenu'(event) {
|
||||
if (!event.target.classList.contains('sidebarMenu')) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
handleResize();
|
||||
window.ResizeViewportManager.handleResize();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -1,16 +1,21 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
import 'meteor/ohif:viewerbase';
|
||||
|
||||
Meteor.startup(() => {
|
||||
window.ResizeViewportManager = window.ResizeViewportManager || new OHIF.viewerbase.ResizeViewportManager();
|
||||
});
|
||||
|
||||
Template.standaloneViewerMain.onCreated(() => {
|
||||
// Attach the Window resize listener
|
||||
|
||||
// TODO: Check why this seems to need to be in a defer clause
|
||||
// here, but not in the other viewers...
|
||||
Meteor.defer(() => {
|
||||
$(window).on('resize', handleResize);
|
||||
});
|
||||
window.addEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||
|
||||
// Create the synchronizer used to update reference lines
|
||||
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('CornerstoneNewImage', cornerstoneTools.updateImageSynchronizer);
|
||||
|
||||
OHIF.viewer.metadataProvider = OHIF.cornerstone.metadataProvider;
|
||||
// Metadata configuration
|
||||
const metadataProvider = OHIF.viewer.metadataProvider;
|
||||
cornerstoneTools.metaData.addProvider(metadataProvider.provider.bind(metadataProvider));
|
||||
});
|
||||
|
||||
Template.standaloneViewerMain.onRendered(() => {
|
||||
@ -18,19 +23,20 @@ Template.standaloneViewerMain.onRendered(() => {
|
||||
|
||||
const studies = instance.data.studies;
|
||||
const parentElement = instance.$('#layoutManagerTarget').get(0);
|
||||
window.layoutManager = new LayoutManager(parentElement, studies);
|
||||
window.layoutManager.updateViewports();
|
||||
|
||||
OHIF.viewerbase.layoutManager = new OHIF.viewerbase.LayoutManager(parentElement, studies);
|
||||
OHIF.viewerbase.layoutManager.updateViewports();
|
||||
|
||||
// Enable hotkeys
|
||||
enableHotkeys();
|
||||
OHIF.viewerbase.hotkeyUtils.enableHotkeys();
|
||||
});
|
||||
|
||||
Template.standaloneViewerMain.onDestroyed(() => {
|
||||
Template.standaloneViewerMain.onDestroyed(() => {
|
||||
|
||||
// Remove the Window resize listener
|
||||
$(window).off('resize', handleResize);
|
||||
window.removeEventListener('resize', window.ResizeViewportManager.getResizeHandler());
|
||||
|
||||
// Destroy the synchronizer used to update reference lines
|
||||
OHIF.viewer.updateImageSynchronizer.destroy();
|
||||
|
||||
delete window.layoutManager;
|
||||
delete OHIF.viewerbase.layoutManager;
|
||||
});
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
import 'meteor/ohif:viewerbase';
|
||||
|
||||
Template.toolbarSection.helpers({
|
||||
leftSidebarToggleButtonData() {
|
||||
@ -182,7 +183,7 @@ Template.toolbarSection.onRendered(function() {
|
||||
instance.$('#layout').dropdown();
|
||||
|
||||
// Set disabled/enabled tool buttons that are set in toolManager
|
||||
const states = toolManager.getToolDefaultStates();
|
||||
const states = OHIF.viewerbase.toolManager.getToolDefaultStates();
|
||||
const disabledToolButtons = states.disabledToolButtons;
|
||||
const allToolbarButtons = $('#toolbar').find('button');
|
||||
if (disabledToolButtons && disabledToolButtons.length > 0) {
|
||||
|
||||
@ -1,14 +1,16 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
import 'meteor/ohif:viewerbase';
|
||||
import 'meteor/ohif:metadata';
|
||||
|
||||
OHIF.viewer = OHIF.viewer || {};
|
||||
const viewportUtils = OHIF.viewerbase.viewportUtils;
|
||||
|
||||
OHIF.viewer.functionList = {
|
||||
toggleCineDialog: toggleCineDialog,
|
||||
toggleCinePlay: toggleCinePlay,
|
||||
clearTools: clearTools,
|
||||
resetViewport: resetViewport,
|
||||
invert: invert
|
||||
toggleCineDialog: viewportUtils.toggleCineDialog,
|
||||
toggleCinePlay: viewportUtils.toggleCinePlay,
|
||||
clearTools: viewportUtils.clearTools,
|
||||
resetViewport: viewportUtils.resetViewport,
|
||||
invert: viewportUtils.invert
|
||||
};
|
||||
|
||||
Session.set('activeContentId', 'standalone');
|
||||
@ -50,7 +52,8 @@ Template.viewer.onCreated(() => {
|
||||
ViewerData[contentId].studyInstanceUids = [];
|
||||
instance.data.studies.forEach(study => {
|
||||
study.selected = true;
|
||||
study.displaySets = createStacks(study);
|
||||
const studyMetadata = new OHIF.metadata.StudyMetadata(study);
|
||||
study.displaySets = OHIF.viewerbase.sortingManager.getDisplaySets(studyMetadata);
|
||||
OHIF.viewer.Studies.insert(study);
|
||||
ViewerData[contentId].studyInstanceUids.push(study.studyInstanceUid);
|
||||
});
|
||||
|
||||
@ -65,6 +65,7 @@ if (Meteor.isClient) {
|
||||
|
||||
// Fire the request the server
|
||||
oReq.send();
|
||||
this.next();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user