AWV-1: Preventing looping on display set navigation

This commit is contained in:
Bruno Alves de Faria 2016-09-01 16:17:43 -03:00
parent 17f8d87d32
commit 8145e08f66
5 changed files with 54 additions and 9 deletions

View File

@ -2,11 +2,8 @@ import { OHIF } from 'meteor/ohif:core';
OHIF.viewer = {}; OHIF.viewer = {};
// Move display sets forward or backward in the selected viewport // Move display sets forward or backward in the given viewport index
OHIF.viewer.moveDisplaySet = isNext => { OHIF.viewer.moveSingleViewportDisplaySets = (viewportIndex, isNext) => {
// Get the selected viewport index
const viewportIndex = Session.get('activeViewport');
// Get the selected viewport data // Get the selected viewport data
const viewportData = window.layoutManager.viewportData[viewportIndex]; const viewportData = window.layoutManager.viewportData[viewportIndex];
@ -28,11 +25,21 @@ OHIF.viewer.moveDisplaySet = isNext => {
if (isNext) { if (isNext) {
newIndex++; newIndex++;
if (newIndex >= displaySets.length) { if (newIndex >= displaySets.length) {
// Stop here if looping is now allowing
if (!OHIF.uiSettings.displaySetNavigationLoopOverSeries) {
return;
}
newIndex = 0; newIndex = 0;
} }
} else { } else {
newIndex--; newIndex--;
if (newIndex < 0) { if (newIndex < 0) {
// Stop here if looping is now allowing
if (!OHIF.uiSettings.displaySetNavigationLoopOverSeries) {
return;
}
newIndex = displaySets.length - 1; newIndex = displaySets.length - 1;
} }
} }
@ -43,3 +50,23 @@ OHIF.viewer.moveDisplaySet = isNext => {
// Rerender the viewport using the new display set data // Rerender the viewport using the new display set data
window.layoutManager.rerenderViewportWithNewDisplaySet(viewportIndex, newDisplaySetData); window.layoutManager.rerenderViewportWithNewDisplaySet(viewportIndex, newDisplaySetData);
}; };
// Move multiple display sets forward or backward in all viewports
OHIF.viewer.moveMultipleViewportDisplaySets = isNext => {
// TODO: implement
};
// Move display sets forward or backward
OHIF.viewer.moveDisplaySets = isNext => {
//Check if navigation is on a single or multiple viewports
if (OHIF.uiSettings.displaySetNavigationMultipleViewports) {
// Move display sets on multiple viewports
OHIF.viewer.moveMultipleViewportDisplaySets(isNext);
} else {
// Get the selected viewport index
const viewportIndex = Session.get('activeViewport');
// Move display sets on a single viewport
OHIF.viewer.moveSingleViewportDisplaySets(viewportIndex, isNext);
}
};

View File

@ -9,7 +9,7 @@
<i class="fa fa-toggle-down fa-fw"></i> <i class="fa fa-toggle-down fa-fw"></i>
{{/if}} {{/if}}
</div> </div>
<div class="buttonLabel"> <div class="buttonLabel" disabled="{{#if (disableButton isPrevious)}}disabled{{/if}}">
{{#if isPrevious}}Previous{{else}}Next{{/if}} {{#if isPrevious}}Previous{{else}}Next{{/if}}
</div> </div>
</div> </div>

View File

@ -3,10 +3,16 @@ import { Template } from 'meteor/templating';
Template.displaySetNavigation.events({ Template.displaySetNavigation.events({
'click .js-next'(event, instance) { 'click .js-next'(event, instance) {
OHIF.viewer.moveDisplaySet(true); OHIF.viewer.moveDisplaySets(true);
}, },
'click .js-prev'(event, instance) { 'click .js-prev'(event, instance) {
OHIF.viewer.moveDisplaySet(false); OHIF.viewer.moveDisplaySets(false);
}
});
Template.displaySetNavigation.helpers({
disableButton(isPrevious) {
} }
}); });

View File

@ -121,6 +121,16 @@ export const UISettings = new SimpleSchema({
type: Boolean, type: Boolean,
label: 'Left sidebar open by default?', label: 'Left sidebar open by default?',
defaultValue: false defaultValue: false
},
displaySetNavigationLoopOverSeries: {
type: Boolean,
label: 'The UP/DOWN display set navigation buttons will start over when reach the last display set in viewport?',
defaultValue: true
},
displaySetNavigationMultipleViewports: {
type: Boolean,
label: 'The UP/DOWN display set navigation buttons will iterate over all the viewports at once?',
defaultValue: false
} }
}); });

View File

@ -23,7 +23,9 @@
"verifyEmail": false, "verifyEmail": false,
"ui": { "ui": {
"studyListFunctionsEnabled": true, "studyListFunctionsEnabled": true,
"leftSidebarOpen": true "leftSidebarOpen": true,
"displaySetNavigationLoopOverSeries": false,
"displaySetNavigationMultipleViewports": true
} }
} }
} }