teichmann@5835: package org.dive4elements.river.client.client.ui.stationinfo; bjoern@4962: bjoern@4962: import com.google.gwt.core.client.GWT; felix@4981: import com.google.gwt.event.dom.client.ClickEvent; felix@4981: import com.google.gwt.event.dom.client.ClickHandler; bjoern@4962: import com.google.gwt.i18n.client.NumberFormat; felix@4981: import com.google.gwt.user.client.ui.Anchor; rrenkert@5030: import com.smartgwt.client.widgets.layout.HLayout; bjoern@4962: import com.smartgwt.client.widgets.layout.VLayout; felix@4981: import com.smartgwt.client.widgets.Label; bjoern@4962: teichmann@5835: import org.dive4elements.river.client.client.FLYS; teichmann@5835: import org.dive4elements.river.client.client.FLYSConstants; teichmann@5835: import org.dive4elements.river.client.shared.model.GaugeInfo; bjoern@4962: bjoern@4962: public class GaugeInfoPanel extends VLayout { bjoern@4962: bjoern@4962: /** The message class that provides i18n strings.*/ bjoern@4962: private FLYSConstants MSG = GWT.create(FLYSConstants.class); bjoern@4962: felix@4981: /** Application instance. */ felix@4981: private FLYS flys; felix@4981: felix@4981: public GaugeInfoPanel(GaugeInfo gauge, FLYS flys) { felix@4981: this.flys = flys; bjoern@4962: setStyleName("gaugeinfopanel"); bjoern@4962: bjoern@4962: NumberFormat nf = NumberFormat.getDecimalFormat(); bjoern@4962: rrenkert@5030: VLayout grid = new VLayout(); rrenkert@5030: HLayout line1 = new HLayout(); rrenkert@5030: bjoern@4962: Double minw = gauge.getMinW(); bjoern@4962: Double maxw = gauge.getMaxW(); bjoern@4962: if (minw != null && maxw != null) { rrenkert@5030: Label key = new Label(MSG.wq_value_q()); rrenkert@5030: Label value = new Label(nf.format(minw) + rrenkert@5030: " - " + nf.format(maxw)); rrenkert@5030: key.setWidth(150); rrenkert@5030: line1.addMember(key); rrenkert@5030: line1.addMember(value); bjoern@4962: } bjoern@4962: rrenkert@5030: HLayout line2 = new HLayout(); bjoern@4962: Double minq = gauge.getMinQ(); bjoern@4962: Double maxq = gauge.getMaxQ(); bjoern@4962: if (minq != null && maxq != null) { rrenkert@5030: Label key = new Label(MSG.wq_value_w()); rrenkert@5030: Label value = new Label( nf.format(minq) + bjoern@4962: " - " + nf.format(maxq)); rrenkert@5030: key.setWidth(150); rrenkert@5030: line2.addMember(key); rrenkert@5030: line2.addMember(value); bjoern@4962: } bjoern@4962: rrenkert@5030: HLayout line3 = new HLayout(); bjoern@4962: Double aeo = gauge.getAeo(); bjoern@4962: if (aeo != null) { rrenkert@5030: Label key = new Label("AEO [kmĀ²]"); rrenkert@5030: Label value = new Label(nf.format(aeo)); rrenkert@5030: key.setWidth(150); rrenkert@5030: line3.addMember(key); rrenkert@5030: line3.addMember(value); bjoern@4962: } bjoern@4962: rrenkert@5030: HLayout line4 = new HLayout(); bjoern@4962: Double datum = gauge.getDatum(); bjoern@4962: if (datum != null) { rrenkert@5030: Label key = new Label(MSG.gauge_zero() + " [" + bjoern@4962: gauge.getWstUnit() + "]"); rrenkert@5030: Label value = new Label(nf.format(datum)); rrenkert@5030: key.setWidth(150); rrenkert@5030: line4.addMember(key); rrenkert@5030: line4.addMember(value); bjoern@4962: } bjoern@4962: rrenkert@5030: HLayout line5 = new HLayout(); rrenkert@5030: line5.addMember(new GaugeMainValueAnchor(flys, gauge)); felix@4988: rrenkert@5030: grid.addMember(line1); rrenkert@5030: grid.addMember(line2); rrenkert@5030: grid.addMember(line3); rrenkert@5030: grid.addMember(line4); rrenkert@5030: grid.addMember(line5); bjoern@4962: addMember(grid); felix@4981: } felix@4981: felix@4981: felix@4981: /** felix@4981: * Clickable anchor that asks application to show window with felix@4981: * main values for gauge. felix@4981: */ felix@4981: class GaugeMainValueAnchor extends Anchor implements ClickHandler { felix@4981: felix@4981: private FLYS flys; felix@4981: private GaugeInfo gauge; felix@4981: felix@4981: public GaugeMainValueAnchor(FLYS flys, GaugeInfo gauge) { felix@4988: super(MSG.show_mainvalues()); felix@4981: this.flys = flys; felix@4981: this.gauge = gauge; felix@4988: this.setHeight("5"); felix@4981: felix@4981: addClickHandler(this); felix@4981: } felix@4981: felix@4981: @Override felix@4981: public void onClick(ClickEvent ev) { felix@4981: GWT.log("GaugeMainValueAnchor - onClick " + gauge.getRiverName() + felix@4981: " " + gauge.getOfficialNumber()); felix@4981: flys.newGaugeMainValueTable(gauge); felix@4981: } bjoern@4962: } bjoern@4962: }