]> git.argeo.org Git - lgpl/argeo-commons.git/blob - eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/browser/PropertiesContentProvider.java
Slightly modify the class to enable easy introduction of sorter on column headers...
[lgpl/argeo-commons.git] / eclipse / runtime / org.argeo.eclipse.ui.jcr / src / main / java / org / argeo / eclipse / ui / jcr / browser / PropertiesContentProvider.java
1 package org.argeo.eclipse.ui.jcr.browser;
2
3 import java.util.Set;
4 import java.util.TreeSet;
5
6 import javax.jcr.Node;
7 import javax.jcr.Property;
8 import javax.jcr.PropertyIterator;
9 import javax.jcr.RepositoryException;
10
11 import org.argeo.ArgeoException;
12 import org.eclipse.jface.viewers.IStructuredContentProvider;
13 import org.eclipse.jface.viewers.Viewer;
14
15 public class PropertiesContentProvider implements IStructuredContentProvider {
16 private ItemComparator itemComparator = new ItemComparator();
17
18 public void dispose() {
19 }
20
21 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
22 }
23
24 public Object[] getElements(Object inputElement) {
25 try {
26 if (inputElement instanceof Node) {
27 Set<Property> props = new TreeSet<Property>(itemComparator);
28 PropertyIterator pit = ((Node) inputElement).getProperties();
29 while (pit.hasNext())
30 props.add(pit.nextProperty());
31 return props.toArray();
32 }
33 return new Object[] {};
34 } catch (RepositoryException e) {
35 throw new ArgeoException("Cannot get element for " + inputElement,
36 e);
37 }
38 }
39
40 }