1 package org
.argeo
.jcr
.ui
.explorer
.model
;
5 import javax
.jcr
.Repository
;
6 import javax
.jcr
.RepositoryFactory
;
8 import org
.argeo
.eclipse
.ui
.TreeParent
;
9 import org
.argeo
.jcr
.RepositoryRegister
;
12 * UI Tree component. Implements the Argeo abstraction of a
13 * {@link RepositoryFactory} that enable a user to "mount" various repositories
14 * in a single Tree like View. It is usually meant to be at the root of the UI
15 * Tree and thus {@link getParent()} method will return null.
17 * The {@link RepositoryFactory} is injected at instantiation time and must be
18 * use get or register new {@link Repository} objects upon which a reference is
22 public class RepositoriesNode
extends TreeParent
{
23 private final RepositoryRegister repositoryRegister
;
25 public RepositoriesNode(String name
, RepositoryRegister repositoryRegister
,
28 this.repositoryRegister
= repositoryRegister
;
32 * Override normal behaviour to initialize the various repositories only at
36 public synchronized Object
[] getChildren() {
38 return super.getChildren();
40 // initialize current object
41 Map
<String
, Repository
> refRepos
= repositoryRegister
43 for (String name
: refRepos
.keySet()) {
44 super.addChild(new RepositoryNode(name
, refRepos
.get(name
),
47 return super.getChildren();
51 public void registerNewRepository(String alias
, Repository repository
) {
52 // TODO: implement this
53 // Create a new RepositoryNode Object
55 // super.addChild(new RepositoriesNode(...));
58 /** Returns the {@link RepositoryRegister} wrapped by thgis object. */
59 public RepositoryRegister
getRepositoryRegister() {
60 return repositoryRegister
;