]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java
Add distribution browser editor page
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / views / DistributionsView.java
index 6ac3d79ad783f5c90c4dea819217122746eb87a9..c401bb1113562217c9fd207affa22ca8e01cb2f2 100644 (file)
@@ -15,7 +15,9 @@
  */
 package org.argeo.slc.client.ui.dist.views;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.jcr.Repository;
@@ -27,6 +29,7 @@ import org.apache.commons.logging.LogFactory;
 import org.argeo.eclipse.ui.AbstractTreeContentProvider;
 import org.argeo.eclipse.ui.ErrorFeedback;
 import org.argeo.eclipse.ui.TreeParent;
+import org.argeo.jcr.JcrUtils;
 import org.argeo.slc.client.ui.dist.DistPlugin;
 import org.argeo.slc.client.ui.dist.commands.CopyWorkspace;
 import org.argeo.slc.client.ui.dist.commands.CreateWorkspace;
@@ -67,6 +70,8 @@ public class DistributionsView extends ViewPart implements SlcNames {
 
        private TreeViewer viewer;
 
+       private List<RepositoryElem> repositories = new ArrayList<DistributionsView.RepositoryElem>();
+
        @Override
        public void createPartControl(Composite parent) {
                // Define the TableViewer
@@ -100,6 +105,10 @@ public class DistributionsView extends ViewPart implements SlcNames {
                viewer.getTree().setMenu(menu);
                getSite().registerContextMenu(menuManager, viewer);
 
+               // Initializes repositories
+               // TODO make it more generic, with remote repositories etc.
+               repositories.add(new RepositoryElem("java", repository));
+
                viewer.setInput(getSite());
 
        }
@@ -186,7 +195,7 @@ public class DistributionsView extends ViewPart implements SlcNames {
                        AbstractTreeContentProvider {
 
                public Object[] getElements(Object arg0) {
-                       return new Object[] { new RepositoryElem("java", repository) };
+                       return repositories.toArray();
                }
 
        }
@@ -213,8 +222,7 @@ public class DistributionsView extends ViewPart implements SlcNames {
                public synchronized void dispose() {
                        if (log.isTraceEnabled())
                                log.trace("Disposing RepositoryElement");
-                       if (defaultSession != null)
-                               defaultSession.logout();
+                       JcrUtils.logoutQuietly(defaultSession);
                        super.dispose();
                }
        }
@@ -240,6 +248,8 @@ public class DistributionsView extends ViewPart implements SlcNames {
 
        @Override
        public void dispose() {
+               for (RepositoryElem re : repositories)
+                       re.dispose();
                super.dispose();
        }