view flys-client/src/main/java/de/intevation/flys/client/client/ui/wq/QDTable.java @ 1498:ed16f28e9063

#196 Localize numbers in W/Q/D tables. flys-client/trunk@3611 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 06 Jan 2012 11:07:32 +0000
parents 047a44270348
children 5659b5e8c9a8
line wrap: on
line source
package de.intevation.flys.client.client.ui.wq;

import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.NumberFormat;

import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;

import de.intevation.flys.client.client.FLYSConstants;


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

    /** The message class that provides i18n strings.*/
    protected FLYSConstants MESSAGE = GWT.create(FLYSConstants.class);


    protected boolean lockClick;

    public QDTable() {
        String baseUrl = GWT.getHostPageBaseURL();

        setWidth100();
        setHeight100();
        setSelectionType(SelectionStyle.SINGLE);
        setSelectionType(SelectionStyle.SINGLE);
        setShowHeaderContextMenu(false);
        setShowRecordComponents(true);
        setShowRecordComponentsByCell(true);
        setEmptyMessage(MESSAGE.empty_table());

        ListGridField addMax = new ListGridField("max", "");
        addMax.setType(ListGridFieldType.ICON);
        addMax.setWidth(30);
        addMax.setCellIcon(baseUrl + MESSAGE.markerRed());

        ListGridField addMin = new ListGridField("min", "");
        addMin.setType(ListGridFieldType.ICON);
        addMin.setWidth(30);
        addMin.setCellIcon(baseUrl + MESSAGE.markerGreen());

        ListGridField name = new ListGridField("name", MESSAGE.discharge());
        name.setType(ListGridFieldType.TEXT);
        name.setWidth("*");

        ListGridField type = new ListGridField("type", MESSAGE.type());
        type.setType(ListGridFieldType.TEXT);
        type.setWidth("20%");

        final NumberFormat nf = NumberFormat.getDecimalFormat();

        ListGridField value = new ListGridField("value", MESSAGE.wq_value());
        value.setType(ListGridFieldType.FLOAT);
        value.setCellFormatter(new CellFormatter() {
            @Override
            public String format(Object v, ListGridRecord r, int row, int col) {
                if (v == null) {
                    return null;
                }

                try {
                    double value = Double.valueOf(v.toString());
                    return nf.format(value);
                }
                catch (NumberFormatException nfe) {
                    return v.toString();
                }
            }
        });
        value.setWidth("20%");

        setFields(addMax, addMin, name, type, value);
    }

    public void hideIconFields () {
        hideField("max");
        hideField("min");
        lockClick = true;
    }


    public void showIconFields() {
        showField("max");
        showField("min");
        lockClick = false;
    }

    public boolean isLocked() {
        return lockClick;
    }

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

http://dive4elements.wald.intevation.org