]> git.argeo.org Git - lgpl/argeo-commons.git/blob - eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/views/AbstractJcrBrowser.java
Add a logger
[lgpl/argeo-commons.git] / eclipse / runtime / org.argeo.eclipse.ui.jcr / src / main / java / org / argeo / eclipse / ui / jcr / views / 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 overidden to adapt size of form and result frames.
19 */
20 abstract protected int[] getWeights();
21
22 /**
23 * To be overidden to provide an adapted size nodeViewer
24 */
25 abstract protected TreeViewer createNodeViewer(Composite parent,
26 ITreeContentProvider nodeContentProvider);
27
28 /**
29 * To be overidden 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().refresh(obj);
43 }
44
45 public void nodeAdded(Node parentNode, Node newNode) {
46 getNodeViewer().refresh(parentNode);
47 getNodeViewer().expandToLevel(newNode, 0);
48 }
49
50 public void nodeRemoved(Node parentNode) {
51 IStructuredSelection newSel = new StructuredSelection(parentNode);
52 getNodeViewer().setSelection(newSel, true);
53 // Force refresh
54 IStructuredSelection tmpSel = (IStructuredSelection) getNodeViewer()
55 .getSelection();
56 getNodeViewer().refresh(tmpSel.getFirstElement());
57 }
58 }