aboutsummaryrefslogtreecommitdiff
path: root/js/io
diff options
context:
space:
mode:
Diffstat (limited to 'js/io')
-rwxr-xr-xjs/io/system/coreioapi.js2
-rwxr-xr-xjs/io/ui/file-picker/file-input-field.reel/file-input-field.html10
-rwxr-xr-xjs/io/ui/file-picker/file-input-field.reel/file-input-field.js37
-rwxr-xr-xjs/io/ui/new-file-dialog/new-file-location.reel/new-file-location.html9
-rwxr-xr-xjs/io/ui/new-file-dialog/new-file-location.reel/new-file-location.js32
-rw-r--r--js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js46
-rw-r--r--js/io/ui/save-as-dialog.reel/save-as-dialog.html9
-rw-r--r--js/io/ui/save-as-dialog.reel/save-as-dialog.js80
8 files changed, 130 insertions, 95 deletions
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js
index ed7df972..a06f45c6 100755
--- a/js/io/system/coreioapi.js
+++ b/js/io/system/coreioapi.js
@@ -1092,7 +1092,7 @@ exports.CoreIoApi = Montage.create(Component, {
1092 isWindowsUri = /^([a-zA-Z]:)([\\/][^<>:"/\\|?*]+)*[\\/]?$/gi.test(uri); 1092 isWindowsUri = /^([a-zA-Z]:)([\\/][^<>:"/\\|?*]+)*[\\/]?$/gi.test(uri);
1093 isUnixUri = /^(\/)?(\/(?![.])[^/]*)*\/?$/gi.test(uri);//folders beginning with . are hidden on Mac / Unix 1093 isUnixUri = /^(\/)?(\/(?![.])[^/]*)*\/?$/gi.test(uri);//folders beginning with . are hidden on Mac / Unix
1094 status = isWindowsUri || isUnixUri; 1094 status = isWindowsUri || isUnixUri;
1095 if(isWindowsUri && isUnixUri){status = false;} 1095 if((uri === "") || (isWindowsUri && isUnixUri)){status = false;}
1096 } 1096 }
1097 return status; 1097 return status;
1098 } 1098 }
diff --git a/js/io/ui/file-picker/file-input-field.reel/file-input-field.html b/js/io/ui/file-picker/file-input-field.reel/file-input-field.html
index 2fcaa075..00df1c11 100755
--- a/js/io/ui/file-picker/file-input-field.reel/file-input-field.html
+++ b/js/io/ui/file-picker/file-input-field.reel/file-input-field.html
@@ -10,13 +10,21 @@
10 <link rel="stylesheet" type="text/css" href="file-input-field.css"> 10 <link rel="stylesheet" type="text/css" href="file-input-field.css">
11 <script type="text/montage-serialization"> 11 <script type="text/montage-serialization">
12 { 12 {
13
14 "newFileDirectory": {
15 "prototype": "montage/ui/textfield.reel",
16 "properties": {
17 "element": {"#": "newFileDirectory"}
18 }
19 },
20
13 "owner":{ 21 "owner":{
14 "module": "js/io/ui/file-picker/file-input-field.reel", 22 "module": "js/io/ui/file-picker/file-input-field.reel",
15 "name": "FileInputField", 23 "name": "FileInputField",
16 "properties": { 24 "properties": {
17 "element": {"#": "fileInputField"}, 25 "element": {"#": "fileInputField"},
18 "findDirectory": {"#": "findDirectory"}, 26 "findDirectory": {"#": "findDirectory"},
19 "newFileDirectory": {"#": "newFileDirectory"} 27 "newFileDirectory": {"@": "newFileDirectory"}
20 } 28 }
21 } 29 }
22 } 30 }
diff --git a/js/io/ui/file-picker/file-input-field.reel/file-input-field.js b/js/io/ui/file-picker/file-input-field.reel/file-input-field.js
index 0f66468a..9e77759f 100755
--- a/js/io/ui/file-picker/file-input-field.reel/file-input-field.js
+++ b/js/io/ui/file-picker/file-input-field.reel/file-input-field.js
@@ -14,14 +14,10 @@ var FileInputField = exports.FileInputField = Montage.create(Component, {
14 value: function() { 14 value: function() {
15 var that = this; 15 var that = this;
16 this.findDirectory.identifier = "findDirectory"; 16 this.findDirectory.identifier = "findDirectory";
17
18 this.findDirectory.addEventListener("click", this, false); 17 this.findDirectory.addEventListener("click", this, false);
19 18 this.eventManager.addEventListener("pickerSelectionsDone", this.handleFileInputPickerSelectionsDone, false);
20 this.eventManager.addEventListener("pickerSelectionsDone", function(evt){that.handleFileInputPickerSelectionsDone(evt);}, false); 19 this.addEventListener("change@newFileDirectory.value", this.handleNewFileDirectoryChange, false);
21 20 this.newFileDirectory.element.addEventListener("keyup", this, false);
22 this.newFileDirectory.addEventListener("keyup", function(evt){that.handleNewFileDirectoryOnkeyup(evt);}, false);
23 this.newFileDirectory.addEventListener("paste", this, false);
24 this.newFileDirectory.addEventListener("search", this, false);
25 } 21 }
26 }, 22 },
27 23
@@ -65,15 +61,7 @@ var FileInputField = exports.FileInputField = Montage.create(Component, {
65 } 61 }
66 }, 62 },
67 63
68 handlePaste:{ 64 handleNewFileDirectoryChange:{
69 value:function(evt){
70 evt.preventDefault();
71 evt.target.value = evt.clipboardData.getData("Text");
72 this.handleNewFileDirectoryOnkeyup(evt);
73 }
74 },
75
76 handleNewFileDirectoryOnkeyup:{
77 value:function(evt){ 65 value:function(evt){
78 var newFileDirectorySetEvent = document.createEvent("Events"); 66 var newFileDirectorySetEvent = document.createEvent("Events");
79 newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); 67 newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false);
@@ -83,9 +71,18 @@ var FileInputField = exports.FileInputField = Montage.create(Component, {
83 } 71 }
84 }, 72 },
85 73
86 handleSearch:{ 74
87 value:function(evt){ 75 handleKeyup:{
88 this.handleNewFileDirectoryOnkeyup(evt); 76 value: function(evt){
77 if(evt.keyCode === 13){
78 var enterKeyupEvent = document.createEvent("Events");
79 enterKeyupEvent.initEvent("enterKey", false, false);
80 this.eventManager.dispatchEvent(enterKeyupEvent);
81 }else if(evt.keyCode === 27){
82 var escKeyupEvent = document.createEvent("Events");
83 escKeyupEvent.initEvent("escKey", false, false);
84 this.eventManager.dispatchEvent(escKeyupEvent);
85 }
89 } 86 }
90 }, 87 },
91 88
@@ -110,7 +107,7 @@ var FileInputField = exports.FileInputField = Montage.create(Component, {
110 if(!!obj && obj.uri && obj.uri.length > 0){ 107 if(!!obj && obj.uri && obj.uri.length > 0){
111 selectedUri = obj.uri[0]; 108 selectedUri = obj.uri[0];
112 this.newFileDirectory.value = selectedUri; 109 this.newFileDirectory.value = selectedUri;
113 this.newFileDirectory.focus(); 110 this.newFileDirectory.element.focus();
114 var newFileDirectorySetEvent = document.createEvent("Events"); 111 var newFileDirectorySetEvent = document.createEvent("Events");
115 newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); 112 newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false);
116 newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value; 113 newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value;
diff --git a/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.html b/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.html
index 7340251c..1f9d9b9f 100755
--- a/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.html
+++ b/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.html
@@ -58,13 +58,20 @@
58 } 58 }
59 }, 59 },
60 60
61 "newFileName": {
62 "prototype": "montage/ui/textfield.reel",
63 "properties": {
64 "element": {"#": "newFileName"}
65 }
66 },
67
61 "owner":{ 68 "owner":{
62 "module": "js/io/ui/new-file-dialog/new-file-location.reel", 69 "module": "js/io/ui/new-file-dialog/new-file-location.reel",
63 "name": "NewFileLocation", 70 "name": "NewFileLocation",
64 "properties": { 71 "properties": {
65 "element": {"#": "newfileLocation"}, 72 "element": {"#": "newfileLocation"},
66 "fileInputField": {"@": "fileInputField"}, 73 "fileInputField": {"@": "fileInputField"},
67 "newFileName": {"#": "newFileName"} 74 "newFileName": {"@": "newFileName"}
68 } 75 }
69 } 76 }
70 } 77 }
diff --git a/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.js b/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.js
index 3582f1a5..3ac38d02 100755
--- a/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.js
+++ b/js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.js
@@ -22,23 +22,28 @@ var NewFileLocation = exports.NewFileLocation = Montage.create(Component, {
22 value: function() { 22 value: function() {
23 this.fileInputField.selectDirectory = true; 23 this.fileInputField.selectDirectory = true;
24 24
25 this.newFileName.addEventListener("keyup", this, false); 25 this.addEventListener("change@newFileName.value", this.newFileNameChange, false);
26 this.newFileName.addEventListener("paste", this, false); 26 this.newFileName.element.addEventListener("keyup", this, false);
27 this.newFileName.addEventListener("search", this, false); 27 this.newFileName.element.focus();
28 this.newFileName.focus(); 28 this.newFileName.element.select();
29 this.newFileName.select();
30 } 29 }
31 }, 30 },
32 31
33 handlePaste:{ 32 handleKeyup:{
34 value:function(evt){ 33 value: function(evt){
35 evt.preventDefault(); 34 if(evt.keyCode === 13){
36 evt.target.value = evt.clipboardData.getData("Text"); 35 var enterKeyupEvent = document.createEvent("Events");
37 this.handleKeyup(evt); 36 enterKeyupEvent.initEvent("enterKey", false, false);
37 this.eventManager.dispatchEvent(enterKeyupEvent);
38 }else if(evt.keyCode === 27){
39 var escKeyupEvent = document.createEvent("Events");
40 escKeyupEvent.initEvent("escKey", false, false);
41 this.eventManager.dispatchEvent(escKeyupEvent);
42 }
38 } 43 }
39 }, 44 },
40 45
41 handleKeyup:{ 46 newFileNameChange:{
42 value:function(evt){ 47 value:function(evt){
43 var newFileNameSetEvent = document.createEvent("Events"); 48 var newFileNameSetEvent = document.createEvent("Events");
44 newFileNameSetEvent.initEvent("newFileNameSet", false, false); 49 newFileNameSetEve