changeset 4472:dc7e41efd5ba

Work (in progress) on a print settings dialog. Add Wheregroups WMS to printing whitelist.
author Christian Lins <christian.lins@intevation.de>
date Sat, 10 Nov 2012 00:53:28 +0100
parents 4e4226d99b49
children 6db783627137
files flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintSettingsPanel.java flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintSettingsWindow.java flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java flys-client/src/main/webapp/WEB-INF/config.yaml flys-client/src/main/webapp/images/print_map_settings.png
diffstat 6 files changed, 162 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintSettingsPanel.java	Sat Nov 10 00:53:28 2012 +0100
@@ -0,0 +1,126 @@
+package de.intevation.flys.client.client.ui.map;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+import com.smartgwt.client.util.SC;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.ButtonItem;
+import com.smartgwt.client.widgets.form.fields.SelectItem;
+import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
+import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
+
+import de.intevation.flys.client.client.Config;
+import de.intevation.flys.client.client.FLYSConstants;
+import de.intevation.flys.client.client.services.CollectionAttributeService;
+import de.intevation.flys.client.client.services.CollectionAttributeServiceAsync;
+import de.intevation.flys.client.shared.model.Collection;
+import de.intevation.flys.client.shared.model.OutputSettings;
+import de.intevation.flys.client.shared.model.Property;
+import de.intevation.flys.client.shared.model.PropertySetting;
+import de.intevation.flys.client.shared.model.Settings;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+public class MapPrintSettingsPanel extends Canvas {
+
+    /** The interface that provides i18n messages. */
+    protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
+
+    /** CollectionAttribute Update Service. */
+    protected CollectionAttributeServiceAsync updater =
+        GWT.create(CollectionAttributeService.class);
+
+    protected Collection collection;
+    protected Settings settings;
+    protected TextItem pageTitle = new TextItem();
+
+    public MapPrintSettingsPanel(Collection collection) {
+        this.collection = collection;
+        initLayout();
+
+        this.settings = collection.getSettings("print-settings");
+        if (settings == null) {
+            settings = new OutputSettings();
+        }
+        else {
+            List<Property> properties = settings.getSettings("default");
+            for (Property prop : properties) {
+                PropertySetting props = (PropertySetting)prop;
+                if (props.getName().equals("page-format")) {
+
+                }
+                else if (props.getName().equals("page-title")) {
+                    this.pageTitle.setValue(props.getValue());
+                    GWT.log(props.getName() + "=" + props.getValue());
+                }
+            }
+        }
+    }
+
+    protected void initLayout() {
+        this.pageTitle.setTitle("Seitentitel:");
+
+        DynamicForm df = new DynamicForm();
+        df.setFields(
+               createPageFormatSelectItem(),
+               this.pageTitle,
+               createSaveSettingsButtonItem()
+               );
+        addChild(df);
+    }
+
+    protected SelectItem createPageFormatSelectItem() {
+        LinkedHashMap values = new LinkedHashMap();
+        values.put("din_a4", "DIN A4");
+        values.put("din_a0", "DIN A0");
+
+        SelectItem selItem = new SelectItem();
+        selItem.setTitle("Seitenformat:");
+        selItem.setValueMap(values);
+        selItem.setDefaultToFirstOption(true);
+
+        return selItem;
+    }
+
+    protected ButtonItem createSaveSettingsButtonItem() {
+        ButtonItem btn = new ButtonItem();
+        btn.addClickHandler(new ClickHandler() {
+
+            @Override
+            public void onClick(ClickEvent event) {
+                updateCollection();
+            }
+        });
+        btn.setTitle("Speichern");
+        return btn;
+    }
+
+    protected void updateCollection() {
+        final Config config = Config.getInstance();
+        final String loc    = config.getLocale();
+
+        GWT.log("MapPrintSettingsPanel.updateCollection via RPC now");
+
+        List<Property> properties = new ArrayList<Property>();
+        properties.add(new PropertySetting("page-title", this.pageTitle.getValueAsString()));
+        settings.setSettings("default", properties);
+
+        collection.addSettings("print-settings", settings);
+        updater.update(collection, loc, new AsyncCallback<Collection>() {
+            @Override
+            public void onFailure(Throwable caught) {
+                GWT.log("Could not update collection attributes.");
+                SC.warn(MSG.getString(caught.getMessage()));
+            }
+            @Override
+            public void onSuccess(Collection collection) {
+                GWT.log("MapPrintSettings: collection attributes updated");
+            }
+        });
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPrintSettingsWindow.java	Sat Nov 10 00:53:28 2012 +0100
@@ -0,0 +1,21 @@
+package de.intevation.flys.client.client.ui.map;
+
+import com.smartgwt.client.widgets.Window;
+
+import de.intevation.flys.client.shared.model.Collection;
+
+public class MapPrintSettingsWindow extends Window {
+
+    protected MapPrintSettingsPanel panel;
+
+    public MapPrintSettingsWindow(Collection collection) {
+        setWidth(300);
+        setHeight(400);
+
+        setTitle("PDF-Druckeinstellungen");
+
+        this.panel = new MapPrintSettingsPanel(collection);
+        this.panel.setPadding(20);
+        addItem(this.panel);
+    }
+}
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java	Fri Nov 09 16:55:19 2012 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java	Sat Nov 10 00:53:28 2012 +0100
@@ -1,6 +1,7 @@
 package de.intevation.flys.client.client.ui.map;
 
 import com.google.gwt.core.client.GWT;
+
 import com.smartgwt.client.types.Alignment;
 import com.smartgwt.client.types.SelectionType;
 import com.smartgwt.client.util.SC;
@@ -650,7 +651,9 @@
         ImgButton btn = createButton(MSG.printMapSettings(), new ClickHandler() {
             @Override
             public void onClick(ClickEvent event) {
-
+                MapPrintSettingsWindow mpsw =
+                        new MapPrintSettingsWindow(outputTab.getCollection());
+                outputTab.getCollectionView().addChild(mpsw);
             }
         });
         return btn;
--- a/flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java	Fri Nov 09 16:55:19 2012 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java	Sat Nov 10 00:53:28 2012 +0100
@@ -136,16 +136,15 @@
         String ns = ArtifactNamespaceContext.NAMESPACE_URI;
 
         List<Layer> ls = new ArrayList<Layer>();
-        {   Layer l = new Layer();
-
-            NodeList facets = descDocument.getElementsByTagNameNS(ns, "facet");
+        Layer l = new Layer();
 
-            for (int i = 0, N = facets.getLength(); i < N; ++i) {
-                Element element = (Element)facets.item(i);
-                if (l.setup(element)) {
-                    ls.add(l);
-                    l = new Layer();
-                }
+        NodeList facets = descDocument.getElementsByTagNameNS(ns, "facet");
+
+        for (int i = 0, N = facets.getLength(); i < N; ++i) {
+            Element element = (Element)facets.item(i);
+            if (l.setup(element)) {
+                ls.add(l);
+                l = new Layer();
             }
         }
 
--- a/flys-client/src/main/webapp/WEB-INF/config.yaml	Fri Nov 09 16:55:19 2012 +0100
+++ b/flys-client/src/main/webapp/WEB-INF/config.yaml	Sat Nov 10 00:53:28 2012 +0100
@@ -42,6 +42,9 @@
   - !dnsMatch
     host: www.pegelonline.wsv.de
     port: 80
+  - !dnsMatch
+    host: osm.wheregroup.com
+    port: 80
 
 layouts:
   #===========================================================================
Binary file flys-client/src/main/webapp/images/print_map_settings.png has changed

http://dive4elements.wald.intevation.org