X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.suite.workbench.rap%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fworkbench%2Ffs%2FFsSingleColumnLabelProvider.java;fp=org.argeo.suite.workbench.rap%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fworkbench%2Ffs%2FFsSingleColumnLabelProvider.java;h=d3c62ff0897bff2dc2c37429e1608a9b9d5d28d0;hb=f2bf1e12e3aad9c2507e86e1d33fef2fd3e67489;hp=0000000000000000000000000000000000000000;hpb=1fb1ccc2edbf7cfbdd37efc618c52b8eebe4e6be;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsSingleColumnLabelProvider.java b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsSingleColumnLabelProvider.java new file mode 100644 index 0000000..d3c62ff --- /dev/null +++ b/org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/fs/FsSingleColumnLabelProvider.java @@ -0,0 +1,56 @@ +package org.argeo.suite.workbench.fs; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.nodetype.NodeType; + +import org.argeo.connect.people.PeopleNames; +import org.argeo.connect.ui.ConnectUiUtils; +import org.argeo.suite.SuiteException; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.swt.graphics.Image; + +/** + * Provide a single column label provider for file and directory lists. Icon and + * displayed text vary with the element node type + */ +public class FsSingleColumnLabelProvider extends LabelProvider implements PeopleNames { + private static final long serialVersionUID = -8895136766988459632L; + + public FsSingleColumnLabelProvider() { + } + + @Override + public String getText(Object element) { + try { + Node entity = (Node) element; + String result; + if (entity.isNodeType(NodeType.NT_FILE)) + result = entity.getName(); + // result = ConnectJcrUtils.get(entity, Property.JCR_TITLE); + else if (entity.isNodeType(NodeType.NT_FOLDER)) + result = entity.getName(); + // result = ConnectJcrUtils.get(entity, Property.JCR_TITLE); + else + result = ""; + return ConnectUiUtils.replaceAmpersand(result); + } catch (RepositoryException re) { + throw new SuiteException("Unable to get formatted value for node", re); + } + } + + /** Overwrite this method to provide project specific images */ + @Override + public Image getImage(Object element) { + try { + Node entity = (Node) element; + if (entity.isNodeType(NodeType.NT_FILE)) + return FsImages.ICON_FILE; + else if (entity.isNodeType(NodeType.NT_FOLDER)) + return FsImages.ICON_FOLDER; + return null; + } catch (RepositoryException re) { + throw new SuiteException("Cannot get icon for " + element, re); + } + } +}