view flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterMatrixPanel.java @ 2523:885b02130528

Implemented ParameterMatrixPanel.getData(). flys-client/trunk@4410 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 15 May 2012 14:21:39 +0000
parents fe177e7f61d1
children 39cf246b28c4
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.google.gwt.core.client.GWT;

import com.smartgwt.client.types.FieldType;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
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;

/**
 * @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) {
        GWT.log("TODO: IMPLEMENT RadioPanel.createOld()");
        return new Label("TODO: DISPLAY INSERTED VALUES");
    }

    @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);
            }
        }

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

        return v;
    }


    protected Canvas createTitle(DataList dataList) {
        Label label = new Label(dataList.getState());
        label.setHeight(35);

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

http://dive4elements.wald.intevation.org