aboutsummaryrefslogtreecommitdiff
path: root/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js')
-rw-r--r--js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js118
1 files changed, 80 insertions, 38 deletions
diff --git a/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js b/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
index aaf39005..1a26c99c 100644
--- a/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
+++ b/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
@@ -30,12 +30,12 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
30 newFileName:{ 30 newFileName:{
31 writable:true, 31 writable:true,
32 enumerable:false, 32 enumerable:false,
33 value:"" 33 value:null
34 }, 34 },
35 newFileDirectory:{ 35 newFileDirectory:{
36 writable:true, 36 writable:true,
37 enumerable:false, 37 enumerable:false,
38 value:"" 38 value:null
39 }, 39 },
40 templateWidth:{ 40 templateWidth:{
41 writable:true, 41 writable:true,
@@ -98,14 +98,6 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
98 98
99 this.addIdentifiers(); 99 this.addIdentifiers();
100 100
101 this.element.addEventListener("drawTree", function(evt){that.handleNewFileNavDrawTree(evt);}, false);
102 this.element.addEventListener("selectedItem", function(evt){that.handleNewFileNavSelectedItem(evt);}, false);//for single selection only
103 this.eventManager.addEventListener("newFileDirectorySet", function(evt){that.handleNewFileDirectorySet(evt);}, false);
104 this.eventManager.addEventListener("newFileNameSet", function(evt){that.handleNewFileNameSet(evt);}, false);
105
106 this.okButton.addEventListener("click", function(evt){that.handleOkButtonAction(evt);}, false);
107 this.cancelButton.addEventListener("click", function(evt){that.handleCancelButtonAction(evt);}, false);
108
109 if(!!this.newFileModel.defaultProjectType){ 101 if(!!this.newFileModel.defaultProjectType){
110 var templates = this.newFileModel.prepareContents(this.newFileModel.defaultProjectType); 102 var templates = this.newFileModel.prepareContents(this.newFileModel.defaultProjectType);
111 this.templateList = iconsListModule.IconsList.create(); 103 this.templateList = iconsListModule.IconsList.create();
@@ -116,7 +108,6 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
116 this.templateList.element = this.templateIcons; 108 this.templateList.element = this.templateIcons;
117 this.templateList.needsDraw = true; 109 this.templateList.needsDraw = true;
118 110
119
120 this.selectedProjectType = {"uri":this.newFileModel.defaultProjectType, "element":null}; 111 this.selectedProjectType = {"uri":this.newFileModel.defaultProjectType, "element":null};
121 } 112 }
122 113
@@ -127,6 +118,36 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
127 fileExtensionEl.innerHTML = ""+this.newFileModel.projectTypeData[this.newFileModel.defaultProjectType].fileExtension; 118 fileExtensionEl.innerHTML = ""+this.newFileModel.projectTypeData[this.newFileModel.defaultProjectType].fileExtension;
128 } 119 }
129 } 120 }
121
122 this.element.addEventListener("drawTree", function(evt){that.handleNewFileNavDrawTree(evt);}, false);
123 this.element.addEventListener("selectedItem", function(evt){that.handleNewFileNavSelectedItem(evt);}, false);//for single selection only
124 this.eventManager.addEventListener("newFileDirectorySet", function(evt){
125 that.handleNewFileDirectorySet(evt);
126 }, false);
127 this.eventManager.addEventListener("newFileNameSet", function(evt){
128 that.handleNewFileNameSet(evt);
129 }, false);
130
131 this.okButton.addEventListener("click", function(evt){that.handleOkButtonAction(evt);}, false);
132 this.cancelButton.addEventListener("click", function(evt){that.handleCancelButtonAction(evt);}, false);
133
134 this.element.addEventListener("keyup", function(evt){
135 if(evt.keyCode == 27) {//ESC key
136 if(that.application.ninja.newFileController.newFileOptionsNav !== null){
137 that.handleCancelButtonAction();
138 }
139 }else if((evt.keyCode == 13) && !(evt.ctrlKey || evt.metaKey)){//ENTER key
140 if((that.application.ninja.newFileController.newFileOptionsNav !== null)
141 && !that.okButton.hasAttribute("disabled")){
142
143 that.handleOkButtonAction();
144 }
145 }
146 }, true);
147
148 this.eventManager.addEventListener("enterKey", this, false);
149 this.eventManager.addEventListener("escKey", this, false);
150
130 } 151 }
131 152
132 }, 153 },
@@ -291,10 +312,16 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
291 }else{ 312 }else{
292 if(this.error.innerHTML === ""){ 313 if(this.error.innerHTML === ""){
293 this.showError("! Project Template, Name and Directory should be valid."); 314 this.showError("! Project Template, Name and Directory should be valid.");
294 } 315 //disable ok
295 //disable ok 316 if(!this.okButton.hasAttribute("disabled")){
296 if(!this.okButton.hasAttribute("disabled")){ 317 this.okButton.setAttribute("disabled", "true");
297 this.okButton.setAttribute("disabled", "true"); 318 }
319 }else if(!this.selectedProjectType || !this.selectedTemplate){
320 this.showError("! Project Template should be selected.");
321 //disable ok
322 if(!this.okButton.hasAttribute("disabled")){
323 this.okButton.setAttribute("disabled", "true");
324 }
298 } 325 }
299 } 326 }
300 } 327 }
@@ -302,22 +329,36 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
302 329
303 handleNewFileDirectorySet:{ 330 handleNewFileDirectorySet:{
304 value:function(evt){ 331 value:function(evt){
305 if(!!evt._event.newFileDirectory){ 332 this.newFileDirectory = evt._event.newFileDirectory;
306 this.newFileDirectory = evt._event.newFileDirectory; 333 if(this.isValidUri(this.newFileDirectory)){
307 if(this.isValidUri(this.newFileDirectory)){ 334 this.enableOk();
308 this.enableOk();
309 }
310 } 335 }
311 } 336 }
312 }, 337 },
313 338
314 handleNewFileNameSet:{ 339 handleNewFileNameSet:{
315 value:function(evt){ 340 value:function(evt){
316 if(!!evt._event.newFileName){ 341 this.newFileName = evt._event.newFileName;
317 this.newFileName = evt._event.newFileName; 342 if(this.isValidFileName(this.newFileName)){
318 if(this.isValidFileName(this.newFileName)){ 343 this.enableOk();
319 this.enableOk(); 344 }
320 } 345 }
346 },
347
348 handleEnterKey:{
349 value: function(evt){
350 if((this.application.ninja.newFileController.newFileOptionsNav !== null)
351 && !this.okButton.hasAttribute("disabled")){
352
353 this.handleOkButtonAction(evt);
354 }
355 }
356 },
357
358 handleEscKey:{
359 value: function(evt){
360 if(this.application.ninja.newFileController.newFileOptionsNav !== null){
361 this.handleCancelButtonAction(evt);
321 } 362 }
322 } 363 }
323 }, 364 },
@@ -374,24 +415,26 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
374 415
375 this.newFileName = ""; 416 this.newFileName = "";
376 this.newFileDirectory = ""; 417 this.newFileDirectory = "";
377 this.selectedProjectType = null;
378 this.selectedTemplate = null;
379 418
380 //remove event listeners 419 //remove event listeners
381 this.element.removeEventListener("drawTree", function(evt){that.handleNewFileNavDrawTree(evt);}, false); 420 this.element.removeEventListener("drawTree", function(evt){that.handleNewFileNavDrawTree(evt);}, false);
382 this.element.removeEventListener("selectedItem", function(evt){that.handleNewFileNavSelectedItem(evt);}, false);//for single selection only 421 this.element.removeEventListener("selectedItem", function(evt){that.handleNewFileNavSelectedItem(evt);}, false);//for single selection only
383 this.eventManager.removeEventListener("newFileDirectorySet", function(evt){that.handleNewFileDirectorySet(evt);}, false); 422 this.eventManager.removeEventListener("newFileDirectorySet", function(evt){that.handleNewFileDirectorySet(evt);}, false);
384 this.eventManager.removeEventListener("newFileNameSet", function(evt){that.handleNewFileNameSet(evt);}, false); 423 this.eventManager.removeEventListener("newFileNameSet", function(evt){that.handleNewFileNameSet(evt);}, false);
424
425 this.application.ninja.newFileController.newFileOptionsNav = null;
385 } 426 }
386 }, 427 },