X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fviews%2FDistributionsView.java;h=633f5df390462e73691923846690ec531d6e00b8;hb=3c8e43e258464f8efe44c80f2a4f5c3080f28d4f;hp=c401bb1113562217c9fd207affa22ca8e01cb2f2;hpb=30337022a8b1ffe10eb645791d767d41c3db4e40;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java index c401bb111..633f5df39 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java @@ -20,9 +20,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.jcr.Credentials; +import javax.jcr.GuestCredentials; import javax.jcr.Repository; import javax.jcr.RepositoryException; +import javax.jcr.RepositoryFactory; import javax.jcr.Session; +import javax.jcr.SimpleCredentials; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -67,6 +71,7 @@ public class DistributionsView extends ViewPart implements SlcNames { public final static String ID = DistPlugin.ID + ".distributionsView"; private Repository repository; + private RepositoryFactory repositoryFactory; private TreeViewer viewer; @@ -107,7 +112,31 @@ public class DistributionsView extends ViewPart implements SlcNames { // Initializes repositories // TODO make it more generic, with remote repositories etc. - repositories.add(new RepositoryElem("java", repository)); + repositories.add(new RepositoryElem("java", repository, null)); + + // Remote + String uri = null; + Credentials credentials = null; + Repository remoteRepository = null; + + uri = "http://dev.argeo.org/org.argeo.jcr.webapp/pub/java"; + credentials = new GuestCredentials(); + remoteRepository = JcrUtils.getRepositoryByUri(repositoryFactory, uri); + repositories.add(new RepositoryElem("anonymous@dev.argeo.org//java", + remoteRepository, credentials)); + + uri = "http://localhost:7070/org.argeo.jcr.webapp/pub/java"; + credentials = new GuestCredentials(); + remoteRepository = JcrUtils.getRepositoryByUri(repositoryFactory, uri); + repositories.add(new RepositoryElem("anonymous@localhost//java", + remoteRepository, credentials)); + + uri = "http://localhost:7070/org.argeo.jcr.webapp/remoting/java"; + credentials = new SimpleCredentials(System.getProperty("user.name"), + "".toCharArray()); + remoteRepository = JcrUtils.getRepositoryByUri(repositoryFactory, uri); + repositories.add(new RepositoryElem("@localhost//java", + remoteRepository, credentials)); viewer.setInput(getSite()); @@ -129,6 +158,10 @@ public class DistributionsView extends ViewPart implements SlcNames { this.repository = repository; } + public void setRepositoryFactory(RepositoryFactory repositoryFactory) { + this.repositoryFactory = repositoryFactory; + } + /** Programatically configure the context menu */ protected void contextMenuAboutToShow(IMenuManager menuManager) { IWorkbenchWindow window = DistPlugin.getDefault().getWorkbench() @@ -200,19 +233,21 @@ public class DistributionsView extends ViewPart implements SlcNames { } + /** Wraps a repository **/ private static class RepositoryElem extends TreeParent { // private final Repository repository; private Session defaultSession; - public RepositoryElem(String name, Repository repository) { + public RepositoryElem(String name, Repository repository, + Credentials credentials) { super(name); - // this.repository = repository; try { - defaultSession = repository.login(); + defaultSession = repository.login(credentials); String[] workspaceNames = defaultSession.getWorkspace() .getAccessibleWorkspaceNames(); for (String workspace : workspaceNames) - addChild(new DistributionElem(repository, workspace)); + addChild(new DistributionElem(repository, workspace, + credentials)); } catch (RepositoryException e) { ErrorFeedback.show("Cannot log to repository", e); } @@ -230,11 +265,14 @@ public class DistributionsView extends ViewPart implements SlcNames { private static class DistributionElem extends TreeParent { private final String workspaceName; private final Repository repository; + private final Credentials credentials; - public DistributionElem(Repository repository, String workspaceName) { + public DistributionElem(Repository repository, String workspaceName, + Credentials credentials) { super(workspaceName); this.workspaceName = workspaceName; this.repository = repository; + this.credentials = credentials; } public String getWorkspaceName() { @@ -244,6 +282,10 @@ public class DistributionsView extends ViewPart implements SlcNames { public Repository getRepository() { return repository; } + + public Credentials getCredentials() { + return credentials; + } } @Override @@ -263,8 +305,10 @@ public class DistributionsView extends ViewPart implements SlcNames { if (obj instanceof DistributionElem) { DistributionElem distributionElem = (DistributionElem) obj; DistributionEditorInput dei = new DistributionEditorInput( + distributionElem.getName(), distributionElem.getRepository(), - distributionElem.getWorkspaceName()); + distributionElem.getWorkspaceName(), + distributionElem.getCredentials()); try { DistPlugin.getDefault().getWorkbench() .getActiveWorkbenchWindow().getActivePage()