view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/HWSDatacagePanel.java @ 9220:e3c2ae1887e8

Allow to filter contents of datacage on client side. Allow to override column label of datacage Some code cleanup
author gernotbelger
date Wed, 04 Jul 2018 12:00:51 +0200
parents 5e38e2924c07
children
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */

package org.dive4elements.river.client.client.ui;

import java.util.ArrayList;
import java.util.List;

import org.dive4elements.river.client.shared.model.Data;
import org.dive4elements.river.client.shared.model.DataItem;
import org.dive4elements.river.client.shared.model.DataList;
import org.dive4elements.river.client.shared.model.DefaultData;
import org.dive4elements.river.client.shared.model.DefaultDataItem;
import org.dive4elements.river.client.shared.model.User;

import com.google.gwt.core.client.GWT;
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;

public class HWSDatacagePanel extends DatacagePanel {

    private static final long serialVersionUID = 1L;

    private static final String OUT = "floodmap_hws_panel";

    private static final String PARAMETERS = "hws:true;load-system:true";

    public HWSDatacagePanel(final User user) {
        super(user, OUT, PARAMETERS, true);
    }

    @Override
    public List<String> validate() {
        final List<String> errors = new ArrayList<String>();

        return errors;
    }

    @Override
    public Canvas createOld(final DataList dataList) {
        GWT.log("old datacage##########################################");
        final HLayout layout = new HLayout();
        final VLayout vLayout = new VLayout();
        layout.setWidth("400px");

        final Label label = new Label(dataList.getLabel());
        label.setWidth("200px");

        final int size = dataList.size();
        for (int i = 0; i < size; i++) {
            final Data data = dataList.get(i);
            final DataItem[] items = data.getItems();

            for (final DataItem item : items) {
                final HLayout hLayout = new HLayout();

                hLayout.addMember(label);
                hLayout.addMember(new Label(item.getLabel()));

                vLayout.addMember(hLayout);
                vLayout.setWidth("130px");
            }
        }

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

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

        return layout;
    }

    @Override
    protected Data[] getData() {
        final String[] selection = getSelectionTitles();
        String result = "";
        boolean first = true;
        if (selection != null) {
            for (final String record : selection) {
                if (first) {
                    result += record;
                    first = false;
                } else {
                    result += ";" + record;
                }
            }
        }
        if (result.length() == 0) {
            result = MSG.notselected();
        }
        final Data[] data = new Data[1];
        final DataItem item = new DefaultDataItem("uesk.hws", "uesk.hws", result);
        data[0] = new DefaultData("uesk.hws", null, null, new DataItem[] { item });

        return data;
    }
}

http://dive4elements.wald.intevation.org