]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/VersionHistoryContentProvider.java
0ff7dce08ffd376d9bea29a7e7eb83811669ef59
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui / src / org / argeo / eclipse / ui / jcr / VersionHistoryContentProvider.java
1 package org.argeo.eclipse.ui.jcr;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 import javax.jcr.RepositoryException;
8 import javax.jcr.version.Version;
9 import javax.jcr.version.VersionHistory;
10 import javax.jcr.version.VersionIterator;
11
12 import org.eclipse.jface.viewers.IStructuredContentProvider;
13 import org.eclipse.jface.viewers.Viewer;
14
15 /** Content provider based on a {@link VersionHistory}. */
16 public class VersionHistoryContentProvider implements IStructuredContentProvider {
17 private static final long serialVersionUID = -4921107883428887012L;
18
19 @Override
20 public void dispose() {
21 }
22
23 @Override
24 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
25 }
26
27 @Override
28 public Object[] getElements(Object inputElement) {
29 try {
30 VersionHistory versionHistory = (VersionHistory) inputElement;
31 List<Version> lst = new ArrayList<>();
32 VersionIterator vit = versionHistory.getAllLinearVersions();
33 while (vit.hasNext())
34 lst.add(vit.nextVersion());
35 Collections.reverse(lst);
36 return lst.toArray();
37 } catch (RepositoryException e) {
38 throw new IllegalStateException("Cannot list versions", e);
39 }
40 }
41
42 }