ingo@4: package de.intevation.flys.client.client.ui; ingo@4: ingo@4: import java.util.Date; ingo@4: ingo@4: import com.google.gwt.core.client.GWT; ingo@4: import com.google.gwt.i18n.client.DateTimeFormat; ingo@4: ingo@4: import com.smartgwt.client.widgets.Canvas; ingo@4: import com.smartgwt.client.widgets.IButton; ingo@4: import com.smartgwt.client.widgets.Label; ingo@4: import com.smartgwt.client.widgets.grid.ListGrid; ingo@4: import com.smartgwt.client.widgets.grid.ListGridRecord; ingo@4: ingo@4: import de.intevation.flys.client.shared.model.CollectionRecord; ingo@4: ingo@211: import de.intevation.flys.client.client.FLYSConstants; ingo@4: ingo@4: ingo@4: /** ingo@4: * @author Ingo Weinzierl ingo@4: */ ingo@4: public class CollectionGrid extends ListGrid { ingo@4: ingo@4: /** The message class that provides i18n strings.*/ ingo@211: FLYSConstants messages = GWT.create(FLYSConstants.class); ingo@4: ingo@4: /** ingo@4: * The default constructor that creates a new ListGrid item. ingo@4: * ingo@4: * @param collection The artifact collection. ingo@4: */ ingo@4: public CollectionGrid() { ingo@4: } ingo@4: ingo@4: @Override ingo@4: protected Canvas createRecordComponent( ingo@4: final ListGridRecord record, Integer col) ingo@4: { ingo@4: String field = getFieldName(col); ingo@4: ingo@4: if (field == null) return null; ingo@4: if (field.equals("date")) return createDateField(record); ingo@4: else if (field.equals("name")) return createNameField(record); ingo@4: else if (field.equals("publish")) return createPublishField(record); ingo@4: else if (field.equals("delete")) return createDeleteField(record); ingo@4: ingo@4: return null; ingo@4: } ingo@4: ingo@4: ingo@4: /** ingo@4: * This method creates the date field for the collection grid. ingo@4: * ingo@4: * @param record The record to be displayed. ingo@4: */ ingo@4: protected Canvas createDateField(ListGridRecord record) { ingo@4: CollectionRecord rec = (CollectionRecord) record; ingo@4: ingo@97: Date date = rec.getCreationTime(); ingo@97: DateTimeFormat dtf = DateTimeFormat.getFormat( ingo@97: messages.datetime_format()); ingo@97: ingo@4: String formatted = dtf.format(date); ingo@4: ingo@4: Label label = new Label(formatted); ingo@4: label.setHeight(15); ingo@97: label.setWidth100(); ingo@4: ingo@4: return label; ingo@4: } ingo@4: ingo@4: ingo@4: /** ingo@4: * This method creates the name field for the collection grid. ingo@4: * ingo@4: * @param record The record to be displayed. ingo@4: */ ingo@4: protected Canvas createNameField(ListGridRecord record) { ingo@4: CollectionRecord rec = (CollectionRecord) record; ingo@4: ingo@97: String name = rec.getName(); ingo@97: int len = name.length(); ingo@97: int sec = len - 15; ingo@97: String sub = name.substring(0, 14) + "..." + name.substring(sec, len-1); ingo@97: ingo@97: Label label = new Label(sub); ingo@4: label.setHeight(15); ingo@97: label.setWidth100(); ingo@4: ingo@4: return label; ingo@4: } ingo@4: ingo@4: ingo@4: /** ingo@4: * This method creates the field for the collection grid that provides a ingo@4: * button to publish the collection. ingo@4: * ingo@4: * @param record The record to be displayed. ingo@4: */ ingo@4: protected Canvas createPublishField(ListGridRecord record) { ingo@4: IButton button = new IButton(); ingo@4: button.setHeight(15); ingo@4: button.setTitle("PUB"); ingo@4: return button; ingo@4: } ingo@4: ingo@4: ingo@4: /** ingo@4: * This method creates the field for the collection grid that provides a ingo@4: * button to delete the collection. ingo@4: * ingo@4: * @param record The record to be displayed. ingo@4: */ ingo@4: protected Canvas createDeleteField(ListGridRecord record) { ingo@4: IButton button = new IButton(); ingo@4: button.setHeight(15); ingo@4: button.setTitle("DEL"); ingo@4: return button; ingo@4: } ingo@4: } ingo@4: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :