Mercurial > hg > STI-GWT
diff src/econnect/wp3_3/client/widgets/table/DynamicStiTable.java @ 68:8b58d9bc0bb6 trimmed_data
add functionality for additional tabular data from the description field (work in progress)
author | Sebastian Kruse <skruse@mpiwg-berlin.mpg.de> |
---|---|
date | Thu, 03 Jan 2013 18:43:28 +0100 |
parents | aa1808d94d80 |
children | ea856995abac |
line wrap: on
line diff
--- a/src/econnect/wp3_3/client/widgets/table/DynamicStiTable.java Wed Jan 02 16:52:01 2013 +0100 +++ b/src/econnect/wp3_3/client/widgets/table/DynamicStiTable.java Thu Jan 03 18:43:28 2013 +0100 @@ -25,6 +25,7 @@ import com.google.gwt.view.client.Range; import com.google.gwt.view.client.RangeChangeEvent; import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.JsArrayString; import com.google.gwt.dom.client.NodeList; import com.google.gwt.dom.client.Style.BorderStyle; import com.google.gwt.dom.client.Style.Unit; @@ -302,7 +303,7 @@ }; descriptionColumn.setSortable(true); this.elementsTable.addColumn(descriptionColumn, "Description"); - + SimplePager pager = new SimplePager(); pager.setDisplay(this.elementsTable); @@ -311,6 +312,36 @@ //The actual (at this time lexicographical) sorting routine. //TODO: remove redundant code, make this more abstract ListHandler<DataObject> columnSortHandler = new ListHandler<econnect.wp3_3.client.core.DataObject>(dataProvider.getList()); + + JsArrayString descriptionDataColumns = this.dataSet.getDescriptionDataColumns(); + for (int i = 0; i < descriptionDataColumns.length(); i++) { + final String columnName = descriptionDataColumns.get(i); + + TextColumn<DataObject> column = new TextColumn<DataObject>() { + @Override + public String getValue(DataObject object) { + return object.getDescriptionData(columnName); + } + }; + + column.setSortable(true); + + columnSortHandler.setComparator(column, + new Comparator<econnect.wp3_3.client.core.DataObject>() { + public int compare(econnect.wp3_3.client.core.DataObject o1, econnect.wp3_3.client.core.DataObject o2) { + if (o1 == o2) + return 0; + + if (o1 != null) + return (o2 != null) ? o1.getDescriptionData(columnName).compareTo(o2.getDescriptionData(columnName)) : 1; + + return -1; + } + }); + + this.elementsTable.addColumn(column, columnName); + } + columnSortHandler.setComparator(nameColumn, new Comparator<econnect.wp3_3.client.core.DataObject>() { public int compare(econnect.wp3_3.client.core.DataObject o1, econnect.wp3_3.client.core.DataObject o2) { @@ -323,6 +354,7 @@ return -1; } }); + columnSortHandler.setComparator(placeColumn, new Comparator<econnect.wp3_3.client.core.DataObject>() { public int compare(econnect.wp3_3.client.core.DataObject o1, econnect.wp3_3.client.core.DataObject o2) {