X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.slc.client.ui.dist%2Fsrc%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcontrollers%2FDistTreeContentProvider.java;h=e83ca22da22aad9be03294b6cdd159a58d78bfb7;hb=9e581505a7009f32cdc1eceb39dc89e77ce2a22f;hp=b2c816be171ffce155c10e36494bb93c363690b6;hpb=2db415932b071525adb52c6374e021174512a924;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java b/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java index b2c816be1..e83ca22da 100644 --- a/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java +++ b/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java @@ -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 repositories = new ArrayList(); + private static final long serialVersionUID = -7640840211717811421L; /* DEPENDENCY INJECTION */ private RepositoryFactory repositoryFactory; private Keyring keyring; + // Context + private Session nodeSession; + List repositories = new ArrayList(); + 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)) {