Mercurial > dive4elements > river
changeset 9484:c81cf7e2a770
Karten-Tab-Bug
author | gernotbelger |
---|---|
date | Mon, 17 Sep 2018 10:20:08 +0200 |
parents | 992c188b7330 |
children | dd05a5eef210 |
files | gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java |
diffstat | 1 files changed, 15 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java Thu Sep 13 18:22:05 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java Mon Sep 17 10:20:08 2018 +0200 @@ -40,6 +40,7 @@ import org.dive4elements.river.client.shared.model.ArtifactDescription; import org.dive4elements.river.client.shared.model.Collection; import org.dive4elements.river.client.shared.model.ExportMode; +import org.dive4elements.river.client.shared.model.MapMode; import org.dive4elements.river.client.shared.model.OutputMode; import org.dive4elements.river.client.shared.model.Recommendation; import org.dive4elements.river.client.shared.model.ReportMode; @@ -100,6 +101,7 @@ /** The output tab. */ private final Map<String, OutputTab> outputTabs; + private final List<String> tabNames = new ArrayList<String>(); /** The layout. */ private final Layout layout; @@ -472,9 +474,19 @@ return; } - if (out instanceof ReportMode) { + else if (out instanceof ReportMode) { // we don't want to display report modes at all return; + } else if (out instanceof MapMode) { + // Der Workflow von dem ganzen ist derart merkwürdig. Ständig werden Tabs entfernt und wieder hinzugefügt, + // alles wird neu erzeugt und wieder entfernt. + // normalerweise klappt das auch ("tabset.remove") + // beim Karten-Tab komischerweise nicht. + // Diese Sonderbehandlung "löst" das Problem der Doppelten Karten-Tabs mit nur wenigen zusätzlichen Zeilen + // (neuer Member "tabNames" ) + // Wenn die Liste den Namen schon enthält, wird der Tab einfach nicht nochmal erzeugt. + if (this.tabNames.contains("map")) + return; } GWT.log("Add new output tab for '" + name + "'"); @@ -495,7 +507,7 @@ final int num = this.tabs.getNumTabs(); for (int i = num - 1; i >= 1; i--) { - this.tabs.removeTab(i); + this.tabs.removeTab(i); // does not work for the Maps-panel } this.outputTabs.clear(); @@ -519,6 +531,7 @@ for (final String key : keys) { this.tabs.addTab(this.outputTabs.get(key)); + this.tabNames.add(key); } } }