# HG changeset patch # User Ingo Weinzierl # Date 1308821386 0 # Node ID 69c0a6ecad57f2ed5e355a8a594e42d8d63034f2 # Parent 9e30c776cbef815bb940ed61b239ffa8bb405d46 #165 (part 1) Added tooltips and table headers in the project list. flys-client/trunk@2213 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 9e30c776cbef -r 69c0a6ecad57 flys-client/ChangeLog --- a/flys-client/ChangeLog Thu Jun 23 09:22:54 2011 +0000 +++ b/flys-client/ChangeLog Thu Jun 23 09:29:46 2011 +0000 @@ -1,3 +1,10 @@ +2011-06-23 Ingo Weinzierl + + flys/issue165 (Projektliste: Einige Auffälligkeiten nach Neuimplementierung) + + * src/main/java/de/intevation/flys/client/client/ui/ProjectList.java: + Added tooltips and table headers. + 2011-06-23 Ingo Weinzierl * src/main/java/de/intevation/flys/client/client/FLYSConstants.properties, diff -r 9e30c776cbef -r 69c0a6ecad57 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 Thu Jun 23 09:22:54 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/ProjectList.java Thu Jun 23 09:29:46 2011 +0000 @@ -12,11 +12,15 @@ import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.ListGridEditEvent; import com.smartgwt.client.types.ListGridFieldType; +import com.smartgwt.client.types.SelectionStyle; +import com.smartgwt.client.types.SortArrow; import com.smartgwt.client.types.SortDirection; +import com.smartgwt.client.util.BooleanCallback; 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.HoverCustomizer; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; @@ -69,6 +73,15 @@ /** Min Interval to refresh the user's projects.*/ public static final int MIN_UPDATE_INTERVAL = 5000; + /** The initial width of this panel.*/ + public static final int MIN_WIDTH = 300; + + public static final String COLUMN_DATE_WIDTH = "100px"; + + public static final String COLUMN_TITLE_WIDTH = "*"; + + public static final String COLUMN_FAVORITE_WIDTH = "75px"; + /** The interface that provides i18n messages. */ private FLYSConstants messages = GWT.create(FLYSConstants.class); @@ -119,19 +132,18 @@ protected void initGrid() { + grid.setWidth100(); + grid.setHeight100(); + grid.setAutoFitMaxWidth(500); grid.setEmptyMessage(messages.no_projects()); grid.setLoadingDataMessage(messages.load_projects()); - grid.setShowRecordComponents(true); - grid.setShowRecordComponentsByCell(true); - grid.setCanRemoveRecords(false); - grid.setShowHeader(false); - grid.setWidth100(); - grid.setHeight100(); + grid.setCanEdit(false); + grid.setEditEvent(ListGridEditEvent.NONE); + grid.setShowHeaderContextMenu(false); + grid.setShowSortArrow(SortArrow.NONE); grid.setSortDirection(SortDirection.DESCENDING); grid.setSortField(0); - grid.setCanEdit(false); - grid.setEditByCell(true); - grid.setEditEvent(ListGridEditEvent.NONE); + grid.setSelectionType(SelectionStyle.SINGLE); ListGridField date = buildDateField(); ListGridField name = buildNameField(); @@ -229,7 +241,13 @@ MenuItem del = new MenuItem(messages.delete_project()); del.addClickHandler(new ClickHandler() { public void onClick(MenuItemClickEvent evt) { - deleteCollection(record.getCollection()); + SC.ask(messages.really_delete(), new BooleanCallback() { + public void execute(Boolean value) { + if (value) { + deleteCollection(record.getCollection()); + } + } + }); } }); @@ -253,7 +271,8 @@ * The init() method handles the layout stuff for this widget. */ protected void init() { - setWidth(300); + setWidth(MIN_WIDTH); + setMinWidth(MIN_WIDTH); setHeight100(); setShowResizeBar(true); setShowEdges(false); @@ -303,7 +322,6 @@ String name = (String) newValues.get("name"); c.setName(name); - updateCollectionName(c); } @@ -470,7 +488,9 @@ * @return the grid field. */ protected ListGridField buildDateField() { - ListGridField date = new ListGridField("creationTime", "creationTime"); + ListGridField date = new ListGridField( + "creationTime", messages.projectlist_creationTime()); + date.setType(ListGridFieldType.DATE); date.setCanEdit(false); @@ -487,8 +507,8 @@ } }); - date.setWidth(100); - date.setAlign(Alignment.LEFT); + date.setWidth(COLUMN_DATE_WIDTH); + date.setAlign(Alignment.CENTER); return date; } @@ -500,8 +520,28 @@ * @return the grid field. */ protected ListGridField buildNameField() { - ListGridField name = new ListGridField("name", "name"); + ListGridField name = new ListGridField( + "name", messages.projectlist_title()); + name.setType(ListGridFieldType.TEXT); + name.setShowHover(true); + name.setHoverCustomizer(new HoverCustomizer() { + public String hoverHTML( + Object value, + ListGridRecord record, + int row, + int col) + { + CollectionRecord r = (CollectionRecord) record; + Collection c = r.getCollection(); + + String name = c.getName(); + + return name != null && name.length() > 0 + ? name + : c.identifier(); + } + }); name.setCellFormatter(new CellFormatter() { public String format(Object value, ListGridRecord record, int row, int col) { @@ -517,7 +557,7 @@ } }); - name.setWidth(165); + name.setWidth(COLUMN_TITLE_WIDTH); name.setAlign(Alignment.LEFT); return name; @@ -525,13 +565,15 @@ protected ListGridField buildFavoriteField() { - ListGridField fav = new ListGridField("ttl", "ttl"); + ListGridField fav = new ListGridField( + "ttl", messages.projectlist_favorite()); + fav.setType(ListGridFieldType.IMAGE); String base = GWT.getHostPageBaseURL(); fav.setImageURLPrefix(base + "images/"); fav.setImageURLSuffix(".png"); - fav.setWidth(30); - fav.setAlign(Alignment.RIGHT); + fav.setWidth(COLUMN_FAVORITE_WIDTH); + fav.setAlign(Alignment.CENTER); fav.setCanEdit(false); return fav;