]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java
Adapt after JCR APIs to node.api bundle move
[gpl/argeo-slc.git] / org.argeo.slc.client.ui.dist / src / org / argeo / slc / client / ui / dist / controllers / DistTreeContentProvider.java
index b2c816be171ffce155c10e36494bb93c363690b6..e83ca22da22aad9be03294b6cdd159a58d78bfb7 100644 (file)
@@ -13,11 +13,10 @@ import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
 import org.argeo.eclipse.ui.TreeParent;
-import org.argeo.jcr.ArgeoJcrUtils;
-import org.argeo.jcr.ArgeoNames;
-import org.argeo.jcr.ArgeoTypes;
 import org.argeo.jcr.JcrUtils;
-import org.argeo.jcr.UserJcrUtils;
+import org.argeo.node.ArgeoNames;
+import org.argeo.node.ArgeoTypes;
+import org.argeo.node.NodeUtils;
 import org.argeo.slc.SlcException;
 import org.argeo.slc.client.ui.dist.model.RepoElem;
 import org.argeo.slc.repo.RepoConstants;
@@ -30,13 +29,16 @@ import org.eclipse.jface.viewers.Viewer;
  * repository factory must be injected
  */
 public class DistTreeContentProvider implements ITreeContentProvider {
-       private Session nodeSession;
-       List<RepoElem> repositories = new ArrayList<RepoElem>();
+       private static final long serialVersionUID = -7640840211717811421L;
 
        /* DEPENDENCY INJECTION */
        private RepositoryFactory repositoryFactory;
        private Keyring keyring;
 
+       // Context
+       private Session nodeSession;
+       List<RepoElem> repositories = new ArrayList<RepoElem>();
+
        public Object[] getElements(Object input) {
                Repository nodeRepository = (Repository) input;
                try {
@@ -44,7 +46,7 @@ public class DistTreeContentProvider implements ITreeContentProvider {
                                dispose();
                        nodeSession = nodeRepository.login();
 
-                       String reposPath = UserJcrUtils.getUserHome(nodeSession).getPath()
+                       String reposPath = NodeUtils.getUserHome(nodeSession).getPath()
                                        + RepoConstants.REPOSITORIES_BASE_PATH;
 
                        if (!nodeSession.itemExists(reposPath))
@@ -102,19 +104,19 @@ public class DistTreeContentProvider implements ITreeContentProvider {
 
        private void initializeModel(Session nodeSession) {
                try {
-
-                       Node homeNode = UserJcrUtils.getUserHome(nodeSession);
+                       Node homeNode = NodeUtils.getUserHome(nodeSession);
                        if (homeNode == null) // anonymous
                                throw new SlcException("User must be authenticated.");
 
                        // make sure base directory is available
                        Node repos = JcrUtils.mkdirs(nodeSession, homeNode.getPath()
                                        + RepoConstants.REPOSITORIES_BASE_PATH);
-                       nodeSession.save();
+                       if (nodeSession.hasPendingChanges())
+                               nodeSession.save();
 
                        // register default local java repository
                        String alias = RepoConstants.DEFAULT_JAVA_REPOSITORY_ALIAS;
-                       Repository javaRepository = ArgeoJcrUtils.getRepositoryByAlias(
+                       Repository javaRepository = NodeUtils.getRepositoryByAlias(
                                        repositoryFactory, alias);
                        if (javaRepository != null) {
                                if (!repos.hasNode(alias)) {