view flys-client/src/main/java/de/intevation/flys/client/client/ui/UserRGDProvider.java @ 5462:f2371f3aaf03

Show top level folder icons only if node has no factory If you have an empty folder the folder icon is still shown. This makes it possible to add functional "Top Level" entries in the Datacage
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 26 Mar 2013 18:29:13 +0100
parents 7fa94b793cbe
children
line wrap: on
line source
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];

        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", MSG.notselected());
            total[0] = new DefaultData(
                "uesk.user-rgd", null, null, new DataItem[] { item });
        }

        return total;
    }
}

http://dive4elements.wald.intevation.org