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/453cf6c2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/tree/453cf6c2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/diff/453cf6c2 Branch: refs/heads/playbookFile Commit: 453cf6c2d90c45ad37ddc849783e8aa30f8e05ed Parents: 9bd1192 Author: Tim Kim <tim....@nitobi.com> Authored: Fri May 11 16:16:55 2012 -0700 Committer: Tim Kim <tim....@nitobi.com> Committed: Fri May 11 16:16:55 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/453cf6c2/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/453cf6c2/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/453cf6c2/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/453cf6c2/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.