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 String name
;
24 private final RepositoryRegister repositoryRegister
;
26 public RepositoriesNode(String name
, RepositoryRegister repositoryRegister
,
30 this.repositoryRegister
= repositoryRegister
;
34 * Override normal behaviour to initialize the various repositories only at
38 public synchronized Object
[] getChildren() {
40 return super.getChildren();
42 // initialize current object
43 Map
<String
, Repository
> refRepos
= repositoryRegister
45 for (String name
: refRepos
.keySet()) {
46 super.addChild(new RepositoryNode(name
, refRepos
.get(name
),
49 return super.getChildren();
53 public void registerNewRepository(String alias
, Repository repository
) {
54 // TODO: implement this
55 // Create a new RepositoryNode Object
57 // super.addChild(new RepositoriesNode(...));
60 /** Returns the {@link RepositoryRegister} wrapped by thgis object. */
61 public RepositoryRegister
getRepositoryRegister() {
62 return repositoryRegister
;