import javax.jcr.RepositoryException;
import javax.jcr.nodetype.NodeType;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.jcr.DefaultNodeLabelProvider;
import org.argeo.eclipse.ui.jcr.JcrUiPlugin;
-import org.argeo.jcr.ArgeoTypes;
import org.argeo.jcr.RepositoryRegister;
-import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
-public class NodeLabelProvider extends LabelProvider {
+public class NodeLabelProvider extends DefaultNodeLabelProvider {
// Images
- public final static Image NODE = JcrUiPlugin.getImageDescriptor(
- "icons/node.gif").createImage();
- public final static Image FOLDER = JcrUiPlugin.getImageDescriptor(
- "icons/folder.gif").createImage();
- public final static Image FILE = JcrUiPlugin.getImageDescriptor(
- "icons/file.gif").createImage();
- public final static Image BINARY = JcrUiPlugin.getImageDescriptor(
- "icons/binary.png").createImage();
- public final static Image HOME = JcrUiPlugin.getImageDescriptor(
- "icons/home.gif").createImage();
public final static Image REPOSITORIES = JcrUiPlugin.getImageDescriptor(
"icons/repositories.gif").createImage();
public String getText(Object element) {
- try {
- if (element instanceof Node) {
- Node node = (Node) element;
- String label = node.getName();
- StringBuffer mixins = new StringBuffer("");
- for (NodeType type : node.getMixinNodeTypes())
- mixins.append(' ').append(type.getName());
-
- return label + " [" + node.getPrimaryNodeType().getName()
- + mixins + "]";
- } else if (element instanceof RepositoryRegister) {
- return "Repositories";
- }
- return element.toString();
- } catch (RepositoryException e) {
- throw new ArgeoException("Cannot get text for of " + element, e);
+ if (element instanceof RepositoryRegister) {
+ return "Repositories";
}
+ return super.getText(element);
+ }
+
+ protected String getText(Node node) throws RepositoryException {
+ String label = node.getName();
+ StringBuffer mixins = new StringBuffer("");
+ for (NodeType type : node.getMixinNodeTypes())
+ mixins.append(' ').append(type.getName());
+
+ return label + " [" + node.getPrimaryNodeType().getName() + mixins
+ + "]";
}
@Override
public Image getImage(Object element) {
- if (element instanceof Node) {
- Node node = (Node) element;
- try {
- // optimized order
- if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FILE))
- return FILE;
- else if (node.getPrimaryNodeType().isNodeType(
- NodeType.NT_FOLDER))
- return FOLDER;
- else if (node.getPrimaryNodeType().isNodeType(
- NodeType.NT_RESOURCE))
- return BINARY;
- else if (node.isNodeType(ArgeoTypes.ARGEO_USER_HOME))
- return HOME;
- } catch (RepositoryException e) {
- // silent
- }
- return NODE;
- } else if (element instanceof RepositoryNode) {
+ if (element instanceof RepositoryNode) {
if (((RepositoryNode) element).getDefaultSession() == null)
return RepositoryNode.REPOSITORY_DISCONNECTED;
else