Mercurial > dive4elements > river
changeset 5311:ff9dfc58d0cb
Added new UI provider for HWS inline DC and shapefile upload.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 14 Mar 2013 17:21:00 +0100 |
parents | 11c853b0854a |
children | 2c1045a1e3fe |
files | flys-client/src/main/java/de/intevation/flys/client/client/ui/HWSDatacagePanel.java flys-client/src/main/java/de/intevation/flys/client/client/ui/UserRGDProvider.java |
diffstat | 2 files changed, 262 insertions(+), 0 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/HWSDatacagePanel.java Thu Mar 14 17:21:00 2013 +0100 @@ -0,0 +1,129 @@ +package de.intevation.flys.client.client.ui; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gwt.core.client.GWT; +import com.smartgwt.client.widgets.Canvas; +import com.smartgwt.client.widgets.Label; +import com.smartgwt.client.widgets.grid.ListGridRecord; +import com.smartgwt.client.widgets.layout.HLayout; +import com.smartgwt.client.widgets.layout.VLayout; + +import de.intevation.flys.client.shared.model.Data; +import de.intevation.flys.client.shared.model.DataItem; +import de.intevation.flys.client.shared.model.DataList; +import de.intevation.flys.client.shared.model.DefaultData; +import de.intevation.flys.client.shared.model.DefaultDataItem; +import de.intevation.flys.client.shared.model.Recommendation; +import de.intevation.flys.client.shared.model.ToLoad; +import de.intevation.flys.client.shared.model.User; + + +public class HWSDatacagePanel +extends DatacagePanel +{ + public static final String OUT = "floodmap-hws"; + public static final String PARAMETERS = "hws:true;load-system:true"; + + + public HWSDatacagePanel() { + super(); + } + + + public HWSDatacagePanel(User user) { + super(user); + } + + + @Override + protected void createWidget() { + super.createWidget(); + widget.setIsMutliSelectable(true); + } + + + @Override + public String getOuts() { + return OUT; + } + + + @Override + public String getParameters() { + return PARAMETERS; + } + + + @Override + public List<String> validate() { + List<String> errors = new ArrayList<String>(); + + return errors; + } + + @Override + public Canvas createOld(DataList dataList) { + GWT.log("old datacage##########################################"); + HLayout layout = new HLayout(); + VLayout vLayout = new VLayout(); + layout.setWidth("400px"); + + Label label = new Label(dataList.getLabel()); + label.setWidth("200px"); + + int size = dataList.size(); + for (int i = 0; i < size; i++) { + Data data = dataList.get(i); + DataItem[] items = data.getItems(); + + for (DataItem item: items) { + HLayout hLayout = new HLayout(); + + hLayout.addMember(label); + hLayout.addMember(new Label(item.getLabel())); + + vLayout.addMember(hLayout); + vLayout.setWidth("130px"); + } + } + + Canvas back = getBackButton(dataList.getState()); + + layout.addMember(label); + layout.addMember(vLayout); + layout.addMember(back); + + return layout; + } + + + @Override + protected Data[] getData() { + String[] selection = this.widget.getSelectionTitles(); + String result = ""; + boolean first = true; + if (selection != null) { + for (String record: selection) { + if (first) { + result += record; + first = false; + } + else { + result += ";" + record; + } + } + } + if (result.length() == 0) { + result = "none"; + } + Data[] data = new Data[1]; + DataItem item = new DefaultDataItem( + "uesk.hws", "uesk.hws", result); + data[0] = new DefaultData("uesk.hws", null, null, new DataItem[] {item}); + + return data; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/UserRGDProvider.java Thu Mar 14 17:21:00 2013 +0100 @@ -0,0 +1,133 @@ +package de.intevation.flys.client.client.ui; + +import java.util.List; + +import com.google.gwt.core.client.GWT; +import com.smartgwt.client.types.Encoding; +import com.smartgwt.client.types.VerticalAlignment; +import com.smartgwt.client.widgets.Button; +import com.smartgwt.client.widgets.Canvas; +import com.smartgwt.client.widgets.HTMLPane; +import com.smartgwt.client.widgets.Label; +import com.smartgwt.client.widgets.events.ClickEvent; +import com.smartgwt.client.widgets.events.ClickHandler; +import com.smartgwt.client.widgets.form.DynamicForm; +import com.smartgwt.client.widgets.form.fields.UploadItem; +import com.smartgwt.client.widgets.layout.VLayout; + +import de.intevation.flys.client.shared.model.Data; +import de.intevation.flys.client.shared.model.DataItem; +import de.intevation.flys.client.shared.model.DataList; +import de.intevation.flys.client.shared.model.DefaultData; +import de.intevation.flys.client.shared.model.DefaultDataItem; + + +public class UserRGDProvider +extends SelectProvider +{ + + private HTMLPane uploadTargetFrame; + private String uploadFile; + + public UserRGDProvider() { + uploadTargetFrame = new HTMLPane(); + } + + @Override + public Canvas create(DataList list) { + List<Data> data = list.getAll(); + + //Canvas selectBox = super.create(clone); + Canvas widget = createWidget(list); + + return widget; + } + + + /** + * This method creates the content of the widget. + * + * @param data The {@link DataList} object. + * + * @return a combobox. + */ + @Override + protected Canvas createWidget(DataList data) { + GWT.log("DigitizePanel - createWidget()"); + + VLayout layout = new VLayout(); + layout.setAlign(VerticalAlignment.TOP); + layout.setHeight(25); + + int size = data.size(); + + for (int i = 0; i < size; i++) { + Data d = data.get(i); + + Label label = new Label(d.getDescription()); + label.setValign(VerticalAlignment.TOP); + label.setHeight(20); + label.setWidth(400); + + uploadTargetFrame.setWidth("200px"); + uploadTargetFrame.setHeight("50px"); + uploadTargetFrame.setContents( + "<iframe id='uploadTarget' name='uploadTarget' scrolling='no' width=200 height=50 style='border: 0px'></iframe>"); + uploadTargetFrame.setBorder("0px"); + uploadTargetFrame.setScrollbarSize(0); + + final DynamicForm uploadForm = new DynamicForm(); + uploadForm.setAction("flys/fileupload?uuid=" + artifact.getUuid()); + uploadForm.setTarget("uploadTarget"); + uploadForm.setEncoding(Encoding.MULTIPART); + Label uploadLabel = new Label(MSG.shape_file_upload()); + uploadLabel.setHeight(20); + final UploadItem uploadItem = new UploadItem(); + uploadItem.setShowTitle(false); + uploadForm.setFields(uploadItem); + Button submit = new Button(MSG.upload_file()); + submit.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent e) { + uploadFile = uploadItem.getValueAsString(); + uploadForm.submitForm(); + } + }); + + layout.addMember(label); + layout.addMember(form); + layout.addMember(uploadLabel); + layout.addMember(uploadForm); + layout.addMember(submit); + layout.addMember(getNextButton()); + + layout.setMembersMargin(10); + layout.addMember(uploadTargetFrame); + } + + layout.setAlign(VerticalAlignment.TOP); + + return layout; + } + + @Override + protected Data[] getData() { + Data[] total = new Data[1]; +GWT.log("uploadfile: "+ uploadFile); + if (uploadFile != null && uploadFile.length() > 0) { + DataItem item = new DefaultDataItem( + "uesk.user-rgd", "uesk.user-rgd", uploadFile); + total[0] = new DefaultData( + "uesk.user-rgd", null, null, new DataItem[] { item }); + } + else { + // Happens when OpenLayers is missing + DataItem item = new DefaultDataItem( + "uesk.user-rgd", "uesk.user-rgd", "none"); + total[0] = new DefaultData( + "uesk.user-rgd", null, null, new DataItem[] { item }); + } + + return total; + } +}