You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ti...@apache.org on 2012/06/07 22:40:44 UTC

[37/48] js commit: Added in directory reader

Added in directory reader


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/commit/da8f5514
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/tree/da8f5514
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/diff/da8f5514

Branch: refs/heads/master
Commit: da8f551464f17d6734c8f2680a1bb47585c94c54
Parents: 6e4c99b
Author: Tim Kim <ti...@nitobi.com>
Authored: Fri May 11 16:16:55 2012 -0700
Committer: Tim Kim <ti...@nitobi.com>
Committed: Thu Jun 7 13:40:22 2012 -0700

----------------------------------------------------------------------
 lib/playbook/platform.js                          |    3 +
 lib/playbook/plugin/playbook/DirectoryEntry.js    |    4 +
 lib/playbook/plugin/playbook/DirectoryReader.js   |   67 ++++++++++++++++
 lib/playbook/plugin/playbook/requestFileSystem.js |    2 +-
 4 files changed, 75 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/da8f5514/lib/playbook/platform.js
----------------------------------------------------------------------
diff --git a/lib/playbook/platform.js b/lib/playbook/platform.js
index 0b24e04..9a987c3 100644
--- a/lib/playbook/platform.js
+++ b/lib/playbook/platform.js
@@ -5,6 +5,9 @@ module.exports = {
         device: {
             path: "cordova/plugin/playbook/device"
         },
+        DirectoryReader:{
+            path: 'cordova/plugin/playbook/DirectoryReader'
+        },
         File:{
             path: 'cordova/plugin/playbook/File'
         },

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/da8f5514/lib/playbook/plugin/playbook/DirectoryEntry.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/DirectoryEntry.js b/lib/playbook/plugin/playbook/DirectoryEntry.js
index 101d526..66354bf 100644
--- a/lib/playbook/plugin/playbook/DirectoryEntry.js
+++ b/lib/playbook/plugin/playbook/DirectoryEntry.js
@@ -1,8 +1,12 @@
 var DirectoryEntry = require('cordova/plugin/DirectoryEntry'),
+    DirectoryReader = require('cordova/plugin/playbook/DirectoryReader'),
     FileEntry = require('cordova/plugin/FileEntry'),
     FileError = require('cordova/plugin/FileError');
 
 module.exports = {
+    createReader : function() {
+        return new DirectoryReader(this.fullPath);
+    },
     /**
      * Creates or looks up a directory; override for BlackBerry.
      *

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/da8f5514/lib/playbook/plugin/playbook/DirectoryReader.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/DirectoryReader.js b/lib/playbook/plugin/playbook/DirectoryReader.js
new file mode 100644
index 0000000..2508be4
--- /dev/null
+++ b/lib/playbook/plugin/playbook/DirectoryReader.js
@@ -0,0 +1,67 @@
+var FileError = require('cordova/plugin/FileError');
+
+/**
+ * An interface that lists the files and directories in a directory.
+ */
+function DirectoryReader(path) {
+    this.path = path || null;
+}
+
+/**
+ * Returns a list of entries from a directory.
+ *
+ * @param {Function} successCallback is called with a list of entries
+ * @param {Function} errorCallback is called with a FileError
+ */
+DirectoryReader.prototype.readEntries = function(successCallback, errorCallback) {
+    var win = typeof successCallback !== 'function' ? null : function(result) {
+        var retVal = [];
+        for (var i=0; i<result.length; i++) {
+            var entry = null;
+            if (result[i].isDirectory) {
+                entry = new (require('cordova/plugin/DirectoryEntry'))();
+            }
+            else if (result[i].isFile) {
+                entry = new (require('cordova/plugin/FileEntry'))();
+            }
+            entry.isDirectory = result[i].isDirectory;
+            entry.isFile = result[i].isFile;
+            entry.name = result[i].name;
+            entry.fullPath = result[i].fullPath;
+            retVal.push(entry);
+        }
+        successCallback(retVal);
+    };
+    var fail = typeof errorCallback !== 'function' ? null : function(code) {
+        errorCallback(new FileError(code));
+    };
+
+       var theEntries = [];
+
+       var anEntry = function(isDirectory, name, fullPath){
+           this.isDirectory = (isDirectory ? true : false),
+           this.isFile = (isDirectory ? false : true),
+           this.name = name,
+           this.fullPath = fullPath
+       };
+
+       if(blackberry.io.dir.exists(this.path)){
+
+        var theDirectories = blackberry.io.dir.listDirectories(this.path)
+        var theFiles = blackberry.io.dir.listFiles(this.path);
+
+        var theDirectoriesLength = theDirectories.length;
+        var theFilesLength = theFiles.length;
+        for(var i=0;i<theDirectoriesLength;i++){
+            theEntries.push(new anEntry(true, theDirectories[i], this.path+theDirectories[i]));
+        }
+
+        for(var j=0;j<theFilesLength;j++){
+            theEntries.push(new anEntry(false, theFiles[j], this.path+theFiles[j]));
+        }
+       }
+       console.log(theEntries);
+       win(theEntries);
+};
+
+module.exports = DirectoryReader;

http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/da8f5514/lib/playbook/plugin/playbook/requestFileSystem.js
----------------------------------------------------------------------
diff --git a/lib/playbook/plugin/playbook/requestFileSystem.js b/lib/playbook/plugin/playbook/requestFileSystem.js
index 68c2832..62829e0 100644
--- a/lib/playbook/plugin/playbook/requestFileSystem.js
+++ b/lib/playbook/plugin/playbook/requestFileSystem.js
@@ -1,6 +1,6 @@
 var DirectoryEntry = require('cordova/plugin/DirectoryEntry'),
 FileError = require('cordova/plugin/FileError'),
-FileSystem = require('cordova/plugin/FileSystem');
+var FileSystem = require('cordova/plugin/FileSystem');
 
 /**
  * Request a file system in which to store application data.