diff --git a/extensions/default/src/getLayoutTemplateModule.js b/extensions/default/src/getLayoutTemplateModule.js
index 791c9134c..550803789 100644
--- a/extensions/default/src/getLayoutTemplateModule.js
+++ b/extensions/default/src/getLayoutTemplateModule.js
@@ -174,6 +174,7 @@ function viewerLayout({
leftPanels,
rightPanels,
extensionManager,
+ toolBarLayout,
displaySetInstanceUids,
}) {
const getPanelData = id => {
@@ -194,6 +195,7 @@ function viewerLayout({
const rightPanelComponents = rightPanels.map(getPanelData);
console.warn(displaySetInstanceUids);
+ console.warn(toolBarLayout);
return (
diff --git a/modes/example/src/index.js b/modes/example/src/index.js
index 706d0ca11..a503be405 100644
--- a/modes/example/src/index.js
+++ b/modes/example/src/index.js
@@ -12,8 +12,8 @@ export default function mode({ modeConfiguration }) {
routes: [
{
path: 'viewer',
- init: ({ toolbarManager }) => {
- toolbarManager.addButtons([
+ init: ({ toolBarManager }) => {
+ toolBarManager.addButtons([
{
id: 'StackScroll', // If id not given will use default in button definition.
namespace: 'org.ohif.cornerstone.toolbarModule.StackScroll',
@@ -25,7 +25,7 @@ export default function mode({ modeConfiguration }) {
]);
// Could import layout selector here from org.ohif.default (when it exists!)
- toolbarManager.setToolBarLayout([
+ toolBarManager.setToolBarLayout([
// Primary
['StackScroll', { label: 'More', subMenu: ['Zoom'] }],
// Secondary
diff --git a/platform/core/src/ToolBarManager.js b/platform/core/src/ToolBarManager.js
index d94b1488c..15eb84169 100644
--- a/platform/core/src/ToolBarManager.js
+++ b/platform/core/src/ToolBarManager.js
@@ -1,8 +1,8 @@
export default class toolBarManager {
- constructor(extensionManager) {
- this.toolBarLayout = [];
+ constructor(extensionManager, setToolBarLayout) {
this.buttons = {};
this.extensionManager = extensionManager;
+ this.setToolBarLayout = setToolBarLayout;
}
addButtons(buttons) {
@@ -48,8 +48,8 @@ export default class toolBarManager {
toolBarLayout.push(toolBarDefinitions);
});
- this.toolBarLayout = toolBarLayout;
+ console.log(toolBarLayout);
- console.log(this.toolBarLayout);
+ setToolBarLayout(toolBarLayout);
}
}
diff --git a/platform/viewer/src/routes/ModeRoute.js b/platform/viewer/src/routes/ModeRoute.js
index b17848324..02867079c 100644
--- a/platform/viewer/src/routes/ModeRoute.js
+++ b/platform/viewer/src/routes/ModeRoute.js
@@ -12,22 +12,29 @@ export default function ModeRoute({
const { routes, sopClassHandlers, extensions, init } = mode;
const dataSources = extensionManager.getDataSources(dataSourceName);
- const toolbarManager = new ToolBarManager(extensionManager);
+ // Add toolbar state to the view model context?
+ const {
+ toolBarLayout,
+ setToolBarLayout,
+ displaySetInstanceUids,
+ setDisplaySetInstanceUids,
+ } = useContext(ViewModelContext);
// TODO: For now assume one unique datasource.
const dataSource = dataSources[0];
const route = routes[0];
- route.init({ toolbarManager });
+ let toolBarManager;
+
+ useEffect(() => {
+ debugger;
+ toolBarManager = new ToolBarManager(extensionManager, setToolBarLayout);
+ route.init({ toolBarManager });
+ }, [mode, dataSourceName, location]);
console.log(dataSource);
- // Add toolbar state to the view model context?
- const { displaySetInstanceUids, setDisplaySetInstanceUids } = useContext(
- ViewModelContext
- );
-
const createDisplaySets = useCallback(() => {
// Add SOPClassHandlers to a new SOPClassManager.
displaySetManager.init(extensionManager, sopClassHandlers, {
@@ -82,6 +89,7 @@ export default function ModeRoute({
diff --git a/platform/viewer/src/routes/ViewModelContext.js b/platform/viewer/src/routes/ViewModelContext.js
index 4ecf723b7..63b55f4dc 100644
--- a/platform/viewer/src/routes/ViewModelContext.js
+++ b/platform/viewer/src/routes/ViewModelContext.js
@@ -3,6 +3,8 @@ import React, { Component } from 'react';
const ViewModelContext = React.createContext({
displaySetInstanceUids: [],
setDisplaySetInstanceUids: () => {},
+ toolBarLayout: [],
+ setToolBarLayout: () => {},
});
ViewModelContext.displayName = 'ViewModelContext';
@@ -17,11 +19,17 @@ class ViewModelProvider extends Component {
this.setState({ displaySetInstanceUids });
};
+ const setToolBarLayout = toolBarLayout => {
+ this.setState({ toolBarLayout });
+ };
+
return (
{this.props.children}