Mercurial > dive4elements > river
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: #===========================================================================