Introduce a FS UIProvider
[gpl/argeo-suite.git] / org.argeo.suite.web / src / org / argeo / suite / fs / MyFilesBrowserPage.java
diff --git a/org.argeo.suite.web/src/org/argeo/suite/fs/MyFilesBrowserPage.java b/org.argeo.suite.web/src/org/argeo/suite/fs/MyFilesBrowserPage.java
new file mode 100644 (file)
index 0000000..6afa58b
--- /dev/null
@@ -0,0 +1,40 @@
+package org.argeo.suite.fs;
+
+import java.nio.file.spi.FileSystemProvider;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+
+import org.argeo.cms.auth.CurrentUser;
+import org.argeo.cms.fs.CmsFsBrowser;
+import org.argeo.cms.ui.CmsUiProvider;
+import org.argeo.eclipse.ui.EclipseUiUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/** Default file browser page for the CMS */
+public class MyFilesBrowserPage implements CmsUiProvider {
+
+       private FileSystemProvider nodeFileSystemProvider;
+
+       public MyFilesBrowserPage(FileSystemProvider nodeFileSystemProvider) {
+               this.nodeFileSystemProvider = nodeFileSystemProvider;
+       }
+
+       @Override
+       public Control createUi(Composite parent, Node context) throws RepositoryException {
+               parent.setLayout(EclipseUiUtils.noSpaceGridLayout());
+
+               if (CurrentUser.isAnonymous())
+                       // TODO implement public file display
+                       return null;
+
+               CmsFsBrowser browser = new CmsFsBrowser(parent, SWT.NO_FOCUS, context, nodeFileSystemProvider);
+               browser.setLayoutData(EclipseUiUtils.fillAll());
+
+               // TODO set input on the default home folder parent for one user's
+               // files
+               return browser;
+       }
+}