--- /dev/null
+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;
+ }
+
+}