ingo@6: package de.intevation.flys.client.client.ui; ingo@6: ingo@6: import com.smartgwt.client.widgets.Canvas; ingo@6: ingo@557: import java.util.HashMap; ingo@557: import java.util.Map; 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@557: protected Map 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@557: views = new HashMap(); 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@557: public void addView(String uuid, 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@557: views.put(uuid, collectionView); ingo@6: addChild(collectionView); ingo@6: } ingo@557: ingo@557: ingo@557: public void removeProject(String uuid) { ingo@557: views.remove(uuid); ingo@557: } ingo@557: ingo@557: ingo@557: public void bringUp(String uuid) { ingo@557: CollectionView view = views.get(uuid); ingo@557: ingo@557: view.show(); ingo@591: view.restore(); ingo@557: } ingo@6: } ingo@6: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :