X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fplugins%2Forg.argeo.jcr.ui.explorer%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Fmodel%2FRepositoryNode.java;h=9d54647d7e77a59dc1d440b0657f6d1132c87189;hb=2c4852dcd20d4cde88776c527ae935f242ae1e77;hp=97759a651d06e6a8b0a65f528826dba85ee7258c;hpb=c0b7b3f9d1781d074ab35d24017042fa9415e1e4;p=lgpl%2Fargeo-commons.git diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryNode.java index 97759a651..9d54647d7 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryNode.java @@ -1,3 +1,18 @@ +/* + * Copyright (C) 2007-2012 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.argeo.jcr.ui.explorer.model; import javax.jcr.Repository; @@ -6,8 +21,6 @@ import javax.jcr.Session; import org.argeo.ArgeoException; import org.argeo.eclipse.ui.TreeParent; -import org.argeo.eclipse.ui.jcr.JcrUiPlugin; -import org.eclipse.swt.graphics.Image; /** * UI Tree component. Wraps a JCR {@link Repository}. It also keeps a reference @@ -19,11 +32,6 @@ public class RepositoryNode extends TreeParent implements UiNode { private String alias; private final Repository repository; private Session defaultSession = null; - public final static Image REPOSITORY_DISCONNECTED = JcrUiPlugin - .getImageDescriptor("icons/repository_disconnected.gif") - .createImage(); - public final static Image REPOSITORY_CONNECTED = JcrUiPlugin - .getImageDescriptor("icons/repository_connected.gif").createImage(); /** Create a new repository with alias = name */ public RepositoryNode(String alias, Repository repository, TreeParent parent) { @@ -41,10 +49,7 @@ public class RepositoryNode extends TreeParent implements UiNode { public void login() { try { - // SimpleCredentials sc = new SimpleCredentials("root", - // "demo".toCharArray()); - // defaultSession = repository.login(sc); - defaultSession = repository.login(); + defaultSession = repositoryLogin(null); String[] wkpNames = defaultSession.getWorkspace() .getAccessibleWorkspaceNames(); for (String wkpName : wkpNames) { @@ -58,8 +63,22 @@ public class RepositoryNode extends TreeParent implements UiNode { } } - public Session getDefaultSession() { - return defaultSession; + /** + * Actual call to the + * {@link Repository#login(javax.jcr.Credentials, String)} method. To be + * overridden. + */ + protected Session repositoryLogin(String workspaceName) + throws RepositoryException { + return repository.login(workspaceName); + } + + public String[] getAccessibleWorkspaceNames() { + try { + return defaultSession.getWorkspace().getAccessibleWorkspaceNames(); + } catch (RepositoryException e) { + throw new ArgeoException("Cannot retrieve workspace names", e); + } } /** returns the {@link Repository} referenced by the current UI Node */ @@ -71,4 +90,10 @@ public class RepositoryNode extends TreeParent implements UiNode { return alias; } + public Boolean isConnected() { + if (defaultSession != null && defaultSession.isLive()) + return true; + else + return false; + } }