view flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterMatrixPanel.java @ 3847:f3b821735e39

Calculate the info url via i18n Don't fetch the info url from the artifact service and use i18n to calculate the url by using the official gauge and river number. flys-client/trunk@5582 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Bjoern Ricks <bjoern.ricks@intevation.de>
date Mon, 24 Sep 2012 08:39:22 +0000
parents 255decb14439
children 8d0ababa2db7
line wrap: on
line source
package de.intevation.flys.client.client.ui;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
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.IntegerOptionsData;
import de.intevation.flys.client.shared.model.StringOptionsData;

/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class ParameterMatrixPanel extends AbstractUIProvider {

    private ParameterMatrix matrix;

    @Override
    protected Data[] getData() {
        Map<String, List<String>> selection = matrix.getSelection();
        Set<Map.Entry<String, List<String>>> entries = selection.entrySet();

        Data[] list = new Data[selection.size()];

        int i = 0;

        for (Map.Entry<String, List<String>> entry: entries) {
            String value = buildValueString(entry.getValue());

            DataItem item = new DefaultDataItem(
                entry.getKey(),
                null,
                value);

            list[i++] = new DefaultData(
                entry.getKey(), null, null, new DataItem[] { item });
        }

        return list;
    }


    protected String buildValueString(List<String> values) {
        StringBuilder sb = new StringBuilder();

        boolean first = true;

        for (String value: values) {
            if (!first) {
                sb.append(";");
            }

            sb.append(value);

            first = false;
        }

        return sb.toString();
    }


    @Override
    public Canvas createOld(DataList dataList) {
        HLayout layout  = new HLayout();
        VLayout vLayout = new VLayout();

        layout.setWidth(300);
        vLayout.setWidth(280);

        for (int i = 0, n = dataList.size(); i < n; i++) {
            HLayout row  = new HLayout();
            VLayout cols = new VLayout();

            row.setWidth(300);
            cols.setWidth(100);

            Data       data  = dataList.get(i);
            DataItem[] items = data.getItems();

            Label parameter = new Label(data.getDescription());
            parameter.setWidth(200);

            for (int j = 0, m = items.length; j < m; j++) {
                DataItem item  = items[j];
                Label    value = new Label(item.getLabel());

                value.setValign(com.smartgwt.client.types.VerticalAlignment.TOP);
                value.setWidth(130);
                value.setHeight(20);

                cols.addMember(value);
            }

            row.addMember(parameter);
            row.addMember(cols);

            vLayout.addMember(row);
        }

        Canvas back = getBackButton(dataList.getState());

        layout.addMember(vLayout);
        layout.addMember(back);

        return layout;
    }

    @Override
    public Canvas create(DataList dataList) {
        VLayout v = new VLayout();
        v.addMember(createTitle(dataList));

        matrix = new ParameterMatrix();

        for (Data data: dataList.getAll()) {
            if (data instanceof IntegerOptionsData) {
                matrix.addColumn((IntegerOptionsData) data);
            }
            else if (data instanceof StringOptionsData) {
                matrix.addColumn((StringOptionsData) data);
            }
        }

        v.addMember(matrix.create());
        v.addMember(getNextButton());

        return v;
    }


    protected Canvas createTitle(DataList dataList) {
        Data data = dataList.get(0);
        Label label = new Label(data.getDescription());
        label.setHeight(35);

        return label;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org