diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/ChartOutputTab.java @ 9416:05405292a7ca

Navigationtheme panel now shows themes of dWt and WQ charts grayed out, if the current station is outside the valid range of the theme.
author gernotbelger
date Thu, 16 Aug 2018 16:28:03 +0200
parents 5e38e2924c07
children
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/ChartOutputTab.java	Thu Aug 16 16:27:53 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/ChartOutputTab.java	Thu Aug 16 16:28:03 2018 +0200
@@ -31,6 +31,8 @@
 import org.dive4elements.river.client.client.services.ChartInfoService;
 import org.dive4elements.river.client.client.services.ChartInfoServiceAsync;
 import org.dive4elements.river.client.client.ui.CollectionView;
+import org.dive4elements.river.client.client.ui.IThemeRecordHandler;
+import org.dive4elements.river.client.client.ui.NoopThemeRecordHandler;
 import org.dive4elements.river.client.client.ui.OutputTab;
 import org.dive4elements.river.client.shared.Transform2D;
 import org.dive4elements.river.client.shared.model.Axis;
@@ -74,9 +76,6 @@
      * coordinates. */
     protected Transform2D[] transformer;
 
-    /** The collection view.*/
-    protected CollectionView view;
-
     /** The ThemePanel to expose control over themes (facettes). */
     protected ChartThemePanel ctp;
 
@@ -107,16 +106,17 @@
      * @param collection The Collection which this chart belongs to.
      * @param mode The OutputMode.
      * @param collectionView The shown collection.
+     * @param recordHandler 
      */
     public ChartOutputTab(
         String         title,
         Collection     collection,
         OutputMode     mode,
-        CollectionView collectionView
+        CollectionView collectionView, 
+        IThemeRecordHandler recordHandler
     ){
         super(title, collection, collectionView, mode);
 
-        view      = collectionView;
         left      = new Canvas();
         right     = new Canvas();
         xrange    = new int[2];
@@ -143,7 +143,7 @@
         hLayout.addMember(left);
         hLayout.addMember(right);
 
-        ctp = createThemePanel(mode, collectionView);
+        ctp = createThemePanel(mode, collectionView, recordHandler);
         if (ctp != null) {
             ctp.addRedrawRequestHandler(this);
             ctp.addOutputParameterChangeHandler(this);
@@ -170,17 +170,13 @@
     }
 
 
-    public ChartThemePanel createThemePanel(
-        OutputMode mode, CollectionView view
-    ) {
+    public ChartThemePanel createThemePanel( OutputMode mode, CollectionView view, IThemeRecordHandler recordHandler ) {
         // Output "cross_section" needs slightly modified ThemePanel
         // (with action buttons).
-        if (mode.getName().equals("cross_section")) {
-            return new CrossSectionChartThemePanel(mode, view);
-        }
-        else {
-            return new ChartThemePanel(mode, view);
-        }
+        if (mode.getName().equals("cross_section"))
+            return new CrossSectionChartThemePanel(mode, view, recordHandler);
+
+        return new ChartThemePanel(mode, view, recordHandler);
     }
 
 
@@ -482,7 +478,7 @@
         String locale = config.getLocale();
 
         info.getChartInfo(
-            view.getCollection(),
+            getCollectionView().getCollection(),
             locale,
             mode.getName(),
             getChartAttributes(),
@@ -506,8 +502,11 @@
 
         chart.setSrc(getImgUrl(w, h));
     }
-
-
+    
+    protected final void updateThemePanel() {
+        ctp.updateThemes();
+    }
+    
     /**
      * Returns the existing chart panel.
      *
@@ -709,13 +708,6 @@
         return zoom;
     }
 
-
-    /** Return the 'parent' CollectionView. */
-    public CollectionView getView() {
-        return this.view;
-    }
-
-
     public static Number subtract(Number left, Number right) {
         if (left instanceof Double) {
             return new Double(left.doubleValue() - right.doubleValue());

http://dive4elements.wald.intevation.org