diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/wq/QDTable.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-client/src/main/java/org/dive4elements/river/client/client/ui/wq/QDTable.java@821a02bbfb4e
children 172338b1407f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/wq/QDTable.java	Thu Apr 25 15:23:37 2013 +0200
@@ -0,0 +1,126 @@
+package org.dive4elements.river.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 org.dive4elements.river.client.client.FLYSConstants;
+
+
+/**
+ * Table showing Q and D main values, allowing for selection.
+ * @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", MESSAGE.from());
+        addMax.setType(ListGridFieldType.ICON);
+        addMax.setWidth(30);
+        addMax.setCellIcon(baseUrl + MESSAGE.markerRed());
+
+        ListGridField addMin = new ListGridField("min", MESSAGE.to());
+        addMin.setType(ListGridFieldType.ICON);
+        addMin.setWidth(30);
+        addMin.setCellIcon(baseUrl + MESSAGE.markerGreen());
+
+        ListGridField select = new ListGridField("select", MESSAGE.selection());
+        select.setType(ListGridFieldType.ICON);
+        select.setWidth(70);
+        select.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_q());
+        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, select, name, type, value);
+    }
+
+    public void hideIconFields () {
+        hideField("max");
+        hideField("min");
+        hideField("select");
+        lockClick = true;
+    }
+
+
+    public void showIconFields() {
+        showField("max");
+        showField("min");
+        hideField("select");
+        lockClick = false;
+    }
+
+    public void showSelect() {
+        showField("select");
+        hideField("max");
+        hideField("min");
+    }
+
+    public boolean isLocked() {
+        return lockClick;
+    }
+
+    /**
+     * Search all records for one with attribute name equals to given name.
+     * @return null if none found.
+     * */
+    public Double findRecordValue(String name) {
+        for (ListGridRecord record : getRecords()) {
+            if (record.getAttribute("name").equals(name)) {
+                return record.getAttributeAsDouble("value");
+            }
+        }
+        return null;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org