]> git.argeo.org Git - lgpl/argeo-commons.git/blob - AbstractJcrBrowser.java
7bbbacdf2d9e8e2e5233f5f42ddc0790dbbd6199
[lgpl/argeo-commons.git] / AbstractJcrBrowser.java
1 package org.argeo.eclipse.ui.jcr.views;
2
3 import javax.jcr.Node;
4
5 import org.eclipse.jface.viewers.IStructuredSelection;
6 import org.eclipse.jface.viewers.ITreeContentProvider;
7 import org.eclipse.jface.viewers.StructuredSelection;
8 import org.eclipse.jface.viewers.TreeViewer;
9 import org.eclipse.swt.widgets.Composite;
10 import org.eclipse.ui.part.ViewPart;
11
12 public abstract class AbstractJcrBrowser extends ViewPart {
13
14 @Override
15 public abstract void createPartControl(Composite parent);
16
17 /**
18 * To be overridden to adapt size of form and result frames.
19 */
20 abstract protected int[] getWeights();
21
22 /**
23 * To be overridden to provide an adapted size nodeViewer
24 */
25 abstract protected TreeViewer createNodeViewer(Composite parent,
26 ITreeContentProvider nodeContentProvider);
27
28 /**
29 * To be overridden to retrieve the current nodeViewer
30 */
31 abstract protected TreeViewer getNodeViewer();
32
33 /*
34 * Enables the refresh of the tree.
35 */
36 @Override
37 public void setFocus() {
38 getNodeViewer().getTree().setFocus();
39 }
40
41 public void refresh(Object obj) {
42 // getNodeViewer().update(obj, null);
43 getNodeViewer().refresh(obj);
44 // getNodeViewer().expandToLevel(obj, 1);
45 }
46
47 public void nodeAdded(Node parentNode, Node newNode) {
48 getNodeViewer().refresh(parentNode);
49 getNodeViewer().expandToLevel(newNode, 0);
50 }
51
52 public void nodeRemoved(Node parentNode) {
53 IStructuredSelection newSel = new StructuredSelection(parentNode);
54 getNodeViewer().setSelection(newSel, true);
55 // Force refresh
56 IStructuredSelection tmpSel = (IStructuredSelection) getNodeViewer()
57 .getSelection();
58 getNodeViewer().refresh(tmpSel.getFirstElement());
59 }
60 }