teichmann@5861: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5861: * Software engineering by Intevation GmbH teichmann@5861: * teichmann@5993: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5861: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5993: * documentation coming with Dive4Elements River for details. teichmann@5861: */ teichmann@5861: teichmann@5835: package org.dive4elements.river.client.client.ui.stationinfo; bjoern@4956: teichmann@5835: import org.dive4elements.river.client.client.FLYS; teichmann@5835: import org.dive4elements.river.client.client.FLYSConstants; rrenkert@6272: import org.dive4elements.river.client.client.ui.WikiLinks; teichmann@5835: import org.dive4elements.river.client.shared.model.Data; teichmann@5835: import org.dive4elements.river.client.shared.model.DataList; teichmann@5835: import org.dive4elements.river.client.shared.model.RiverInfo; bjoern@4956: gernotbelger@9093: import com.google.gwt.core.client.GWT; gernotbelger@9093: import com.smartgwt.client.widgets.Canvas; gernotbelger@9093: import com.smartgwt.client.widgets.grid.ListGrid; gernotbelger@9093: import com.smartgwt.client.widgets.grid.ListGridRecord; gernotbelger@9093: bjoern@4956: /** bjoern@4956: * @author Björn Ricks bjoern@4956: */ bjoern@4956: public abstract class InfoListGrid extends ListGrid { bjoern@4956: bjoern@4956: protected FLYS flys; bjoern@4956: protected DataList[] data; gernotbelger@9093: /** The message class that provides i18n strings. */ bjoern@4962: protected FLYSConstants MSG = GWT.create(FLYSConstants.class); bjoern@4962: gernotbelger@9093: public InfoListGrid(final FLYS flys) { bjoern@4956: super(); bjoern@4956: this.flys = flys; bjoern@4956: this.setCanExpandRecords(true); bjoern@4956: this.setCanExpandMultipleRecords(true); bjoern@4956: } bjoern@4956: rrenkert@6272: @Override gernotbelger@9093: protected Canvas createRecordComponent(final ListGridRecord record, final Integer colNum) { gernotbelger@9093: final String name = this.getFieldName(colNum); rrenkert@6272: if (name.equals("infolink")) { gernotbelger@9093: return WikiLinks.linkDynamicForm(this.flys, record.getAttribute("link"), record.getLinkText()); gernotbelger@9093: } else { rrenkert@6272: return null; rrenkert@6272: } rrenkert@6272: } rrenkert@6272: bjoern@4956: public void openAll() { bjoern@4956: GWT.log("InfoListGrid - openAll"); gernotbelger@9093: for (final ListGridRecord record : this.getRecords()) { bjoern@4956: expandRecord(record); bjoern@4956: } bjoern@4956: } bjoern@4956: gernotbelger@9093: public void setData(final DataList[] data) { bjoern@4956: GWT.log("InfoListGrid - setData"); bjoern@4956: this.data = data; bjoern@4956: this.open(); bjoern@4956: } bjoern@4956: gernotbelger@9093: protected Double getDoubleValue(final Data d) { gernotbelger@9093: final String tmp = d.getStringValue(); bjoern@4956: if (tmp != null) { bjoern@4956: return Double.valueOf(tmp); bjoern@4956: } bjoern@4956: return null; bjoern@4956: } bjoern@4956: bjoern@4956: @Override gernotbelger@9093: protected Canvas getExpansionComponent(final ListGridRecord record) { rrenkert@7935: return this.getExpandPanel(record); bjoern@4956: } bjoern@4956: bjoern@4956: public abstract void open(); bjoern@4956: bjoern@4956: public abstract void setRiverInfo(RiverInfo riverinfo); bjoern@4956: bjoern@4956: protected abstract Canvas getExpandPanel(ListGridRecord record); teichmann@8023: }