ingo@6: package de.intevation.flys.client.client.ui; ingo@6: ingo@6: import com.smartgwt.client.widgets.Canvas; ingo@6: ingo@100: import java.util.ArrayList; ingo@100: import java.util.List; ingo@6: ingo@6: ingo@6: /** ingo@6: * @author Ingo Weinzierl ingo@6: */ ingo@6: public class FLYSWorkspace extends Canvas { ingo@6: ingo@279: /** The maximal number of windows that fit into the browser view when an ingo@279: * offset is used to move windows initially.*/ ingo@279: public static int MAX_WINDOWS = 10; ingo@279: ingo@279: /** The number of pixels used to move windows.*/ ingo@279: public static int WINDOW_OFFSET = 20; ingo@279: ingo@279: ingo@6: /** A map that contains the open CollectionViews. */ ingo@100: protected List views; ingo@6: ingo@6: ingo@6: /** ingo@6: * The default constructor creates an empty FLYSWorkspace with no ingo@6: * CollectionViews opened. ingo@6: */ ingo@6: public FLYSWorkspace() { ingo@100: views = new ArrayList(); ingo@6: } ingo@6: ingo@6: ingo@6: /** ingo@6: * This method adds a new CollectionView to this workspace and stores a ingo@6: * reference in {@link views}. ingo@6: * ingo@6: * @param collectionView A new CollectionView. ingo@6: */ ingo@100: public void addView(CollectionView collectionView) { ingo@279: int num = views != null ? views.size() : 0; ingo@279: int factor = num % MAX_WINDOWS; ingo@279: ingo@279: collectionView.moveTo(factor * WINDOW_OFFSET, factor * WINDOW_OFFSET); ingo@279: ingo@100: views.add(collectionView); ingo@6: addChild(collectionView); ingo@6: } ingo@6: } ingo@6: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :