# HG changeset patch # User Björn Ricks # Date 1350912180 -7200 # Node ID 1fa244f70ad52f7cb8d40dd435a1f7cc373ee30e # Parent 221d255f7ec2b896c6d4e13e60a1e3ed4bba1d15 Move RiverInfoPanel to its own java file in refactor it Allow to change the riverinfo without having to create a new instace of the RiverInfoPanel. diff -r 221d255f7ec2 -r 1fa244f70ad5 flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java Mon Oct 22 15:20:33 2012 +0200 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java Mon Oct 22 15:23:00 2012 +0200 @@ -142,70 +142,4 @@ GWT.log("GaugePanel - show"); this.sectionStack.setHidden(false); } - - class RiverInfoPanel extends HorizontalPanel { - - 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(RiverInfo riverinfo) { - setStyleName("riverinfopanel"); - setHeight("" + HEIGHT + "px"); - setVerticalAlignment(ALIGN_MIDDLE); - - NumberFormat nf = NumberFormat.getDecimalFormat(); - - 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(); - Anchor anchor = new Anchor(MSG.gauge_river_info_link(), url, "_blank"); - add(anchor); - } - - private void addLabel(String text, boolean wordwrap) { - Label label = new Label(text, wordwrap); - add(label); - setCellHeight(label, "" + HEIGHT + "px"); - } - } } diff -r 221d255f7ec2 -r 1fa244f70ad5 flys-client/src/main/java/de/intevation/flys/client/client/ui/RiverInfoPanel.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/RiverInfoPanel.java Mon Oct 22 15:23:00 2012 +0200 @@ -0,0 +1,118 @@ +package de.intevation.flys.client.client.ui; + +import java.util.Iterator; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.i18n.client.NumberFormat; +import com.google.gwt.user.client.ui.Anchor; +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 de.intevation.flys.client.client.FLYSConstants; + +import de.intevation.flys.client.shared.model.RiverInfo; + +/** + * @author Björn Ricks + */ +public class RiverInfoPanel extends HorizontalPanel { + + /** + * Panel to display information about a river + */ + + /** 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(RiverInfo riverinfo) { + 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(); + Anchor anchor = new Anchor(MSG.gauge_river_info_link(), url, "_blank"); + add(anchor); + } + + 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 it = this.iterator(); + while(it.hasNext()) { + it.next(); + it.remove(); + } + /* for (Widget wid: this) { */ + /* this.remove(wid); */ + /* } */ + } +}