Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

295 avoid errors #296

Merged
merged 2 commits into from
Jan 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading