diff flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java @ 1503:3304608baf35

Issue 433. Allways load original chart settings when opening the dialog. flys-client/trunk@3632 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 09 Jan 2012 17:07:17 +0000
parents d1223d93dd68
children 02a9104c0451
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java	Mon Jan 09 14:28:37 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java	Mon Jan 09 17:07:17 2012 +0000
@@ -37,6 +37,7 @@
 import de.intevation.flys.client.shared.model.DoubleProperty;
 import de.intevation.flys.client.shared.model.IntegerProperty;
 import de.intevation.flys.client.shared.model.StringProperty;
+import de.intevation.flys.client.shared.model.Settings;
 import de.intevation.flys.client.shared.model.OutputSettings;
 import de.intevation.flys.client.shared.model.Collection;
 import de.intevation.flys.client.client.utils.Validator;
@@ -66,9 +67,12 @@
     /** The collection */
     protected Collection collection;
 
-    /** The output settings */
+    /** The cloned output settings */
     protected OutputSettings settings;
 
+    /** The original output settings */
+    protected OutputSettings origSettings;
+
 
     /**
      * Setup editor dialog.
@@ -92,8 +96,9 @@
         Config config = Config.getInstance();
         collection = tab.getCollectionView().getCollection();
         String outputName = tab.getOutputName();
-        settings = (OutputSettings)collection.getSettings(outputName);
+        origSettings = (OutputSettings)collection.getSettings(outputName);
 
+        settings = (OutputSettings)origSettings.clone();
         if (settings == null) {
             return;
         }
@@ -102,17 +107,20 @@
         for (int i = 0; i < list.size(); i++) {
             Tab t = new Tab(MSG.getString(list.get(i)));
             List<Property> props = settings.getSettings(list.get(i));
+            List<Property> origProps = origSettings.getSettings(list.get(i));
             VLayout layout = new VLayout();
             for (int j = 0; j < props.size(); j++) {
                 if (props.get(j) instanceof PropertyGroup) {
-                    layout.addMember(generatePropertyGroup(props.get(j)));
+                    layout.addMember(generatePropertyGroup(props.get(j),
+                                                           origProps.get(j)));
                 }
                 else if (props.get(j) instanceof PropertySetting) {
                     PropertySetting p = (PropertySetting)props.get(j);
                     if (p.getAttribute("display").equals("false")) {
                         continue;
                     }
-                    layout.addMember(generatePropertySetting(props.get(j)));
+                    layout.addMember(generatePropertySetting(props.get(j),
+                                                             origProps.get(j)));
                 }
             }
             t.setPane(layout);
@@ -152,16 +160,16 @@
      * @param event The event.
      */
     public void onClick(ClickEvent event) {
-        this.hide();
+        this.destroy();
     }
 
 
     /**
      *
      */
-    protected Canvas generatePropertyGroup(Property group) {
+    protected Canvas generatePropertyGroup(Property group, Property orig) {
         PropertyGroup pg = (PropertyGroup)group;
-        List<Property> list = pg.getProperties();
+        PropertyGroup origPg = (PropertyGroup)orig;
 
         if (pg.getName().equals("axis")) {
             Label scale = new Label(MSG.scale() + " :");
@@ -175,12 +183,17 @@
             StringProperty label =
                 (StringProperty)pg.getPropertyByName("label");
             FormItem title = createStringProperty(label);
+            title.setValue(
+                ((StringProperty)origPg.getPropertyByName("label")).getValue());
 
             IntegerProperty fontsize =
                 (IntegerProperty)pg.getPropertyByName("font-size");
             FormItem fs = createIntegerProperty(fontsize);
             fs.setAttribute("internalType", "integer");
             fs.addChangedHandler(new Validator());
+            fs.setValue(
+                ((IntegerProperty)
+                    origPg.getPropertyByName("font-size")).getValue());
 
             DoubleProperty upper =
                 (DoubleProperty)pg.getPropertyByName("upper");
@@ -188,6 +201,8 @@
             range1.setAttribute("internalType", "double");
             range1.addChangedHandler(new Validator());
             range1.setWidth(70);
+            range1.setValue(
+                ((DoubleProperty)origPg.getPropertyByName("upper")).getValue());
 
             DoubleProperty lower =
                 (DoubleProperty)pg.getPropertyByName("lower");
@@ -195,10 +210,15 @@
             range2.setAttribute("internalType", "double");
             range2.addChangedHandler(new Validator());
             range2.setWidth(70);
+            range2.setValue(
+                ((DoubleProperty)origPg.getPropertyByName("lower")).getValue());
 
             BooleanProperty fixation =
                 (BooleanProperty)pg.getPropertyByName("fixation");
             FormItem fix = createBooleanProperty(fixation);
+            fix.setValue(
+                ((BooleanProperty)
+                    origPg.getPropertyByName("fixation")).getValue());
             fix.addChangedHandler(new ChangedHandler() {
                 public void onChanged(ChangedEvent e) {
                     if ((Boolean)e.getValue()) {
@@ -227,7 +247,7 @@
             scaleLayout.setHeight(30);
             scaleLayout.addMember(scale);
             scaleLayout.addMember(form2);
-            scaleLayout.addStyleName("property-dialog-axis");
+            scaleLayout.setStyleName("property-dialog-axis");
 
             VLayout root = new VLayout();
             root.addMember(form1);
@@ -243,25 +263,32 @@
     /**
      *
      */
-    protected DynamicForm generatePropertySetting(Property setting) {
+    protected DynamicForm generatePropertySetting(
+        Property setting,
+        Property orig)
+    {
         PropertySetting s = (PropertySetting)setting;
         DynamicForm form = new DynamicForm();
         FormItem item = new FormItem();
         if (setting instanceof BooleanProperty) {
             item = createBooleanProperty((BooleanProperty)setting);
+            item.setValue(((BooleanProperty)orig).getValue());
         }
         else if (setting instanceof DoubleProperty) {
             item = createDoubleProperty((DoubleProperty)setting);
             item.setAttribute("internalType", "double");
             item.addChangedHandler(new Validator());
+            item.setValue(((DoubleProperty)orig).getValue());
         }
         else if (setting instanceof IntegerProperty) {
             item = createIntegerProperty((IntegerProperty)setting);
             item.setAttribute("internalType", "integer");
             item.addChangedHandler(new Validator());
+            item.setValue(((IntegerProperty)orig).getValue());
         }
         else if (setting instanceof StringProperty) {
             item = createStringProperty((StringProperty)setting);
+            item.setValue(((StringProperty)orig).getValue());
         }
         form.setFields(item);
         return form;
@@ -279,7 +306,6 @@
         TextItem item = new TextItem();
         item.setTitle(MSG.getString(name));
         item.setTitleAlign(Alignment.LEFT);
-        item.setValue(sp.getValue());
         item.addChangedHandler(new ChangedHandler() {
             public void onChanged(ChangedEvent e) {
                 String val;
@@ -309,12 +335,12 @@
         item.setLabelAsTitle(true);
         item.setTitleStyle("color:#000;");
         item.setTitleAlign(Alignment.LEFT);
-        if(bp.getValue().equals("true")) {
+/*        if(bp.getValue().equals("true")) {
             item.setValue(true);
         }
         else {
             item.setValue(false);
-        }
+        }*/
         item.addChangedHandler(new ChangedHandler() {
             public void onChanged(ChangedEvent e) {
                 String val;
@@ -343,7 +369,6 @@
         TextItem item = new TextItem();
         item.setTitle(MSG.getString(name));
         item.setTitleAlign(Alignment.LEFT);
-        item.setValue(dp.getValue());
         item.addChangedHandler(new ChangedHandler() {
             public void onChanged(ChangedEvent e) {
                 String val;
@@ -372,7 +397,6 @@
         TextItem item = new TextItem();
         item.setTitle(MSG.getString(name));
         item.setTitleAlign(Alignment.LEFT);
-        item.setValue(ip.getValue());
         item.addChangedHandler(new ChangedHandler() {
             public void onChanged(ChangedEvent e) {
                 String val;
@@ -395,6 +419,8 @@
 
         GWT.log("PropertiesEditor.updateCollection via RPC now");
 
+        Settings s = settings;
+        collection.addSettings(this.tab.getOutputName(), s);
         updater.update(collection, loc, new AsyncCallback<Collection>() {
             public void onFailure(Throwable caught) {
                 GWT.log("Could not update collection attributes.");
@@ -407,9 +433,9 @@
     }
 
     protected void updateChartTab() {
-        this.hide();
         this.tab.updateChartInfo();
         this.tab.updateChartPanel();
+        this.destroy();
     }
 
 

http://dive4elements.wald.intevation.org