Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/stationinfo/InfoPanel.java @ 5547:38713f32a785
Add Floodmarks and all specified WMS services to datacage
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Thu, 04 Apr 2013 10:40:01 +0200 |
parents | e70ff0a600a3 |
children |
line wrap: on
line source
package de.intevation.flys.client.client.ui.stationinfo; import com.google.gwt.core.client.GWT; import com.smartgwt.client.types.Overflow; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.layout.SectionStackSection; import com.smartgwt.client.widgets.layout.VLayout; import de.intevation.flys.client.client.FLYSConstants; import de.intevation.flys.client.client.services.RiverInfoService; import de.intevation.flys.client.client.services.RiverInfoServiceAsync; import de.intevation.flys.client.client.ui.RiverInfoPanel; import de.intevation.flys.client.shared.model.DataList; import de.intevation.flys.client.shared.model.RiverInfo; /** * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> */ public abstract class InfoPanel extends VLayout { /** SectionStackSection where this InfoPanel belongs in*/ protected SectionStackSection section; /** Name of the river */ protected String river; /** The message class that provides i18n strings.*/ protected FLYSConstants MSG = GWT.create(FLYSConstants.class); protected RiverInfoServiceAsync riverInfoService = GWT.create(RiverInfoService.class); /** Panel to show the info about the river */ protected RiverInfoPanel riverinfopanel; protected InfoListGrid listgrid; public final static String SECTION_ID = "InfoPanelSection"; public InfoPanel(InfoListGrid listgrid) { SectionStackSection section = new SectionStackSection(); section.setExpanded(false); section.setTitle(getSectionTitle()); section.setName(SECTION_ID); section.setID(SECTION_ID); setOverflow(Overflow.HIDDEN); setStyleName("infopanel"); section.setHidden(true); section.setItems(this); this.section = section; this.listgrid = listgrid; this.addMember(listgrid); } /** * Sets and loads the river data if river is not the current set river. */ public void setRiver(String river) { if (!river.equals(this.river)) { this.river = river; this.refresh(); } } /** * Sets the data and closes not corresponding folds in the gauge tree. */ public void setData(DataList[] data) { this.listgrid.setData(data); } protected void render(RiverInfo riverinfo) { if (this.riverinfopanel == null) { this.riverinfopanel = new RiverInfoPanel(riverinfo); this.addMember(this.riverinfopanel, 0); } else { riverinfopanel.setRiverInfo(riverinfo); } this.listgrid.setRiverInfo(riverinfo); } /** * Hide the section stack section. */ @Override public void hide() { GWT.log("InfoPanel - hide"); this.section.setHidden(true); } /** * Show the section stack section. */ @Override public void show() { GWT.log("InfoPanel - show"); this.section.setHidden(false); } @Override public void addMember(Canvas component) { super.addMember(component); expand(); } @Override public void removeMembers(Canvas[] components) { super.removeMembers(components); contract(); } public SectionStackSection getSection() { return this.section; } protected void removeAllMembers() { removeMembers(getMembers()); } /** * Expands the gauge section. */ public void expand() { section.setExpanded(true); } /** * Contracts/shrinks the expanded gauge section. */ public void contract() { section.setExpanded(false); } protected abstract void refresh(); protected abstract String getSectionTitle(); }