1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.argeo.cms.ui.jcr;
17
18 import javax.jcr.Node;
19
20 import org.argeo.cms.ui.jcr.model.RepositoryElem;
21 import org.argeo.cms.ui.jcr.model.SingleJcrNodeElem;
22 import org.argeo.cms.ui.jcr.model.WorkspaceElem;
23 import org.eclipse.jface.viewers.DoubleClickEvent;
24 import org.eclipse.jface.viewers.IDoubleClickListener;
25 import org.eclipse.jface.viewers.IStructuredSelection;
26 import org.eclipse.jface.viewers.TreeViewer;
27
28
29 public class JcrDClickListener implements IDoubleClickListener {
30
31
32
33 private TreeViewer nodeViewer;
34
35
36
37
38 public JcrDClickListener(TreeViewer nodeViewer) {
39 this.nodeViewer = nodeViewer;
40
41
42
43
44 }
45
46 public void doubleClick(DoubleClickEvent event) {
47 if (event.getSelection() == null || event.getSelection().isEmpty())
48 return;
49 Object obj = ((IStructuredSelection) event.getSelection()).getFirstElement();
50 if (obj instanceof RepositoryElem) {
51 RepositoryElem rpNode = (RepositoryElem) obj;
52 if (rpNode.isConnected()) {
53 rpNode.logout();
54 } else {
55 rpNode.login();
56 }
57 nodeViewer.refresh(obj);
58 } else if (obj instanceof WorkspaceElem) {
59 WorkspaceElem wn = (WorkspaceElem) obj;
60 if (wn.isConnected())
61 wn.logout();
62 else
63 wn.login();
64 nodeViewer.refresh(obj);
65 } else if (obj instanceof SingleJcrNodeElem) {
66 SingleJcrNodeElem sjn = (SingleJcrNodeElem) obj;
67 Node node = sjn.getNode();
68 openNode(node);
69 }
70 }
71
72 protected void openNode(Node node) {
73
74 }
75 }