toolkit/components/console/content/console.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/components/console/content/console.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,111 @@
     1.4 +// -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
     1.5 +
     1.6 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.9 +
    1.10 +Components.utils.import("resource://gre/modules/Services.jsm");
    1.11 +
    1.12 +var gConsole, gConsoleBundle, gTextBoxEval, gEvaluator, gCodeToEvaluate;
    1.13 +var gFilter;
    1.14 +
    1.15 +/* :::::::: Console Initialization ::::::::::::::: */
    1.16 +
    1.17 +window.onload = function()
    1.18 +{
    1.19 +  gConsole = document.getElementById("ConsoleBox");
    1.20 +  gConsoleBundle = document.getElementById("ConsoleBundle");
    1.21 +  gTextBoxEval = document.getElementById("TextboxEval");
    1.22 +  gEvaluator = document.getElementById("Evaluator");
    1.23 +  gFilter = document.getElementById("Filter");
    1.24 +  
    1.25 +  updateSortCommand(gConsole.sortOrder);
    1.26 +  updateModeCommand(gConsole.mode);
    1.27 +
    1.28 +  gEvaluator.addEventListener("load", loadOrDisplayResult, true);
    1.29 +}
    1.30 +
    1.31 +/* :::::::: Console UI Functions ::::::::::::::: */
    1.32 +
    1.33 +function changeFilter()
    1.34 +{
    1.35 +  gConsole.filter = gFilter.value;
    1.36 +
    1.37 +  document.persist("ConsoleBox", "filter");
    1.38 +}
    1.39 +
    1.40 +function changeMode(aMode)
    1.41 +{
    1.42 +  switch (aMode) {
    1.43 +    case "Errors":
    1.44 +    case "Warnings":
    1.45 +    case "Messages":
    1.46 +      gConsole.mode = aMode;
    1.47 +      break;
    1.48 +    case "All":
    1.49 +      gConsole.mode = null;
    1.50 +  }
    1.51 +  
    1.52 +  document.persist("ConsoleBox", "mode");
    1.53 +}
    1.54 +
    1.55 +function clearConsole()
    1.56 +{
    1.57 +  gConsole.clear();
    1.58 +}
    1.59 +
    1.60 +function changeSortOrder(aOrder)
    1.61 +{
    1.62 +  updateSortCommand(gConsole.sortOrder = aOrder);
    1.63 +}
    1.64 +
    1.65 +function updateSortCommand(aOrder)
    1.66 +{
    1.67 +  var orderString = aOrder == 'reverse' ? "Descend" : "Ascend";
    1.68 +  var bc = document.getElementById("Console:sort"+orderString);
    1.69 +  bc.setAttribute("checked", true);  
    1.70 +
    1.71 +  orderString = aOrder == 'reverse' ? "Ascend" : "Descend";
    1.72 +  bc = document.getElementById("Console:sort"+orderString);
    1.73 +  bc.setAttribute("checked", false);
    1.74 +}
    1.75 +
    1.76 +function updateModeCommand(aMode)
    1.77 +{
    1.78 +  /* aMode can end up invalid if it set by an extension that replaces */
    1.79 +  /* mode and then it is uninstalled or disabled */
    1.80 +  var bc = document.getElementById("Console:mode" + aMode) ||
    1.81 +           document.getElementById("Console:modeAll");
    1.82 +  bc.setAttribute("checked", true);
    1.83 +}
    1.84 +
    1.85 +function onEvalKeyPress(aEvent)
    1.86 +{
    1.87 +  if (aEvent.keyCode == 13)
    1.88 +    evaluateTypein();
    1.89 +}
    1.90 +
    1.91 +function evaluateTypein()
    1.92 +{
    1.93 +  gCodeToEvaluate = gTextBoxEval.value;
    1.94 +  // reset the iframe first; the code will be evaluated in loadOrDisplayResult
    1.95 +  // below, once about:blank has completed loading (see bug 385092)
    1.96 +  gEvaluator.contentWindow.location = "about:blank";
    1.97 +}
    1.98 +
    1.99 +function loadOrDisplayResult()
   1.100 +{
   1.101 +  if (gCodeToEvaluate) {
   1.102 +    gEvaluator.contentWindow.location = "javascript: " +
   1.103 +                                        gCodeToEvaluate.replace(/%/g, "%25");
   1.104 +    gCodeToEvaluate = "";
   1.105 +    return;
   1.106 +  }
   1.107 +
   1.108 +  var resultRange = gEvaluator.contentDocument.createRange();
   1.109 +  resultRange.selectNode(gEvaluator.contentDocument.documentElement);
   1.110 +  var result = resultRange.toString();
   1.111 +  if (result)
   1.112 +    Services.console.logStringMessage(result);
   1.113 +    // or could use appendMessage which doesn't persist
   1.114 +}

mercurial