Browse Source

added create new directory

ncannasse 7 years ago
parent
commit
09292992c1
1 changed files with 11 additions and 2 deletions
  1. 11 2
      hide/view/FileTree.hx

+ 11 - 2
hide/view/FileTree.hx

@@ -106,8 +106,10 @@ class FileTree extends FileView {
 			if( current != null )
 			if( current != null )
 				tree.setSelection([current]);
 				tree.setSelection([current]);
 			e.preventDefault();
 			e.preventDefault();
+			var newMenu = [for( e in EXTENSIONS ) if( e.options.createNew != null ) { label : e.options.createNew, click : createNew.bind(current, e) }];
+			newMenu.unshift({ label : "Directory", click : createNew.bind(current, { options : { createNew : "Directory" }, extensions : null, component : null }) });
 			new hide.comp.ContextMenu([
 			new hide.comp.ContextMenu([
-				{ label : "New..", menu:[for( e in EXTENSIONS ) if( e.options.createNew != null ) { label : e.options.createNew, click : createNew.bind(current, e) }] },
+				{ label : "New..", menu:newMenu },
 				{ label : "Delete", enabled : current != null, click : function() if( js.Browser.window.confirm("Delete " + current + "?") ) { onDeleteFile(current); tree.refresh(); } },
 				{ label : "Delete", enabled : current != null, click : function() if( js.Browser.window.confirm("Delete " + current + "?") ) { onDeleteFile(current); tree.refresh(); } },
 			]);
 			]);
 		});
 		});
@@ -158,7 +160,8 @@ class FileTree extends FileView {
 
 
 		var file = ide.ask(ext.options.createNew + " name:");
 		var file = ide.ask(ext.options.createNew + " name:");
 		if( file == null ) return;
 		if( file == null ) return;
-		if( file.indexOf(".") < 0 ) file += "." + ext.extensions[0].split(".").shift();
+		if( file.indexOf(".") < 0 && ext.extensions != null )
+			file += "." + ext.extensions[0].split(".").shift();
 
 
 		if( sys.FileSystem.exists(fullPath + "/" + file) ) {
 		if( sys.FileSystem.exists(fullPath + "/" + file) ) {
 			ide.error("File '" + file+"' already exists");
 			ide.error("File '" + file+"' already exists");
@@ -166,6 +169,12 @@ class FileTree extends FileView {
 			return;
 			return;
 		}
 		}
 
 
+		// directory
+		if( ext.component == null ) {
+			sys.FileSystem.createDirectory(fullPath + "/" + file);
+			return;
+		}
+
 		var view : hide.view.FileView = Type.createEmptyInstance(Type.resolveClass(ext.component));
 		var view : hide.view.FileView = Type.createEmptyInstance(Type.resolveClass(ext.component));
 		view.ide = ide;
 		view.ide = ide;
 		sys.io.File.saveBytes(fullPath + "/" + file, view.getDefaultContent());
 		sys.io.File.saveBytes(fullPath + "/" + file, view.getDefaultContent());