view flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterMatrixPanel.java @ 3719:e82acd5c86f7

Merged revisions 5495-5496,5509,5514-5515,5521-5526 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-client/trunk ........ r5495 | ingo | 2012-09-17 14:55:09 +0200 (Mo, 17 Sep 2012) | 1 line Added missing i18n strings for minfo state description. ........ r5496 | ingo | 2012-09-17 15:47:43 +0200 (Mo, 17 Sep 2012) | 1 line Tagged 'flys-client' as 2.9.1 ........ r5509 | teichmann | 2012-09-18 17:54:37 +0200 (Di, 18 Sep 2012) | 1 line Removed trailing whitespace. ........ r5514 | bricks | 2012-09-19 09:56:42 +0200 (Mi, 19 Sep 2012) | 2 lines Add missing Changelog entry for r5472 ........ r5515 | bricks | 2012-09-19 09:59:35 +0200 (Mi, 19 Sep 2012) | 2 lines Implement a scrolling gauge info tree ........ r5521 | bricks | 2012-09-19 14:41:48 +0200 (Mi, 19 Sep 2012) | 2 lines Add station info to the gauges ........ r5522 | bricks | 2012-09-19 14:43:43 +0200 (Mi, 19 Sep 2012) | 2 lines Improve the handling of the GaugePanel in the ParameterList ........ r5523 | bricks | 2012-09-19 14:51:02 +0200 (Mi, 19 Sep 2012) | 4 lines Improve the GaugePanel Be locale aware and only load the gauge info if the river name changes. ........ r5524 | bricks | 2012-09-19 15:14:46 +0200 (Mi, 19 Sep 2012) | 5 lines Fix a NullPointerException When iterating over a list it must be checked if the reference to the list is valid. ........ r5525 | bricks | 2012-09-19 15:16:24 +0200 (Mi, 19 Sep 2012) | 2 lines Don't display the GaugePanel if no river is selected ........ r5526 | bricks | 2012-09-19 15:18:36 +0200 (Mi, 19 Sep 2012) | 2 lines Use the wstunit from the river as unit for the Pegelnullpunkt ........ flys-client/tags/2.9.1@5528 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 19 Sep 2012 14:42:48 +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