Skip to content

Commit

Permalink
Merge pull request #296 from ivmartel/295-avoid-errors
Browse files Browse the repository at this point in the history
295 avoid errors
  • Loading branch information
ivmartel authored Jan 8, 2025
2 parents 45b0aa2 + b375d3c commit e29acef
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 24 deletions.
50 changes: 27 additions & 23 deletions src/applauncher.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ function startApp() {
loadboxGui.setup(loaderList);

// info layer
var infoController = new dwvjq.gui.info.Controller(myapp);
var infoDataId = '0';
var infoController = new dwvjq.gui.info.Controller(myapp, infoDataId);
infoController.init();

var infoElement = document.getElementById('infoLayer');
Expand Down Expand Up @@ -112,19 +113,17 @@ function startApp() {
var nLoadItem = null;
var nReceivedLoadError = null;
var nReceivedLoadAbort = null;
var isFirstRender = null;
myapp.addEventListener('loadstart', function (event) {
// reset counts
nLoadItem = 0;
nReceivedLoadError = 0;
nReceivedLoadAbort = 0;
isFirstRender = true;
// hide drop box
dropBoxLoader.showDropbox(false);
// reset progress bar
dwvjq.gui.displayProgress(0);
// update info controller
if (event.loadtype === 'image') {
if (event.loadtype === 'image' && event.dataid === infoDataId) {
infoController.reset();
}
// allow to cancel via crtl-x
Expand All @@ -141,30 +140,35 @@ function startApp() {
infoController.onLoadItem(event);
}
});
myapp.addEventListener('renderstart', function (/*event*/) {
if (isFirstRender) {
infoController.addEventListener('valuechange', infoOverlay.onDataChange);
}
});
myapp.addEventListener('renderend', function (/*event*/) {
if (isFirstRender) {
isFirstRender = false;
// initialise and display the toolbox on first render
toolboxGui.initialise();
toolboxGui.display(true);

// init controller at first render start
var initInfoController = function () {
infoController.addEventListener('valuechange', infoOverlay.onDataChange);
myapp.removeEventListener('renderstart', initInfoController);
};
myapp.addEventListener('renderstart', initInfoController);
// init toolbox gui at first render end
var initToolboxGui = function () {
toolboxGui.initialise();
toolboxGui.display(true);
myapp.removeEventListener('renderend', initToolboxGui);
};
myapp.addEventListener('renderend', initToolboxGui);

myapp.addEventListener('load', function (event) {
// only initialise at first data
if (event.dataid === infoDataId) {
// initialise undo gui
undoGui.setup();
// update meta data table
metaDataGui.update(myapp.getMetaData('0'));
}
});
myapp.addEventListener('load', function (/*event*/) {
// initialise undo gui
undoGui.setup();
// update meta data table
metaDataGui.update(myapp.getMetaData(0));
});
myapp.addEventListener('loaderror', function (event) {
myapp.addEventListener('error', function (event) {
console.error('load error', event);
++nReceivedLoadError;
});
myapp.addEventListener('loadabort', function (/*event*/) {
myapp.addEventListener('abort', function (/*event*/) {
++nReceivedLoadAbort;
});
myapp.addEventListener('loadend', function (/*event*/) {
Expand Down
16 changes: 15 additions & 1 deletion src/gui/infoController.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ function getNumberToPrecision(precision) {
* DICOM Header overlay info controller.
* @constructor
* @param {Object} app The assciated app.
* @param {string} dataId The assciated data id.
*/
dwvjq.gui.info.Controller = function (app) {
dwvjq.gui.info.Controller = function (app, dataId) {

// overlay data
var overlayData = [];
Expand Down Expand Up @@ -49,6 +50,10 @@ dwvjq.gui.info.Controller = function (app) {
* @param {Object} event The loaditem event.
*/
this.onLoadItem = function (event) {
// only handle input data id
if (event.dataid !== dataId) {
return;
}
// create and store overlay data
var data = event.data;
var dataUid;
Expand Down Expand Up @@ -82,6 +87,11 @@ dwvjq.gui.info.Controller = function (app) {
* @param {Object} event The slicechange event.
*/
function onSliceChange(event) {
// only handle input data id
if (event.dataid !== dataId) {
return;
}
// update data
if (typeof event.data !== 'undefined' &&
typeof event.data.imageUid !== 'undefined') {
currentDataUid = event.data.imageUid;
Expand All @@ -96,6 +106,10 @@ dwvjq.gui.info.Controller = function (app) {
* registered in toggleListeners
*/
function updateData(event) {
// only handle input data id
if (event.dataid !== dataId) {
return;
}

var sliceOverlayData = overlayData[currentDataUid];
if (typeof sliceOverlayData === 'undefined') {
Expand Down

0 comments on commit e29acef

Please sign in to comment.