diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java index 6f6906437f842e77f9449d5173864aa056b7ed12..66c66880a48286e3473d40d63519778cd2c02af3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java @@ -78,6 +78,8 @@ public abstract class Dict public static final String ENTITY_OPERATIONS = "entity_operations"; + public static final String BREADCRUMBS_SEPARATOR = "breadcrumbs_separator"; + // // Table Modifications // diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java index 329e6f2c51901643563b1522b32df13e55276af1..65aa0e14d9a297503088d52ad2e4c18c904ffc86 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java @@ -113,7 +113,7 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends toolBar = new ToolBar(); setTopComponent(toolBar); titleLabel = new LabelToolItem(title); - toolBar.add(breadcrumbContainer = new BreadcrumbContainer()); + toolBar.add(breadcrumbContainer = new BreadcrumbContainer(viewContext)); toolBar.add(new FillToolItem()); if (viewContext.isSimpleOrEmbeddedMode() == false) { @@ -230,16 +230,9 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends breadcrumbContainer.removeAll(); List<Widget> widgets = new ArrayList<Widget>(); fillBreadcrumbWidgets(widgets); - if (widgets.size() == 1) + for (Widget widget : widgets) { - // add raw widget without separator if there is just one widget - breadcrumbContainer.addWidget(widgets.get(0)); - } else - { - for (Widget widget : widgets) - { - breadcrumbContainer.addBreadcrumb(widget); - } + breadcrumbContainer.addBreadcrumb(widget); } breadcrumbContainer.layout(); syncSize(); // fixes layout problems in simple view mode @@ -376,10 +369,11 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends private static class BreadcrumbContainer extends LayoutContainer { - private final static String SEPARATOR = "/"; + private final String separator; - public BreadcrumbContainer() + public BreadcrumbContainer(IMessageProvider messageProvider) { + this.separator = messageProvider.getMessage(Dict.BREADCRUMBS_SEPARATOR); setLayout(createLayout()); } @@ -392,16 +386,16 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends return tableRowLayout; } - /** adds the <var>widget</var> with a separator prefix to breadcrumbs */ + /** + * Adds the <var>widget</var> to breadcrumbs. For every widget but the first one a separator + * will be added before the widget. + */ public void addBreadcrumb(Widget widget) { - add(new Html(SEPARATOR)); - addWidget(widget); - } - - /** adds the <var>widget</var> to breadcrumbs (without separator prefix) */ - public void addWidget(Widget widget) - { + if (getItemCount() > 0) + { + add(new Html(separator)); + } add(widget); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js index c421576f3b16961e941a331bf30d16834114009d..b79e7b58f5710bb69e18b183730ff45161d7fc6b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js @@ -57,8 +57,9 @@ var common = { auto_resolve_label: "Smart View", data_report_label: "Report:", explore_label: "Explore:", - add_unofficial_vocabulary_term_dialog_title: "Add Ad Hoc Term", - + add_unofficial_vocabulary_term_dialog_title: "Add Ad Hoc Term", + breadcrumbs_separator: "»", + // // Table Modifications //