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%2Fmodel%2FWkspGroupElem.java;h=66434d71a81a378b2c8236dfeffbe5442917d049;hb=32337de479444ceb5050207fdd2e7e5e6340c42a;hp=95d28ebb351fd27cf3d8a1ba7cdd4c88e3432f21;hpb=706b98df2c68382d7bd501fa05cb128f329087ee;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WkspGroupElem.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WkspGroupElem.java index 95d28ebb3..66434d71a 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WkspGroupElem.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WkspGroupElem.java @@ -14,8 +14,6 @@ public class WkspGroupElem extends DistParentElem { private Session defaultSession; - /** - */ public WkspGroupElem(RepoElem repoElem, String prefix) { super(prefix, repoElem.inHome(), repoElem.isReadOnly()); setParent(repoElem); @@ -25,7 +23,8 @@ public class WkspGroupElem extends DistParentElem { String[] wkpNames = defaultSession.getWorkspace() .getAccessibleWorkspaceNames(); for (String wkpName : wkpNames) { - if (wkpName.startsWith(prefix) + if (prefix.equals(getPrefix(wkpName)) + // if (wkpName.startsWith(prefix) && repoElem.isWorkspaceVisible(wkpName)) addChild(new WorkspaceElem(WkspGroupElem.this, repoElem, wkpName)); @@ -35,71 +34,20 @@ public class WkspGroupElem extends DistParentElem { } } - // - // public Object[] getChildren() { - // Session session = null; - // try { - // Repository repository = repoElem.getRepository(); - // session = repository.login(repoElem.getCredentials()); - // - // String[] workspaceNames = session.getWorkspace() - // .getAccessibleWorkspaceNames(); - // List distributionElems = new ArrayList(); - // buildWksp: for (String workspaceName : workspaceNames) { - // - // // Filter non-public workspaces for user anonymous. - // if (repoElem.getRepoNode() == null) { - // Session tmpSession = null; - // try { - // tmpSession = repository.login(workspaceName); - // Boolean res = true; - // try { - // tmpSession.checkPermission("/", "read"); - // } catch (AccessControlException e) { - // res = false; - // } - // if (!res) - // continue buildWksp; - // } catch (RepositoryException e) { - // throw new SlcException( - // "Cannot list workspaces for anonymous user", e); - // } finally { - // JcrUtils.logoutQuietly(tmpSession); - // } - // } - // - // // filter technical workspaces - // if (workspaceName.startsWith(name) - // && workspaceName.substring(0, - // workspaceName.lastIndexOf(VERSION_SEP)).equals( - // name)) { - // distributionElems.add(new WorkspaceElem(repoElem, - // workspaceName)); - // } - // } - // return distributionElems.toArray(); - // } catch (RepositoryException e) { - // throw new SlcException("Cannot list workspaces for prefix " + name, - // e); - // } finally { - // JcrUtils.logoutQuietly(session); - // } - // } - - // public String getLabel() { - // return name; - // } - // - // public String toString() { - // return getLabel(); - // } + // FIXME - we rely on a "hard coded" convention : Workspace name must have + // this format: name-major.minor + // We might expose this method as static public, to be used among others by + // the RepoElem parent objects when building its children + private String getPrefix(String workspaceName) { + if (workspaceName.lastIndexOf(VERSION_SEP) > 0) + return workspaceName.substring(0, + workspaceName.lastIndexOf(VERSION_SEP)); + else + return workspaceName; + } public void dispose() { JcrUtils.logoutQuietly(defaultSession); super.dispose(); } - - // public RepoElem getRepoElem() { - // return repoElem; - // } } \ No newline at end of file