Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterList.java @ 50:827eb4e06ebf
Added space between old params panel and new params panel.
flys-client/trunk@1499 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 17 Mar 2011 11:49:03 +0000 |
parents | 1458bc0a20e2 |
children | a2923d63f530 |
line wrap: on
line source
package de.intevation.flys.client.client.ui; import java.util.ArrayList; import java.util.List; import com.google.gwt.core.client.GWT; import com.smartgwt.client.types.VerticalAlignment; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import de.intevation.flys.client.shared.model.Data; import de.intevation.flys.client.shared.model.DataItem; public class ParameterList extends VLayout { protected List<Data> old; protected Data current; protected UIProvider uiProvider; protected VLayout oldItems; protected VLayout currentItems; public ParameterList() { old = new ArrayList<Data>(); oldItems = new VLayout(); currentItems = new VLayout(); init(); } protected void init() { oldItems.setHeight(20); currentItems.setHeight("*"); currentItems.setAlign(VerticalAlignment.TOP); setMembersMargin(20); addMember(oldItems); addMember(currentItems); } protected void clearOldData() { old.clear(); } public void addOldData(Data old) { if (old != null) { this.old.add(old); } refreshOld(); } public void addOldDatas(Data[] old) { if (old != null && old.length > 0) { for (Data o: old) { if (!exists(o)) { GWT.log("Data '" + o.getLabel() + "' is new."); addOldData(o); } } return; } addOldData(null); } public boolean exists(Data data) { String label = data.getLabel(); for (Data o: old) { if (label.equals(o.getLabel())) { return true; } } return false; } public void setCurrentData(Data current, UIProvider uiProvider) { this.current = current; this.uiProvider = uiProvider; refreshCurrent(); } public void refreshOld() { // XXX maybe we should not remove all items but just add the newest item // to the list. oldItems.removeMembers(oldItems.getMembers()); for (Data data: old) { HLayout h = new HLayout(); h.setAlign(VerticalAlignment.TOP); h.setHeight(20); DataItem[] items = data.getItems(); Label label = new Label(data.getLabel()); Label value = new Label(items[0].getLabel()); h.addMember(label); h.addMember(value); oldItems.addMember(h); } int minHeight = oldItems.getMinHeight(); if (minHeight <= 20) { oldItems.setHeight(20); } else { oldItems.setHeight(minHeight); } } /** * This method refreshes the part displaying the data of the current state. * The UI is created using the UIProvider stored in the Data object. */ public void refreshCurrent() { currentItems.removeMembers(currentItems.getMembers()); currentItems.addMember(uiProvider.create(current)); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :