]> git.argeo.org Git - lgpl/argeo-commons.git/blob - browser/PropertiesContentProvider.java
Prepare next development cycle
[lgpl/argeo-commons.git] / browser / PropertiesContentProvider.java
1 package org.argeo.jcr.ui.explorer.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.argeo.eclipse.ui.jcr.utils.JcrItemsComparator;
13 import org.eclipse.jface.viewers.IStructuredContentProvider;
14 import org.eclipse.jface.viewers.Viewer;
15
16 public class PropertiesContentProvider implements IStructuredContentProvider {
17 private JcrItemsComparator itemComparator = new JcrItemsComparator();
18
19 public void dispose() {
20 }
21
22 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
23 }
24
25 public Object[] getElements(Object inputElement) {
26 try {
27 if (inputElement instanceof Node) {
28 Set<Property> props = new TreeSet<Property>(itemComparator);
29 PropertyIterator pit = ((Node) inputElement).getProperties();
30 while (pit.hasNext())
31 props.add(pit.nextProperty());
32 return props.toArray();
33 }
34 return new Object[] {};
35 } catch (RepositoryException e) {
36 throw new ArgeoException("Cannot get element for " + inputElement,
37 e);
38 }
39 }
40
41 }