Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterList.java @ 57:246af33f621c
Adjusted the look of the 'next' button in the parameter panel.
flys-client/trunk@1516 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 18 Mar 2011 11:32:05 +0000 |
parents | 0db278371632 |
children | f793d35bfb08 |
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.Canvas; 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.DataList; public class ParameterList extends VLayout { protected List<DataList> old; protected DataList current; protected UIProvider uiProvider; protected VLayout oldItems; protected VLayout currentItems; public ParameterList() { old = new ArrayList<DataList>(); oldItems = new VLayout(); currentItems = new VLayout(); init(); } protected void init() { setWidth(300); oldItems.setHeight(20); oldItems.setMembersMargin(10); currentItems.setHeight("*"); currentItems.setAlign(VerticalAlignment.TOP); setMembersMargin(20); addMember(oldItems); addMember(currentItems); } protected void clearOldData() { old.clear(); } public void addOldData(DataList old) { if (old != null) { this.old.add(old); } refreshOld(); } public void addOldDatas(DataList[] old) { if (old != null && old.length > 0) { for (DataList o: old) { if (!exists(o)) { GWT.log("Data '" + o.getLabel() + "' is new."); addOldData(o); } } return; } addOldData(null); } public boolean exists(DataList data) { String stateName = data.getState(); for (DataList o: old) { if (stateName.equals(o.getState())) { return true; } } return false; } public void setCurrentData(DataList 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 (DataList dataList: old) { HLayout h = new HLayout(); h.setAlign(VerticalAlignment.TOP); h.setHeight(20); String provider = dataList.getUIProvider(); UIProvider uiprovider = UIProviderFactory.getProvider(provider); oldItems.addMember(uiprovider.createOld(dataList)); } 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()); if (current != null && uiProvider != null) { Canvas c = uiProvider.create(current); c.setLayoutAlign(VerticalAlignment.TOP); currentItems.addMember(c); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :