Can browse node file system
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 14 Jan 2017 11:18:37 +0000 (12:18 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 14 Jan 2017 11:18:37 +0000 (12:18 +0100)
org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/jcr/NodeFsBrowserView.java
org.argeo.jcr/src/org/argeo/jcr/fs/JcrBasicfileAttributes.java

index 68f45908b55ed8e9b9908266d2fc10355a604eeb..e6ac7247a951f474caf1c7f191a5f5aca4d87fae 100644 (file)
  */
 package org.argeo.cms.ui.workbench.jcr;
 
+import java.net.URI;
+import java.nio.file.FileSystem;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.spi.FileSystemProvider;
 
+import org.argeo.cms.CmsException;
 import org.argeo.cms.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.fs.SimpleFsBrowser;
@@ -31,15 +34,26 @@ import org.eclipse.ui.part.ViewPart;
  */
 public class NodeFsBrowserView extends ViewPart {
        public final static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".nodeFsBrowserView";
-       
+
        private FileSystemProvider nodeFileSystemProvider;
 
        @Override
        public void createPartControl(Composite parent) {
-               SimpleFsBrowser browser = new SimpleFsBrowser(parent, SWT.NO_FOCUS);
-               Path path = Paths.get("/");
-               browser.setInput(path);
-               browser.setLayoutData(EclipseUiUtils.fillAll());
+               try {
+                       URI uri = new URI("node:///home");
+                       FileSystem fileSystem = nodeFileSystemProvider.getFileSystem(uri);
+                       if(fileSystem==null)
+                               fileSystem = nodeFileSystemProvider.newFileSystem(uri,null);
+                       Path nodePath = fileSystem.getPath("/home");
+//                     Path nodePath = Paths.get(uri);
+                       
+                       Path path = Paths.get("/");
+                       SimpleFsBrowser browser = new SimpleFsBrowser(parent, SWT.NO_FOCUS);
+                       browser.setInput(path, nodePath);
+                       browser.setLayoutData(EclipseUiUtils.fillAll());
+               } catch (Exception e) {
+                       throw new CmsException("Cannot open file system browser", e);
+               }
        }
 
        @Override
index e59abbc70a8a1fc1f65556c4208b7946eb2c5b96..7ce9ca6674e4d3cff9e7d5241fcb8652b9d821d8 100644 (file)
@@ -63,7 +63,10 @@ public class JcrBasicfileAttributes implements NodeFileAttributes {
        @Override
        public boolean isDirectory() {
                try {
-                       return node.isNodeType(NodeType.NT_FOLDER);
+                       if (node.isNodeType(NodeType.NT_FOLDER))
+                               return true;
+                       // all other non file nodes
+                       return !(node.isNodeType(NodeType.NT_FILE) || node.isNodeType(NodeType.NT_LINKED_FILE));
                } catch (RepositoryException e) {
                        throw new JcrFsException("Cannot check if directory", e);
                }
@@ -88,7 +91,7 @@ public class JcrBasicfileAttributes implements NodeFileAttributes {
                if (isRegularFile()) {
                        Binary binary = null;
                        try {
-                               binary = node.getNode(Property.JCR_DATA).getProperty(Property.JCR_CONTENT).getBinary();
+                               binary = node.getNode(Property.JCR_CONTENT).getProperty(Property.JCR_DATA).getBinary();
                                return binary.getSize();
                        } catch (RepositoryException e) {
                                throw new JcrFsException("Cannot check size", e);