Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java @ 9561:5397555d74c9
MapOutputTab fix
author | gernotbelger |
---|---|
date | Thu, 25 Oct 2018 17:00:58 +0200 |
parents | c81cf7e2a770 |
children |
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java Thu Oct 25 09:38:11 2018 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/CollectionView.java Thu Oct 25 17:00:58 2018 +0200 @@ -36,6 +36,7 @@ import org.dive4elements.river.client.client.services.DescribeCollectionServiceAsync; import org.dive4elements.river.client.client.services.LoadArtifactService; import org.dive4elements.river.client.client.services.LoadArtifactServiceAsync; +import org.dive4elements.river.client.client.ui.map.MapOutputTab; import org.dive4elements.river.client.shared.model.Artifact; import org.dive4elements.river.client.shared.model.ArtifactDescription; import org.dive4elements.river.client.shared.model.Collection; @@ -478,15 +479,9 @@ // 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; + // this workaround is not needed anymore - it is now in clearOuputTabs + // if (this.tabNames.contains("map")) + // return; } GWT.log("Add new output tab for '" + name + "'"); @@ -507,9 +502,12 @@ final int num = this.tabs.getNumTabs(); for (int i = num - 1; i >= 1; i--) { - this.tabs.removeTab(i); // does not work for the Maps-panel + if (this.tabs.getTab(i) instanceof MapOutputTab) { + final MapOutputTab mot = (MapOutputTab) this.tabs.getTab(i); + mot.cancelMapService(); // MapOutputTab needs special treatment + } + this.tabs.removeTab(i); } - this.outputTabs.clear(); }