From 410e9daac203f2ed043fe222ce23aafcc52874f3 Mon Sep 17 00:00:00 2001 From: "Robert D. Vincent" Date: Tue, 4 Oct 2016 15:57:48 -0400 Subject: [PATCH 1/2] Fix #312, force the expected ordering of scans in volume viewer. --- src/brainbrowser/volume-viewer.js | 2 ++ src/brainbrowser/volume-viewer/modules/loading.js | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/brainbrowser/volume-viewer.js b/src/brainbrowser/volume-viewer.js index decb2028..fbe254ac 100644 --- a/src/brainbrowser/volume-viewer.js +++ b/src/brainbrowser/volume-viewer.js @@ -278,6 +278,7 @@ * @name viewer * @property {array} volumes Volumes to be displayed. * @property {boolean} synced Are the cursors being synced across volumes? + * @property {array} containers The div containers for each volume. * @property {DOMElement} dom_element The DOM element where the viewer * will be inserted. * @property {active_panel} active_panel The slice panel that's currently @@ -316,6 +317,7 @@ var viewer = { dom_element: dom_element, volumes: [], + containers: [], synced: false }; diff --git a/src/brainbrowser/volume-viewer/modules/loading.js b/src/brainbrowser/volume-viewer/modules/loading.js index 10bb6eda..71fb3498 100644 --- a/src/brainbrowser/volume-viewer/modules/loading.js +++ b/src/brainbrowser/volume-viewer/modules/loading.js @@ -291,6 +291,7 @@ BrainBrowser.VolumeViewer.modules.loading = function(viewer) { }); viewer.volumes = []; + viewer.containers = []; viewer.active_panel = null; viewer.dom_element.innerHTML = ""; }; @@ -719,7 +720,19 @@ BrainBrowser.VolumeViewer.modules.loading = function(viewer) { }); })(); - dom_element.appendChild(container); + viewer.containers[vol_id] = container; + + /* See if a subsequent volume has already been loaded. If so we want + * to be sure that this container is inserted before the subsequent + * container. This guarantees the ordering of elements. + */ + var next_id = vol_id + 1; + if (next_id in viewer.containers) { + dom_element.insertBefore(container, viewer.containers[next_id]); + } + else { + dom_element.appendChild(container); + } viewer.triggerEvent("volumeuiloaded", { container: container, volume: volume, From 310ad144905874425af3d880e5ac58b7e2bca4aa Mon Sep 17 00:00:00 2001 From: "Robert D. Vincent" Date: Tue, 4 Oct 2016 16:39:36 -0400 Subject: [PATCH 2/2] Handle ordering of larger numbers of images. --- src/brainbrowser/volume-viewer/modules/loading.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/brainbrowser/volume-viewer/modules/loading.js b/src/brainbrowser/volume-viewer/modules/loading.js index 71fb3498..811106f5 100644 --- a/src/brainbrowser/volume-viewer/modules/loading.js +++ b/src/brainbrowser/volume-viewer/modules/loading.js @@ -726,11 +726,15 @@ BrainBrowser.VolumeViewer.modules.loading = function(viewer) { * to be sure that this container is inserted before the subsequent * container. This guarantees the ordering of elements. */ - var next_id = vol_id + 1; - if (next_id in viewer.containers) { - dom_element.insertBefore(container, viewer.containers[next_id]); + var containers = viewer.containers; + var next_id; + for (next_id = vol_id + 1; next_id < containers.length; next_id++) { + if (next_id in containers) { + dom_element.insertBefore(container, containers[next_id]); + break; + } } - else { + if (next_id === containers.length) { dom_element.appendChild(container); } viewer.triggerEvent("volumeuiloaded", {