[PATCH 6 of 6] Display the additional information extracted from multiattribute data
Wald Commits
scm-commit at wald.intevation.org
Thu Mar 20 13:37:33 CET 2014
# HG changeset patch
# User Raimund Renkert <rrenkert at intevation.de>
# Date 1395319019 -3600
# Branch minfo-opt
# Node ID 982382d9ea8b49aad8701e09e35a2bfcfb72931f
# Parent b9decb8bfb21e56cf88af3e44c26774e22135067
Display the additional information extracted from multiattribute data.
diff -r b9decb8bfb21 -r 982382d9ea8b gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrix.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrix.java Thu Mar 20 13:36:20 2014 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrix.java Thu Mar 20 13:36:59 2014 +0100
@@ -25,6 +25,8 @@
import org.dive4elements.river.client.client.FLYSConstants;
import org.dive4elements.river.client.shared.model.DataItem;
import org.dive4elements.river.client.shared.model.IntegerOptionsData;
+import org.dive4elements.river.client.shared.model.MultiAttributeData;
+import org.dive4elements.river.client.shared.model.MultiDataItem;
import org.dive4elements.river.client.shared.model.StringOptionsData;
import java.io.Serializable;
@@ -79,6 +81,7 @@
private Map<String, Column> columns;
private List<String> columnNames;
private List<String> valueNames;
+ private Map<String, List<String>> attributes;
/** Maps column names to list of rows' first fields. */
private Map<String, List<String>> selected;
@@ -89,6 +92,7 @@
this.columnNames = new ArrayList<String>();
this.valueNames = new ArrayList<String>();
this.selected = new HashMap<String, List<String>>();
+ this.attributes = new HashMap<String, List<String>>();
}
@@ -148,6 +152,49 @@
columns.put(groupTitle, col);
}
+ public void addColumn(MultiAttributeData options) {
+ GWT.log("Add Columns for MultiAttribute data");
+ String groupTitle = options.getLabel();
+
+ Column col = new Column(groupTitle);
+ DataItem[] items = options.getItems();
+
+ if (items == null) {
+ GWT.log("No items found in StringOptionsData '" + groupTitle + "'");
+ return;
+ }
+
+ MultiDataItem mItem = (MultiDataItem)items[0];
+ for (Map.Entry<String, String> entry: mItem.getValue().entrySet()) {
+ if (entry.getKey().equals("art:value") ||
+ entry.getKey().equals("art:label")) {
+ continue;
+ }
+ attributes.put(entry.getKey(), new ArrayList<String>());
+ }
+ for (DataItem item: items) {
+ GWT.log("multidataitem: " + item.getLabel());
+ String title = item.getLabel();
+
+ if (valueNames.indexOf(title) < 0) {
+ valueNames.add(title);
+ }
+ MultiDataItem mi = (MultiDataItem)item;
+ Map<String, String> vs = mi.getValue();
+ for (Map.Entry<String, String>e: vs.entrySet()) {
+ if (e.getKey().equals("art:value") ||
+ e.getKey().equals("art:label")) {
+ continue;
+ }
+ List<String> data = attributes.get(e.getKey());
+ data.add(e.getValue());
+ }
+ col.addValue(item.getLabel(), mi.getValue().get("art:value"));
+ }
+
+ columnNames.add(groupTitle);
+ columns.put(groupTitle, col);
+ }
public Widget createParameterGrid() {
listGrid = new ListGrid();
@@ -155,7 +202,7 @@
listGrid.setWrapCells(true);
listGrid.setShowHeaderContextMenu(false);
listGrid.setCanReorderFields(false);
- listGrid.setCanSort(false);
+// listGrid.setCanSort(false);
//listGrid.setAutoFitData(Autofit.VERTICAL);
listGrid.setFixedRecordHeights(false);
// TODO: Then also need "autofit" (when wrapping)
@@ -164,6 +211,12 @@
ArrayList<ListGridField> fields = new ArrayList<ListGridField>();
fields.add(itemNameField);
+ for (Map.Entry<String, List<String>> entry: attributes.entrySet()) {
+ ListGridField attrField = new ListGridField(
+ entry.getKey(), MESSAGE.getString(entry.getKey()));
+ fields.add(attrField);
+ }
+
for (int i = 0, n = columnNames.size(); i < n; i++) {
ListGridField field = new ListGridField(columnNames.get(i), MESSAGE.getString(columnNames.get(i)));
field.setType(ListGridFieldType.BOOLEAN);
@@ -189,6 +242,9 @@
record.setAttribute(columnName, false);
record.setAttribute(columnName+"-value", value);
}
+ for (Map.Entry<String, List<String>> entry: attributes.entrySet()) {
+ record.setAttribute(entry.getKey(), entry.getValue().get(j));
+ }
records.add(record);
}
diff -r b9decb8bfb21 -r 982382d9ea8b gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrixPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrixPanel.java Thu Mar 20 13:36:20 2014 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ParameterMatrixPanel.java Thu Mar 20 13:36:59 2014 +0100
@@ -23,6 +23,7 @@
import org.dive4elements.river.client.shared.model.DefaultData;
import org.dive4elements.river.client.shared.model.DefaultDataItem;
import org.dive4elements.river.client.shared.model.IntegerOptionsData;
+import org.dive4elements.river.client.shared.model.MultiAttributeData;
import org.dive4elements.river.client.shared.model.StringOptionsData;
import java.util.ArrayList;
@@ -169,6 +170,9 @@
else if (data instanceof StringOptionsData) {
matrix.addColumn((StringOptionsData) data);
}
+ else if (data instanceof MultiAttributeData) {
+ matrix.addColumn((MultiAttributeData)data);
+ }
}
// If too many items are shown, show it in the helper Panel.
More information about the Dive4Elements-commits
mailing list