LT-399: Load measurements and sync viewports when clicking on measurement number
This commit is contained in:
1 parent
cbe895be64
commit
df5e8e14c5
3 files changed
+72
-20
No files matched your search
@@ -18,28 +18,13 @@ class StackImagePositionOffsetSynchronizer {
|
||||
}
|
||||
|
||||
activate() {
|
||||
if(this.isActive()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const viewports = this.getLinkableViewports();
|
||||
const viewportIndexes = [];
|
||||
this.syncViewports(viewports);
|
||||
}
|
||||
|
||||
if(viewports.length <= 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
viewports.forEach((viewport, index) => {
|
||||
this.synchronizer.add(viewport.element);
|
||||
this.syncedViewports.push(viewport);
|
||||
viewportIndexes.push(viewport.index)
|
||||
|
||||
$(viewport.element).on(StackImagePositionOffsetSynchronizer.ELEMENT_DISABLED_EVENT, this.elementDisabledHandler(this));
|
||||
});
|
||||
|
||||
this.active = true;
|
||||
toolManager.activateCommandButton('link');
|
||||
Session.set('StackImagePositionOffsetSynchronizerLinkedViewports', viewportIndexes);
|
||||
activateByViewportIndexes(viewportIndexes) {
|
||||
const viewports = this.getViewportByIndexes(viewportIndexes);
|
||||
this.syncViewports(viewports);
|
||||
}
|
||||
|
||||
deactivate() {
|
||||
@@ -71,6 +56,27 @@ class StackImagePositionOffsetSynchronizer {
|
||||
this.activate();
|
||||
}
|
||||
|
||||
syncViewports(viewports) {
|
||||
const viewportIndexes = [];
|
||||
|
||||
if(this.isActive() || (viewports.length <= 1)) {
|
||||
return;
|
||||
}
|
||||
|
||||
viewports.forEach((viewport, index) => {
|
||||
this.synchronizer.add(viewport.element);
|
||||
this.syncedViewports.push(viewport);
|
||||
viewportIndexes.push(viewport.index)
|
||||
|
||||
$(viewport.element).on(StackImagePositionOffsetSynchronizer.ELEMENT_DISABLED_EVENT, this.elementDisabledHandler(this));
|
||||
});
|
||||
|
||||
this.active = true;
|
||||
toolManager.activateCommandButton('link');
|
||||
Session.set('StackImagePositionOffsetSynchronizerLinkedViewports', viewportIndexes);
|
||||
|
||||
}
|
||||
|
||||
isViewportSynced(viewportElement) {
|
||||
return !!this.getViewportByElement(viewportElement);
|
||||
}
|
||||
@@ -129,6 +135,26 @@ class StackImagePositionOffsetSynchronizer {
|
||||
}
|
||||
}
|
||||
|
||||
getViewportByIndexes(viewportIndexes) {
|
||||
const viewports = [];
|
||||
const viewportElements = $('.imageViewerViewport');
|
||||
|
||||
viewportIndexes.forEach(index => {
|
||||
const element = viewportElements.get(index);
|
||||
|
||||
if(!element) {
|
||||
return;
|
||||
}
|
||||
|
||||
viewports.push({
|
||||
index,
|
||||
element
|
||||
});
|
||||
});
|
||||
|
||||
return viewports;
|
||||
}
|
||||
|
||||
getLinkableViewports() {
|
||||
const activeViewportElement = this.getActiveViewportElement();
|
||||
const activeViewportImageNormal = this.getViewportImageNormal(activeViewportElement);
|
||||
|
||||
Reference in new issue
Block a user