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@3549: * "Workspace" canvas showing the CollectionViews (subwindows). 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(); christian@3522: christian@3522: setWidth("100%"); christian@3522: setHeight("100%"); 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) { christian@3522: collectionView.moveTo(0, 0); christian@3522: collectionView.setMaximized(true); 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@600: ingo@600: ingo@600: /** ingo@600: * Removes a project from workspace (view) and clears its reference from ingo@600: * hash map. ingo@600: * ingo@600: * @param uuid The project's uuid. ingo@600: */ ingo@600: public void destroyProject(String uuid) { ingo@600: CollectionView project = views.get(uuid); ingo@600: ingo@600: if (project != null) { ingo@600: removeProject(uuid); ingo@600: project.destroy(); ingo@600: } ingo@600: } raimund@895: raimund@895: raimund@895: public void updateTitle(String uuid, String title) { raimund@895: CollectionView view = views.get(uuid); raimund@895: view.setTitle(title); raimund@895: } raimund@896: raimund@896: raimund@896: public boolean hasView(String uuid) { raimund@896: if(views.get(uuid) != null) { raimund@896: return true; raimund@896: } raimund@896: return false; raimund@896: } ingo@6: } ingo@6: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :