]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ui/src/org/argeo/cms/ui/jcr/PropertiesContentProvider.java
Move MVC provider.
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / ui / jcr / PropertiesContentProvider.java
1 package org.argeo.cms.ui.jcr;
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.eclipse.ui.EclipseUiException;
12 import org.argeo.eclipse.ui.jcr.util.JcrItemsComparator;
13 import org.eclipse.jface.viewers.IStructuredContentProvider;
14 import org.eclipse.jface.viewers.Viewer;
15
16 /** Simple content provider that displays all properties of a given Node */
17 public class PropertiesContentProvider implements IStructuredContentProvider {
18 private static final long serialVersionUID = 5227554668841613078L;
19 private JcrItemsComparator itemComparator = new JcrItemsComparator();
20
21 public void dispose() {
22 }
23
24 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
25 }
26
27 public Object[] getElements(Object inputElement) {
28 try {
29 if (inputElement instanceof Node) {
30 Set<Property> props = new TreeSet<Property>(itemComparator);
31 PropertyIterator pit = ((Node) inputElement).getProperties();
32 while (pit.hasNext())
33 props.add(pit.nextProperty());
34 return props.toArray();
35 }
36 return new Object[] {};
37 } catch (RepositoryException e) {
38 throw new EclipseUiException("Cannot get element for "
39 + inputElement, e);
40 }
41 }
42 }