Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/TableDataPanel.java @ 3847:f3b821735e39
Calculate the info url via i18n
Don't fetch the info url from the artifact service and use i18n to calculate the
url by using the official gauge and river number.
flys-client/trunk@5582 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Bjoern Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Mon, 24 Sep 2012 08:39:22 +0000 |
parents | efdb4fe5a69e |
children | 03de5c424f95 |
line wrap: on
line source
package de.intevation.flys.client.client.ui; import java.util.List; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.i18n.client.NumberFormat; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.types.ListGridFieldType; import de.intevation.flys.client.shared.model.DataList; import de.intevation.flys.client.client.FLYSConstants; import de.intevation.flys.client.client.Config; import de.intevation.flys.client.client.services.CSVExportService; import de.intevation.flys.client.client.services.CSVExportServiceAsync; /** * This UIProvider creates a widget that displays calculated data in a table. * * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class TableDataPanel { /** The message class that provides i18n strings. */ protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); protected CSVExportServiceAsync exportService = GWT.create(CSVExportService.class); /** A container that will contain the location or the distance panel. */ protected VLayout container; /** The export type. */ protected String name; /** The UUID of the collection. */ protected String uuid; /** The table. */ protected ListGrid dataTable; /** * Creates a new LocationDistancePanel instance. */ public TableDataPanel() { container = new VLayout(); dataTable = new ListGrid(); name = ""; } /** * This method creates a widget that contains a table. * * @return a panel. */ public Canvas create() { Config config = Config.getInstance(); String locale = config.getLocale (); dataTable.setEmptyMessage(MESSAGES.empty_table()); dataTable.setShowHeaderContextMenu(false); dataTable.setCanDragSelectText(true); exportService.getCSV(locale, uuid, name, new AsyncCallback<List<String[]>>() { public void onFailure(Throwable caught) { GWT.log("Could not recieve csv."); SC.warn(caught.getMessage()); } public void onSuccess(List<String[]> l) { GWT.log("Recieved csv with " + l.size() + " lines."); setData(l); } } ); container.addMember(dataTable); return container; } public void setName(String name) { this.name = name; } public void setUuid(String uuid) { this.uuid = uuid; } public Canvas createOld(DataList dataList) { return null; } protected Canvas createWidget(DataList data) { return null; } /** * This method sets the data to a dynmic table. * * @param list List if String[] containing the data. */ public void setData(List list) { if (list == null || list.size() < 2) { dataTable.setEmptyMessage(MESSAGES.error_no_calc_result()); dataTable.redraw(); return; } Config config = Config.getInstance(); String locale = config.getLocale(); NumberFormat nf; if (locale.equals("de")) { nf = NumberFormat.getFormat("#,##"); } else { nf = NumberFormat.getFormat("#.##"); } String[] header = (String[])list.get(0); String[] firstValues = (String[])list.get(1); ListGridField[] fields = new ListGridField[header.length]; for(int i = 0; i < header.length; i++) { ListGridField f = new ListGridField(String.valueOf(i)); fields[i] = f; f.setTitle(header[i]); try { nf.parse(firstValues[i]); f.setType(ListGridFieldType.FLOAT); } catch (NumberFormatException nfe) { f.setType(ListGridFieldType.TEXT); } } dataTable.setFields(fields); for(int i = 1; i < list.size(); i++) { String[] sItem = (String[])list.get(i); ListGridRecord r = new ListGridRecord(); for(int j = 0; j < sItem.length; j++) { r.setAttribute(String.valueOf(j), sItem[j]); } dataTable.addData(r); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :