X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.eclipse.ui%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Fjcr%2FNodeColumnLabelProvider.java;h=7e12becd82f09f70f1f37b0a16558b487ec79d01;hb=bc03da7975e7c493aa839aa328fb76e0db4f4581;hp=c4644789fd2023ef6c9ab0a58150206eb69f3195;hpb=27fd2bcb8c1bace521290179a2e3e28a73d5ccbb;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/NodeColumnLabelProvider.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/NodeColumnLabelProvider.java index c4644789f..7e12becd8 100644 --- a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/NodeColumnLabelProvider.java +++ b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/NodeColumnLabelProvider.java @@ -4,6 +4,8 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; 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. */ @@ -22,30 +24,99 @@ public class NodeColumnLabelProvider extends ColumnLabelProvider { return super.getImage(node); } + protected Font getNodeFont(Node node) throws RepositoryException { + return super.getFont(node); + } + + public Color getNodeBackground(Node node) throws RepositoryException { + return super.getBackground(node); + } + + public Color getNodeForeground(Node node) throws RepositoryException { + return super.getForeground(node); + } + @Override public String getText(Object element) { try { - return getNodeText((Node) element); + if (element instanceof Node) + return getNodeText((Node) element); + else if (element instanceof NodeElement) + return getNodeText(((NodeElement) element).getNode()); + else + throw new IllegalArgumentException("Unsupported element type " + element.getClass()); } catch (RepositoryException e) { - throw new RuntimeException("Runtime repository exception when accessing " + element, e); + throw new IllegalStateException("Repository exception when accessing " + element, e); } } @Override public Image getImage(Object element) { try { - return getNodeImage((Node) element); + if (element instanceof Node) + return getNodeImage((Node) element); + else if (element instanceof NodeElement) + return getNodeImage(((NodeElement) element).getNode()); + else + throw new IllegalArgumentException("Unsupported element type " + element.getClass()); } catch (RepositoryException e) { - throw new RuntimeException("Runtime repository exception when accessing " + element, e); + throw new IllegalStateException("Repository exception when accessing " + element, e); } } @Override public String getToolTipText(Object element) { try { - return getNodeToolTipText((Node) element); + if (element instanceof Node) + return getNodeToolTipText((Node) element); + else if (element instanceof NodeElement) + return getNodeToolTipText(((NodeElement) element).getNode()); + 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 Node) + return getNodeFont((Node) element); + else if (element instanceof NodeElement) + return getNodeFont(((NodeElement) element).getNode()); + 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 Node) + return getNodeBackground((Node) element); + else if (element instanceof NodeElement) + return getNodeBackground(((NodeElement) element).getNode()); + 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 Node) + return getNodeForeground((Node) element); + else if (element instanceof NodeElement) + return getNodeForeground(((NodeElement) element).getNode()); + else + throw new IllegalArgumentException("Unsupported element type " + element.getClass()); } catch (RepositoryException e) { - throw new RuntimeException("Runtime repository exception when accessing " + element, e); + throw new IllegalStateException("Repository exception when accessing " + element, e); } }