Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RiverInfoPanel.java @ 6413:c1b01cf2e91b
issue1259: fixing initial selected input helper tab. Believing that there is a bug in TabSet.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Tue, 25 Jun 2013 09:01:45 +0200 |
parents | 24be0cc1c67c |
children | c702bac7f72e |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.client.client.ui; import java.util.Iterator; import org.dive4elements.river.client.client.FLYS; import org.dive4elements.river.client.client.FLYSConstants; import org.dive4elements.river.client.shared.model.RiverInfo; import com.google.gwt.core.client.GWT; import com.google.gwt.i18n.client.NumberFormat; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.LinkItem; /** * Panel to display information about a river. * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> */ public class RiverInfoPanel extends HorizontalPanel { /** The flys instance */ protected FLYS flys; /** The message class that provides i18n strings.*/ protected FLYSConstants MSG = GWT.create(FLYSConstants.class); public final static int HEIGHT = 30; public final static int BORDER_WIDTH = 3; public final static int PADDING = 8; public final static int MARGIN = 10; public RiverInfoPanel(FLYS flys, RiverInfo riverinfo) { this.flys = flys; setStyleName("riverinfopanel"); setHeight("" + HEIGHT + "px"); setVerticalAlignment(ALIGN_MIDDLE); setRiverInfo(riverinfo); } public void setRiverInfo(RiverInfo riverinfo) { GWT.log("RiverInfoPanel - setRiverInfo"); NumberFormat nf = NumberFormat.getDecimalFormat(); removeAllLabels(); addLabel(riverinfo.getName(), false); String kmtext = ""; Double start = riverinfo.getKmStart(); Double end = riverinfo.getKmEnd(); if (!riverinfo.isKmUp()) { Double tmp = end; end = start; start = tmp; } if (end != null) { kmtext += nf.format(end); kmtext += " - "; } if (start != null) { kmtext += nf.format(start); } kmtext += " km"; addLabel(kmtext, false); String qtext = ""; Double qmin = riverinfo.getMinQ(); Double qmax = riverinfo.getMaxQ(); if (qmin != null) { qtext += nf.format(qmin); qtext += " " + MSG.gauge_q_unit(); qtext += " - "; } if (qmax != null) { qtext += nf.format(qmax); qtext += " " + MSG.gauge_q_unit(); } addLabel(qtext, false); Long number = riverinfo.getOfficialNumber(); String url = number != null ? MSG.gauge_river_url() + number : MSG.gauge_river_url(); DynamicForm infoLink = WikiLinks.linkHTML(this.flys, url, MSG.gauge_river_info_link()); infoLink.setTop(5); LinkItem item = (LinkItem)infoLink.getField("saml"); item.setTextBoxStyle("font-size: large;"); add(infoLink); } public static int getStaticHeight() { return RiverInfoPanel.HEIGHT + (2 * RiverInfoPanel.BORDER_WIDTH) + (2 * RiverInfoPanel.PADDING) + (2 * RiverInfoPanel.MARGIN); } private void addLabel(String text, boolean wordwrap) { Label label = new Label(text, wordwrap); add(label); setCellHeight(label, "" + HEIGHT + "px"); } private void removeAllLabels() { GWT.log("RiverInfoPanel - removeAllLabels"); Iterator<Widget> it = this.iterator(); while(it.hasNext()) { it.next(); it.remove(); } /* for (Widget wid: this) { */ /* this.remove(wid); */ /* } */ } }