# HG changeset patch # User Ingo Weinzierl # Date 1302613906 0 # Node ID a13382876e5db5838cdbf0195b7653ee7d949b88 # Parent 9040663aee01c3f086cff3251e5b9b6dcd2c8bba The project list is sorted now. flys-client/trunk@1671 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 9040663aee01 -r a13382876e5d flys-client/ChangeLog --- a/flys-client/ChangeLog Tue Apr 12 11:01:09 2011 +0000 +++ b/flys-client/ChangeLog Tue Apr 12 13:11:46 2011 +0000 @@ -1,3 +1,17 @@ +2011-04-12 Ingo Weinzierl + + * src/main/java/de/intevation/flys/client/shared/model/CollectionRecord.java: + This record class uses the default mechanism to store/load values - + it uses the setAttribute() and getAttribute() methods now. + + * src/main/java/de/intevation/flys/client/client/ui/ProjectList.java: The + list is sorted based on the project's creation time now. + + * src/main/java/de/intevation/flys/client/client/ui/CollectionGrid.java: + Removed. The collection grid is no longer used, because the fields are + created by using default mechanisms (setting the field type, using cell + formatter). + 2011-04-12 Ingo Weinzierl * src/main/java/de/intevation/flys/client/client/FLYS.java: diff -r 9040663aee01 -r a13382876e5d flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionGrid.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionGrid.java Tue Apr 12 11:01:09 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -package de.intevation.flys.client.client.ui; - -import java.util.Date; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.i18n.client.DateTimeFormat; - -import com.smartgwt.client.widgets.Canvas; -import com.smartgwt.client.widgets.IButton; -import com.smartgwt.client.widgets.Label; -import com.smartgwt.client.widgets.grid.ListGrid; -import com.smartgwt.client.widgets.grid.ListGridRecord; - -import de.intevation.flys.client.shared.model.CollectionRecord; - -import de.intevation.flys.client.client.FLYSConstants; - - -/** - * @author Ingo Weinzierl - */ -public class CollectionGrid extends ListGrid { - - /** The message class that provides i18n strings.*/ - FLYSConstants messages = GWT.create(FLYSConstants.class); - - /** - * The default constructor that creates a new ListGrid item. - * - * @param collection The artifact collection. - */ - public CollectionGrid() { - } - - @Override - protected Canvas createRecordComponent( - final ListGridRecord record, Integer col) - { - String field = getFieldName(col); - - if (field == null) return null; - if (field.equals("date")) return createDateField(record); - else if (field.equals("name")) return createNameField(record); - else if (field.equals("publish")) return createPublishField(record); - else if (field.equals("delete")) return createDeleteField(record); - - return null; - } - - - /** - * This method creates the date field for the collection grid. - * - * @param record The record to be displayed. - */ - protected Canvas createDateField(ListGridRecord record) { - CollectionRecord rec = (CollectionRecord) record; - - Date date = rec.getCreationTime(); - DateTimeFormat dtf = DateTimeFormat.getFormat( - messages.datetime_format()); - - String formatted = dtf.format(date); - - Label label = new Label(formatted); - label.setHeight(15); - label.setWidth100(); - - return label; - } - - - /** - * This method creates the name field for the collection grid. - * - * @param record The record to be displayed. - */ - protected Canvas createNameField(ListGridRecord record) { - CollectionRecord rec = (CollectionRecord) record; - - String name = rec.getName(); - int len = name.length(); - int sec = len - 15; - String sub = name.substring(0, 14) + "..." + name.substring(sec, len-1); - - Label label = new Label(sub); - label.setHeight(15); - label.setWidth100(); - - return label; - } - - - /** - * This method creates the field for the collection grid that provides a - * button to publish the collection. - * - * @param record The record to be displayed. - */ - protected Canvas createPublishField(ListGridRecord record) { - IButton button = new IButton(); - button.setHeight(15); - button.setTitle("PUB"); - return button; - } - - - /** - * This method creates the field for the collection grid that provides a - * button to delete the collection. - * - * @param record The record to be displayed. - */ - protected Canvas createDeleteField(ListGridRecord record) { - IButton button = new IButton(); - button.setHeight(15); - button.setTitle("DEL"); - return button; - } -} -// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 9040663aee01 -r a13382876e5d flys-client/src/main/java/de/intevation/flys/client/client/ui/ProjectList.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/ProjectList.java Tue Apr 12 11:01:09 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/ProjectList.java Tue Apr 12 13:11:46 2011 +0000 @@ -1,11 +1,18 @@ package de.intevation.flys.client.client.ui; +import java.util.Date; + import com.google.gwt.core.client.GWT; +import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.user.client.rpc.AsyncCallback; +import com.smartgwt.client.types.Alignment; +import com.smartgwt.client.types.ListGridFieldType; +import com.smartgwt.client.types.SortDirection; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; +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; @@ -66,7 +73,7 @@ this.flys = flys; this.user = user; - grid = new CollectionGrid(); + grid = new ListGrid(); initGrid(); init(); @@ -83,12 +90,11 @@ grid.setShowHeader(false); grid.setWidth100(); grid.setHeight100(); + grid.setSortDirection(SortDirection.DESCENDING); + grid.setSortField(0); - ListGridField date = new ListGridField("date", "date"); - ListGridField name = new ListGridField("name", "name"); - - date.setWidth(100); - name.setWidth(195); + ListGridField date = buildDateField(); + ListGridField name = buildNameField(); grid.setFields(date, name); @@ -226,5 +232,60 @@ grid.addData(new CollectionRecord(c)); } } + + + /** + * Builds the field in the grid that displays the creation time of a + * project. + * + * @return the grid field. + */ + protected ListGridField buildDateField() { + ListGridField date = new ListGridField("creationTime", "creationTime"); + date.setType(ListGridFieldType.DATE); + + date.setCellFormatter(new CellFormatter() { + public String format(Object value, ListGridRecord rec, int r, int c) { + if (value == null) { + return null; + } + + DateTimeFormat dtf = DateTimeFormat.getFormat( + messages.datetime_format()); + + return dtf.format((Date)value); + } + }); + + date.setWidth(105); + date.setAlign(Alignment.LEFT); + + return date; + } + + + /** + * Builds the field in the grid that displays the name of a project. + * + * @return the grid field. + */ + protected ListGridField buildNameField() { + ListGridField name = new ListGridField("name", "name"); + name.setType(ListGridFieldType.TEXT); + + name.setCellFormatter(new CellFormatter() { + public String format(Object value, ListGridRecord record, int row, int col) { + String n = (String) value; + int len = n.length(); + int sec = len - 15; + return n.substring(0, 14) + "..." + n.substring(sec, len-1); + } + }); + + name.setWidth(195); + name.setAlign(Alignment.LEFT); + + return name; + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 9040663aee01 -r a13382876e5d flys-client/src/main/java/de/intevation/flys/client/shared/model/CollectionRecord.java --- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/CollectionRecord.java Tue Apr 12 11:01:09 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/CollectionRecord.java Tue Apr 12 13:11:46 2011 +0000 @@ -23,6 +23,23 @@ */ public CollectionRecord(Collection collection) { this.collection = collection; + + setCreationTime(collection.getCreationTime()); + + String name = collection.getName(); + setName(name != null && name.length() > 0 + ? name + : collection.identifier()); + } + + + /** + * Sets the creation time. + * + * @param creationTime The creation time. + */ + public void setCreationTime(Date creationTime) { + setAttribute("creationTime", creationTime); } @@ -32,7 +49,7 @@ * @return the creation time. */ public Date getCreationTime() { - return collection.getCreationTime(); + return getAttributeAsDate("creationTime"); } @@ -41,14 +58,26 @@ * * @return the name of the collection. */ - public String getName() { - String name = collection.getName(); - return name != null && name.length() > 0 - ? name - : collection.identifier(); + public void setName(String name) { + setAttribute("name", name); } + /** + * Returns the name of the collection or the uuid if no name is specified. + * + * @return the name of the collection. + */ + public String getName() { + return getAttributeAsString("name"); + } + + + /** + * Returns the collection objects itself. + * + * @return the collection object. + */ public Collection getCollection() { return collection; }