diff flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartOutputTab.java @ 531:c17c593f8732

The chart in the ChartOutputTab is refreshed when there occur any changes in the chart theme panel. flys-client/trunk@2020 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 27 May 2011 09:50:57 +0000
parents 902609b5cc79
children 0ba7c43e7b62
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartOutputTab.java	Fri May 27 08:59:26 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartOutputTab.java	Fri May 27 09:50:57 2011 +0000
@@ -24,6 +24,8 @@
 import de.intevation.flys.client.shared.model.Collection;
 import de.intevation.flys.client.shared.model.OutputMode;
 import de.intevation.flys.client.client.Config;
+import de.intevation.flys.client.client.event.OutputParameterChangeEvent;
+import de.intevation.flys.client.client.event.OutputParameterChangeHandler;
 import de.intevation.flys.client.client.ui.CollectionView;
 import de.intevation.flys.client.client.ui.DatacageWindow;
 import de.intevation.flys.client.client.ui.OutputTab;
@@ -32,8 +34,10 @@
 /**
  * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
  */
-public class ChartOutputTab extends OutputTab implements ResizedHandler {
-
+public class ChartOutputTab
+extends      OutputTab
+implements   ResizedHandler, OutputParameterChangeHandler
+{
     public static final int DEFAULT_CHART_WIDTH  = 600;
     public static final int DEFAULT_CHART_HEIGHT = 500;
 
@@ -87,8 +91,11 @@
         hLayout.addMember(left);
         hLayout.addMember(right);
 
+        ChartThemePanel ctp = new ChartThemePanel(collection, mode);
+        ctp.addOutputParameterChangeHandler(this);
+
         right.addChild(createChartPanel());
-        left.addChild(new ChartThemePanel(collection, mode));
+        left.addChild(ctp);
         tbarPanel.addChild(
             createTBarPanel(collectionView));
 
@@ -108,6 +115,22 @@
      * @param event The resize event.
      */
     public void onResized(ResizedEvent event) {
+        updateChartPanel();
+    }
+
+
+    /**
+     * Listens to change event in the chart them panel and updates chart after
+     * receiving such an event.
+     *
+     * @param event The OutputParameterChangeEvent.
+     */
+    public void onOutputParameterChanged(OutputParameterChangeEvent event) {
+        updateChartPanel();
+    }
+
+
+    public void updateChartPanel() {
         Canvas[] children = right.getChildren();
         for (Canvas child: children) {
             right.removeChild(child);

http://dive4elements.wald.intevation.org