X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fruntime%2Forg.argeo.eclipse.ui.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Feclipse%2Fui%2Fjcr%2Fviews%2FGenericJcrBrowser.java;fp=eclipse%2Fruntime%2Forg.argeo.eclipse.ui.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Feclipse%2Fui%2Fjcr%2Fviews%2FGenericJcrBrowser.java;h=2496177824088a4404888cbbd47aae8e82263620;hb=5f0b7679ef0cbcb1b101f71673f1e5e24e735b39;hp=eb23629673f4c367f7fef24847eabc2cdd555c13;hpb=0073eddfce43ecc3e608722e684e18b539b95476;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/views/GenericJcrBrowser.java b/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/views/GenericJcrBrowser.java index eb2362967..249617782 100644 --- a/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/views/GenericJcrBrowser.java +++ b/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/views/GenericJcrBrowser.java @@ -1,5 +1,7 @@ package org.argeo.eclipse.ui.jcr.views; +import java.io.BufferedInputStream; +import java.io.File; import java.util.Arrays; import javax.jcr.Node; @@ -7,12 +9,15 @@ import javax.jcr.Property; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; +import org.apache.commons.io.IOUtils; import org.argeo.ArgeoException; +import org.argeo.eclipse.ui.dialogs.Error; import org.argeo.eclipse.ui.jcr.browser.NodeContentProvider; import org.argeo.eclipse.ui.jcr.browser.NodeLabelProvider; import org.argeo.eclipse.ui.jcr.browser.PropertiesContentProvider; import org.argeo.eclipse.ui.jcr.browser.RepositoryNode; import org.argeo.eclipse.ui.jcr.browser.WorkspaceNode; +import org.argeo.eclipse.ui.specific.FileHandler; import org.argeo.jcr.RepositoryRegister; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ColumnLabelProvider; @@ -83,6 +88,44 @@ public class GenericJcrBrowser extends ViewPart { } else if (obj instanceof WorkspaceNode) { ((WorkspaceNode) obj).login(); nodesViewer.refresh(obj); + } // call the openFile commands on node + else if (obj instanceof Node) { + Node node = (Node) obj; + try { + if (node.isNodeType("nt:file")) { + + Node child = node.getNodes().nextNode(); + if (!child.isNodeType("nt:resource")) { + Error.show("Cannot open file children Node that are not of 'nt:resource' type."); + return; + } + BufferedInputStream fis = null; + + try { + fis = (BufferedInputStream) child + .getProperty("jcr:data").getBinary() + .getStream(); + + String name = node.getName(); + + // Instantiate the generic object that fits for + // both + // RCP & RAP. + FileHandler fh = new FileHandler(); + fh.openFile(name, + fis); + //fh.openFile(file); + } catch (Exception e) { + throw new ArgeoException( + "Stream error while opening file", e); + } finally { + IOUtils.closeQuietly(fis); + } + } + } catch (RepositoryException re) { + re.printStackTrace(); + + } } }