X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=library%2Forg.argeo.documents.ui%2Fsrc%2Forg%2Fargeo%2Fdocuments%2Fui%2FDocumentsTreeUiProvider.java;fp=library%2Forg.argeo.documents.ui%2Fsrc%2Forg%2Fargeo%2Fdocuments%2Fui%2FDocumentsTreeUiProvider.java;h=224576e39441fdfdda147939e3e19fa7a8a990c0;hb=dec8c11591d7525c4be934406326823348daa461;hp=0000000000000000000000000000000000000000;hpb=643015b2ea9a066531250059a31b23358a38aa72;p=gpl%2Fargeo-suite.git diff --git a/library/org.argeo.documents.ui/src/org/argeo/documents/ui/DocumentsTreeUiProvider.java b/library/org.argeo.documents.ui/src/org/argeo/documents/ui/DocumentsTreeUiProvider.java new file mode 100644 index 0000000..224576e --- /dev/null +++ b/library/org.argeo.documents.ui/src/org/argeo/documents/ui/DocumentsTreeUiProvider.java @@ -0,0 +1,40 @@ +package org.argeo.documents.ui; + +import java.nio.file.Path; +import java.nio.file.spi.FileSystemProvider; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.argeo.api.NodeUtils; +import org.argeo.cms.fs.CmsFsUtils; +import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.util.CmsUiUtils; +import org.argeo.eclipse.ui.fs.FsTreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +/** Tree view of a user root folders. */ +public class DocumentsTreeUiProvider implements CmsUiProvider { + private FileSystemProvider nodeFileSystemProvider; + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + parent.setLayout(new GridLayout()); + FsTreeViewer fsTreeViewer = new FsTreeViewer(parent, SWT.NONE); + fsTreeViewer.configureDefaultSingleColumnTable(500); + Node homeNode = NodeUtils.getUserHome(context.getSession()); + Path homePath = CmsFsUtils.getPath(nodeFileSystemProvider, homeNode); + fsTreeViewer.setPathsInput(homePath); + fsTreeViewer.getControl().setLayoutData(CmsUiUtils.fillAll()); + fsTreeViewer.getControl().getParent().layout(true, true); + return fsTreeViewer.getControl(); + } + + public void setNodeFileSystemProvider(FileSystemProvider nodeFileSystemProvider) { + this.nodeFileSystemProvider = nodeFileSystemProvider; + } + +}