You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2014/06/03 17:51:12 UTC
svn commit: r1599629 -
/sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
Author: stefanegli
Date: Tue Jun 3 15:51:11 2014
New Revision: 1599629
URL: http://svn.apache.org/r1599629
Log:
SLING-3606 related : supporting creation of nt:file
Modified:
sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
Modified: sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java?rev=1599629&r1=1599628&r2=1599629&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java (original)
+++ sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java Tue Jun 3 15:51:11 2014
@@ -826,6 +826,11 @@ public class JcrNode implements IAdaptab
} else if (parentSk!=SerializationKind.FOLDER && childSk==SerializationKind.METADATA_PARTIAL) {
createDomChild(childNodeName, childNodeType);
} else {
+ if (childNodeType.equals("nt:file")) {
+ IFolder f = (IFolder)resource;
+ createNtFile(f, childNodeName, childNodeType);
+ return;
+ }
//TODO: FILE not yet supported
MessageDialog.openWarning(Display.getDefault().getActiveShell(), "Error creating node", "Cannot create child of "+thisNodeType+" with type "+childNodeType+" (yet?)");
return;
@@ -852,7 +857,7 @@ public class JcrNode implements IAdaptab
}
}
- private void createVaultFile(IFolder parent, String filename, String childNodeType) {
+ private void createVaultFile(IFolder parent, String filename, String childNodeType) {
final String minimalContentXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<jcr:root \n xmlns:sling=\"http://sling.apache.org/jcr/sling/1.0\"\n xmlns:jcr=\"http://www.jcp.org/jcr/1.0\"\n jcr:primaryType=\""+childNodeType+"\"/>";
IFile file = parent.getFile(filename);
if (file.exists()) {
@@ -866,7 +871,23 @@ public class JcrNode implements IAdaptab
MessageDialog.openInformation(Display.getDefault().getActiveShell(),
"Cannot create JCR node on a File", "Following Exception encountered: "+e);
}
- }
+ }
+
+ private void createNtFile(IFolder parent, String filename, String childNodeType) {
+ IFile file = parent.getFile(filename);
+ if (file.exists()) {
+ // file already exists
+ return;
+ }
+ try {
+ file.create(new ByteArrayInputStream("".getBytes()), true, new NullProgressMonitor());
+ } catch (CoreException e) {
+ //TODO proper logging
+ e.printStackTrace();
+ MessageDialog.openWarning(Display.getDefault().getActiveShell(),
+ "Cannot create file "+filename, "Following Exception encountered: "+e);
+ }
+ }
private SerializationKind getFallbackSerializationKind(String nodeType) {
if (nodeType.equals("nt:file")) {