- public boolean hasChildren(Object element) {
- try {
- if (element instanceof Node) {
- return ((Node) element).hasNodes();
- } else if (element instanceof RepositoryNode) {
- return ((RepositoryNode) element).hasChildren();
- } else if (element instanceof WorkspaceNode) {
- return ((WorkspaceNode) element).getSession() != null;
+ tmpNodeViewer.addDoubleClickListener(new IDoubleClickListener() {
+ public void doubleClick(DoubleClickEvent event) {
+ if (event.getSelection() == null
+ || event.getSelection().isEmpty())
+ return;
+ Object obj = ((IStructuredSelection) event.getSelection())
+ .getFirstElement();
+ if (obj instanceof RepositoryNode) {
+ RepositoryNode rpNode = (RepositoryNode) obj;
+ rpNode.login();
+ tmpNodeViewer.refresh(obj);
+ } else if (obj instanceof WorkspaceNode) {
+ ((WorkspaceNode) obj).login();
+ tmpNodeViewer.refresh(obj);
+ } else if (obj instanceof Node) {
+ Node node = (Node) obj;
+
+ // double clic on a file node triggers its opening
+ try {
+ if (node.isNodeType(NodeType.NT_FILE)) {
+ String name = node.getName();
+ String id = node.getIdentifier();
+ // For the file provider to be able to browse the
+ // various
+ // repository.
+ // TODO : enhanced that.
+ getJcrFileProvider().setRootNodes(
+ (Object[]) nodeContentProvider
+ .getElements(null));
+
+ getFileHandler().openFile(name, id);
+ }
+ } catch (RepositoryException re) {
+ throw new ArgeoException(
+ "Repository error while getting Node file info",
+ re);
+ }