1 # -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 # ***** BEGIN LICENSE BLOCK *****
3 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 # The contents of this file are subject to the Mozilla Public License Version
6 # 1.1 (the "License"); you may not use this file except in compliance with
7 # the License. You may obtain a copy of the License at
8 # http://www.mozilla.org/MPL/
10 # Software distributed under the License is distributed on an "AS IS" basis,
11 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 # for the specific language governing rights and limitations under the
15 # The Original Code is mozilla.org code.
17 # The Initial Developer of the Original Code is
18 # Netscape Communications Corporation.
19 # Portions created by the Initial Developer are Copyright (C) 1998
20 # the Initial Developer. All Rights Reserved.
23 # Joe Hewitt <hewitt@netscape.com>
24 # Simon Bünzli <zeniko@gmail.com>
26 # Alternatively, the contents of this file may be used under the terms of
27 # either the GNU General Public License Version 2 or later (the "GPL"), or
28 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 # in which case the provisions of the GPL or the LGPL are applicable instead
30 # of those above. If you wish to allow use of your version of this file only
31 # under the terms of either the GPL or the LGPL, and not to allow others to
32 # use your version of this file under the terms of the MPL, indicate your
33 # decision by deleting the provisions above and replace them with the notice
34 # and other provisions required by the GPL or the LGPL. If you do not delete
35 # the provisions above, a recipient may use your version of this file under
36 # the terms of any one of the MPL, the GPL or the LGPL.
38 # ***** END LICENSE BLOCK *****
40 var gConsole, gConsoleBundle, gTextBoxEval, gEvaluator, gCodeToEvaluate;
42 /* :::::::: Console Initialization ::::::::::::::: */
44 window.onload = function()
46 gConsole = document.getElementById("ConsoleBox");
47 gConsoleBundle = document.getElementById("ConsoleBundle");
48 gTextBoxEval = document.getElementById("TextboxEval")
49 gEvaluator = document.getElementById("Evaluator");
51 updateSortCommand(gConsole.sortOrder);
52 updateModeCommand(gConsole.mode);
54 gEvaluator.addEventListener("load", loadOrDisplayResult, true);
57 /* :::::::: Console UI Functions ::::::::::::::: */
59 function changeMode(aMode)
65 gConsole.mode = aMode;
71 document.persist("ConsoleBox", "mode");
74 function clearConsole()
79 function changeSortOrder(aOrder)
81 updateSortCommand(gConsole.sortOrder = aOrder);
84 function updateSortCommand(aOrder)
86 var orderString = aOrder == 'reverse' ? "Descend" : "Ascend";
87 var bc = document.getElementById("Console:sort"+orderString);
88 bc.setAttribute("checked", true);
90 orderString = aOrder == 'reverse' ? "Ascend" : "Descend";
91 bc = document.getElementById("Console:sort"+orderString);
92 bc.setAttribute("checked", false);
95 function updateModeCommand(aMode)
97 var bc = document.getElementById("Console:mode" + aMode);
98 bc.setAttribute("checked", true);
101 function onEvalKeyPress(aEvent)
103 if (aEvent.keyCode == 13)
107 function evaluateTypein()
109 gCodeToEvaluate = gTextBoxEval.value;
110 // reset the iframe first; the code will be evaluated in loadOrDisplayResult
111 // below, once about:blank has completed loading (see bug 385092)
112 gEvaluator.contentWindow.location = "about:blank";
115 function loadOrDisplayResult()
117 if (gCodeToEvaluate) {
118 gEvaluator.contentWindow.location = "javascript: " +
119 gCodeToEvaluate.replace(/%/g, "%25");
120 gCodeToEvaluate = "";
124 var resultRange = gEvaluator.contentDocument.createRange();
125 resultRange.selectNode(gEvaluator.contentDocument.documentElement);
126 var result = resultRange.toString();
128 gConsole.mCService.logStringMessage(result);
129 // or could use appendMessage which doesn't persist
133 function debug(aText)
135 var csClass = Components.classes['@mozilla.org/consoleservice;1'];
136 var cs = csClass.getService(Components.interfaces.nsIConsoleService);
137 cs.logStringMessage(aText);