1 // Open a dialog to choose an application
2 function webdeveloper_chooseApplication()
4 var filePicker
= Components
.classes
["@mozilla.org/filepicker;1"].createInstance(Components
.interfaces
.nsIFilePicker
);
6 filePicker
.init(window
, document
.getElementById("webdeveloper-string-bundle").getString("webdeveloper_chooseApplication"), filePicker
.modeOpen
);
8 // If the user selected an application
9 if(filePicker
.show() == filePicker
.returnOK
)
11 var applicationPath
= filePicker
.file
.path
;
12 var executable
= Components
.classes
["@mozilla.org/file/local;1"].createInstance(Components
.interfaces
.nsILocalFile
);
14 executable
.initWithPath(applicationPath
);
16 // If the executable exists, is a file and is executable
17 if(executable
.exists() && executable
.isFile() && executable
.isExecutable())
19 document
.getElementById("webdeveloper.tool.path").value
= applicationPath
;
23 webdeveloper_error(document
.getElementById("webdeveloper-string-bundle").getFormattedString("webdeveloper_invalidApplication", [applicationPath
]));
29 function webdeveloper_clearTool()
31 window
.opener
.webdeveloper_toolDescription
= null;
32 window
.opener
.webdeveloper_toolKey
= null;
33 window
.opener
.webdeveloper_toolPath
= null;
34 window
.opener
.webdeveloper_toolURL
= null;
37 // Initializes the tool dialog box
38 function webdeveloper_initializeTool()
41 var stringBundle
= document
.getElementById("webdeveloper-string-bundle");
43 // If running on a Mac
44 if(webdeveloper_isMac())
46 modifiers
= stringBundle
.getString("webdeveloper_keyboardShortcutModifiersMac");
50 modifiers
= stringBundle
.getString("webdeveloper_keyboardShortcutModifiers");
53 document
.getElementById("webdeveloper-keyboard-shortcut-modifiers").value
= modifiers
;
55 // If the first argument equals add
56 if(window
.arguments
[0] == "add")
58 document
.title
= stringBundle
.getString("webdeveloper_addTool");
62 document
.title
= stringBundle
.getString("webdeveloper_editTool");
64 document
.getElementById("webdeveloper.tool.description").value
= window
.arguments
[1];
65 document
.getElementById("webdeveloper.tool.key").value
= window
.arguments
[2];
67 // If the last argument equals the application tool type
68 if(window
.arguments
[4] == stringBundle
.getString("webdeveloper_application"))
70 document
.getElementById("webdeveloper.tool.path").value
= window
.arguments
[3];
72 else if(window
.arguments
[4] == stringBundle
.getString("webdeveloper_bookmarklet"))
74 var bookmarkletRadio
= document
.getElementById("webdeveloper-bookmarklet-radio");
76 document
.getElementById("webdeveloper.tool.bookmarklet").value
= window
.arguments
[3];
77 bookmarkletRadio
.radioGroup
.selectedItem
= bookmarkletRadio
;
79 document
.getElementById("webdeveloper-application-options").setAttribute("hidden", true);
80 document
.getElementById("webdeveloper-bookmarklet-options").setAttribute("hidden", false);
84 var urlRadio
= document
.getElementById("webdeveloper-url-radio");
86 document
.getElementById("webdeveloper.tool.url").value
= window
.arguments
[3];
87 urlRadio
.radioGroup
.selectedItem
= urlRadio
;
89 document
.getElementById("webdeveloper-application-options").setAttribute("hidden", true);
90 document
.getElementById("webdeveloper-url-options").setAttribute("hidden", false);
96 function webdeveloper_saveTool()
98 var bookmarklet
= document
.getElementById("webdeveloper.tool.bookmarklet").value
.trim();
99 var description
= document
.getElementById("webdeveloper.tool.description").value
.trim();
101 var key
= document
.getElementById("webdeveloper.tool.key").value
.trim();
102 var path
= document
.getElementById("webdeveloper.tool.path").value
.trim();
103 var stringBundle
= document
.getElementById("webdeveloper-string-bundle");
104 var url
= document
.getElementById("webdeveloper.tool.url").value
.trim();
106 // If the description is empty
109 errors
+= stringBundle
.getString("webdeveloper_emptyDescription") + "\n";
112 // If the application type is selected and the path is empty
113 if(document
.getElementById("webdeveloper-application-radio").selected
&& !path
)
115 errors
+= stringBundle
.getString("webdeveloper_applicationPath") + "\n";
117 /*else if(document.getElementById("webdeveloper-bookmarklet-radio").selected && !bookmarklet)
119 errors += stringBundle.getString("webdeveloper_emptyBookmarklet") + "\n";
121 else if(document
.getElementById("webdeveloper-url-radio").selected
&& !url
)
123 errors
+= stringBundle
.getString("webdeveloper_emptyURL") + "\n";
126 // If there are errors
129 webdeveloper_error(errors
.trim());
135 window
.opener
.webdeveloper_toolDescription
= description
;
136 window
.opener
.webdeveloper_toolKey
= key
;
138 // If the application type is selected
139 if(document
.getElementById("webdeveloper-application-radio").selected
)
141 window
.opener
.webdeveloper_toolBookmarklet
= null;
142 window
.opener
.webdeveloper_toolPath
= path
;
143 window
.opener
.webdeveloper_toolURL
= null;
145 /*else if(document.getElementById("webdeveloper-bookmarklet-radio").selected)
147 window.opener.webdeveloper_toolBookmarklet = bookmarklet;
148 window.opener.webdeveloper_toolPath = null;
149 window.opener.webdeveloper_toolURL = null;
153 window
.opener
.webdeveloper_toolBookmarklet
= null;
154 window
.opener
.webdeveloper_toolPath
= null;
155 window
.opener
.webdeveloper_toolURL
= url
;
162 // Toggles the tool type
163 function webdeveloper_toggleToolType()
165 document
.getElementById("webdeveloper-application-options").setAttribute("hidden", !document
.getElementById("webdeveloper-application-radio").selected
);
166 /*document.getElementById("webdeveloper-bookmarklet-options").setAttribute("hidden", !document.getElementById("webdeveloper-bookmarklet-radio").selected);*/
167 document
.getElementById("webdeveloper-url-options").setAttribute("hidden", !document
.getElementById("webdeveloper-url-radio").selected
);