rrenkert@5311: package de.intevation.flys.client.client.ui; rrenkert@5311: rrenkert@5311: import java.util.List; rrenkert@5311: rrenkert@5311: import com.google.gwt.core.client.GWT; rrenkert@5311: import com.smartgwt.client.types.Encoding; rrenkert@5311: import com.smartgwt.client.types.VerticalAlignment; rrenkert@5311: import com.smartgwt.client.widgets.Button; rrenkert@5311: import com.smartgwt.client.widgets.Canvas; rrenkert@5311: import com.smartgwt.client.widgets.HTMLPane; rrenkert@5311: import com.smartgwt.client.widgets.Label; rrenkert@5311: import com.smartgwt.client.widgets.events.ClickEvent; rrenkert@5311: import com.smartgwt.client.widgets.events.ClickHandler; rrenkert@5311: import com.smartgwt.client.widgets.form.DynamicForm; rrenkert@5311: import com.smartgwt.client.widgets.form.fields.UploadItem; rrenkert@5311: import com.smartgwt.client.widgets.layout.VLayout; rrenkert@5311: rrenkert@5311: import de.intevation.flys.client.shared.model.Data; rrenkert@5311: import de.intevation.flys.client.shared.model.DataItem; rrenkert@5311: import de.intevation.flys.client.shared.model.DataList; rrenkert@5311: import de.intevation.flys.client.shared.model.DefaultData; rrenkert@5311: import de.intevation.flys.client.shared.model.DefaultDataItem; rrenkert@5311: rrenkert@5311: rrenkert@5311: public class UserRGDProvider rrenkert@5311: extends SelectProvider rrenkert@5311: { rrenkert@5311: rrenkert@5311: private HTMLPane uploadTargetFrame; rrenkert@5311: private String uploadFile; rrenkert@5311: rrenkert@5311: public UserRGDProvider() { rrenkert@5311: uploadTargetFrame = new HTMLPane(); rrenkert@5311: } rrenkert@5311: rrenkert@5311: @Override rrenkert@5311: public Canvas create(DataList list) { rrenkert@5311: List data = list.getAll(); rrenkert@5311: rrenkert@5311: //Canvas selectBox = super.create(clone); rrenkert@5311: Canvas widget = createWidget(list); rrenkert@5311: rrenkert@5311: return widget; rrenkert@5311: } rrenkert@5311: rrenkert@5311: rrenkert@5311: /** rrenkert@5311: * This method creates the content of the widget. rrenkert@5311: * rrenkert@5311: * @param data The {@link DataList} object. rrenkert@5311: * rrenkert@5311: * @return a combobox. rrenkert@5311: */ rrenkert@5311: @Override rrenkert@5311: protected Canvas createWidget(DataList data) { rrenkert@5311: GWT.log("DigitizePanel - createWidget()"); rrenkert@5311: rrenkert@5311: VLayout layout = new VLayout(); rrenkert@5311: layout.setAlign(VerticalAlignment.TOP); rrenkert@5311: layout.setHeight(25); rrenkert@5311: rrenkert@5311: int size = data.size(); rrenkert@5311: rrenkert@5311: for (int i = 0; i < size; i++) { rrenkert@5311: Data d = data.get(i); rrenkert@5311: rrenkert@5311: Label label = new Label(d.getDescription()); rrenkert@5311: label.setValign(VerticalAlignment.TOP); rrenkert@5311: label.setHeight(20); rrenkert@5311: label.setWidth(400); rrenkert@5311: rrenkert@5311: uploadTargetFrame.setWidth("200px"); rrenkert@5311: uploadTargetFrame.setHeight("50px"); rrenkert@5311: uploadTargetFrame.setContents( rrenkert@5311: ""); rrenkert@5311: uploadTargetFrame.setBorder("0px"); rrenkert@5311: uploadTargetFrame.setScrollbarSize(0); rrenkert@5311: rrenkert@5311: final DynamicForm uploadForm = new DynamicForm(); rrenkert@5311: uploadForm.setAction("flys/fileupload?uuid=" + artifact.getUuid()); rrenkert@5311: uploadForm.setTarget("uploadTarget"); rrenkert@5311: uploadForm.setEncoding(Encoding.MULTIPART); rrenkert@5311: Label uploadLabel = new Label(MSG.shape_file_upload()); rrenkert@5311: uploadLabel.setHeight(20); rrenkert@5311: final UploadItem uploadItem = new UploadItem(); rrenkert@5311: uploadItem.setShowTitle(false); rrenkert@5311: uploadForm.setFields(uploadItem); rrenkert@5311: Button submit = new Button(MSG.upload_file()); rrenkert@5311: submit.addClickHandler(new ClickHandler() { rrenkert@5311: @Override rrenkert@5311: public void onClick(ClickEvent e) { rrenkert@5311: uploadFile = uploadItem.getValueAsString(); rrenkert@5311: uploadForm.submitForm(); rrenkert@5311: } rrenkert@5311: }); rrenkert@5311: rrenkert@5311: layout.addMember(label); rrenkert@5311: layout.addMember(form); rrenkert@5311: layout.addMember(uploadLabel); rrenkert@5311: layout.addMember(uploadForm); rrenkert@5311: layout.addMember(submit); rrenkert@5311: layout.addMember(getNextButton()); rrenkert@5311: rrenkert@5311: layout.setMembersMargin(10); rrenkert@5311: layout.addMember(uploadTargetFrame); rrenkert@5311: } rrenkert@5311: rrenkert@5311: layout.setAlign(VerticalAlignment.TOP); rrenkert@5311: rrenkert@5311: return layout; rrenkert@5311: } rrenkert@5311: rrenkert@5311: @Override rrenkert@5311: protected Data[] getData() { rrenkert@5311: Data[] total = new Data[1]; rrenkert@5318: rrenkert@5311: if (uploadFile != null && uploadFile.length() > 0) { rrenkert@5311: DataItem item = new DefaultDataItem( rrenkert@5311: "uesk.user-rgd", "uesk.user-rgd", uploadFile); rrenkert@5311: total[0] = new DefaultData( rrenkert@5311: "uesk.user-rgd", null, null, new DataItem[] { item }); rrenkert@5311: } rrenkert@5311: else { rrenkert@5311: // Happens when OpenLayers is missing rrenkert@5311: DataItem item = new DefaultDataItem( rrenkert@5318: "uesk.user-rgd", "uesk.user-rgd", MSG.notselected()); rrenkert@5311: total[0] = new DefaultData( rrenkert@5311: "uesk.user-rgd", null, null, new DataItem[] { item }); rrenkert@5311: } rrenkert@5311: rrenkert@5311: return total; rrenkert@5311: } rrenkert@5311: }