import javax.jcr.nodetype.NodeType;
import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
+import javax.jcr.query.Row;
import javax.jcr.security.Privilege;
import javax.jcr.version.Version;
import javax.jcr.version.VersionHistory;
throw new JcrException("Cannot retrieve property " + property + " from " + node, e);
}
}
-
+
public static <T> T getAs(Node node, String property, Class<T> clss) {
- if(String.class.isAssignableFrom(clss)) {
- return (T)get(node,property);
- } else if(Long.class.isAssignableFrom(clss)) {
- return (T)get(node,property);
- }else {
- throw new IllegalArgumentException("Unsupported format "+clss);
+ if (String.class.isAssignableFrom(clss)) {
+ return (T) get(node, property);
+ } else if (Long.class.isAssignableFrom(clss)) {
+ return (T) get(node, property);
+ } else {
+ throw new IllegalArgumentException("Unsupported format " + clss);
}
}
return getNode(queryManager, sql, args);
}
+ public static Node getRowNode(Row row, String selectorName) {
+ try {
+ return row.getNode(selectorName);
+ } catch (RepositoryException e) {
+ throw new JcrException("Cannot get node " + selectorName + " from row", e);
+ }
+ }
+
/** Singleton. */
private Jcr() {
--- /dev/null
+package org.argeo.eclipse.ui.jcr;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.query.Row;
+
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+
+/** Simplifies writing JCR-based column label provider. */
+public class RowColumnLabelProvider extends ColumnLabelProvider {
+ private static final long serialVersionUID = -6586692836928505358L;
+
+ protected String getRowText(Row row) throws RepositoryException {
+ return super.getText(row);
+ }
+
+ protected String getRowToolTipText(Row row) throws RepositoryException {
+ return super.getToolTipText(row);
+ }
+
+ protected Image getRowImage(Row row) throws RepositoryException {
+ return super.getImage(row);
+ }
+
+ protected Font getRowFont(Row row) throws RepositoryException {
+ return super.getFont(row);
+ }
+
+ public Color getRowBackground(Row row) throws RepositoryException {
+ return super.getBackground(row);
+ }
+
+ public Color getRowForeground(Row row) throws RepositoryException {
+ return super.getForeground(row);
+ }
+
+ @Override
+ public String getText(Object element) {
+ try {
+ if (element instanceof Row)
+ return getRowText((Row) element);
+ else
+ throw new IllegalArgumentException("Unsupported element type " + element.getClass());
+ } catch (RepositoryException e) {
+ throw new IllegalStateException("Repository exception when accessing " + element, e);
+ }
+ }
+
+ @Override
+ public Image getImage(Object element) {
+ try {
+ if (element instanceof Row)
+ return getRowImage((Row) element);
+ else
+ throw new IllegalArgumentException("Unsupported element type " + element.getClass());
+ } catch (RepositoryException e) {
+ throw new IllegalStateException("Repository exception when accessing " + element, e);
+ }
+ }
+
+ @Override
+ public String getToolTipText(Object element) {
+ try {
+ if (element instanceof Row)
+ return getRowToolTipText((Row) element);
+ else
+ throw new IllegalArgumentException("Unsupported element type " + element.getClass());
+ } catch (RepositoryException e) {
+ throw new IllegalStateException("Repository exception when accessing " + element, e);
+ }
+ }
+
+ @Override
+ public Font getFont(Object element) {
+ try {
+ if (element instanceof Row)
+ return getRowFont((Row) element);
+ else
+ throw new IllegalArgumentException("Unsupported element type " + element.getClass());
+ } catch (RepositoryException e) {
+ throw new IllegalStateException("Repository exception when accessing " + element, e);
+ }
+ }
+
+ @Override
+ public Color getBackground(Object element) {
+ try {
+ if (element instanceof Row)
+ return getRowBackground((Row) element);
+ else
+ throw new IllegalArgumentException("Unsupported element type " + element.getClass());
+ } catch (RepositoryException e) {
+ throw new IllegalStateException("Repository exception when accessing " + element, e);
+ }
+ }
+
+ @Override
+ public Color getForeground(Object element) {
+ try {
+ if (element instanceof Row)
+ return getRowForeground((Row) element);
+ else
+ throw new IllegalArgumentException("Unsupported element type " + element.getClass());
+ } catch (RepositoryException e) {
+ throw new IllegalStateException("Repository exception when accessing " + element, e);
+ }
+ }
+
+}