home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 May / PCWorld_2003-05_cd.bin / Komunik / phoenix / chrome / browser.jar / content / browser / console / console.js < prev    next >
Text File  |  2002-10-12  |  4KB  |  187 lines

  1.  
  2. var gConsole, gConsoleBundle;
  3.  
  4. /* :::::::: Console Initialization ::::::::::::::: */
  5.  
  6. window.onload = function()
  7. {
  8.   gConsole = document.getElementById("ConsoleBox");
  9.   gConsoleBundle = document.getElementById("ConsoleBundle");
  10.   
  11.   top.controllers.insertControllerAt(0, ConsoleController);
  12.   
  13.   updateSortCommand(gConsole.sortOrder);
  14.   updateModeCommand(gConsole.mode);
  15.  
  16.   var iframe = document.getElementById("Evaluator");
  17.   iframe.addEventListener("load", displayResult, true);
  18. }
  19.  
  20. /* :::::::: Console UI Functions ::::::::::::::: */
  21.  
  22. function changeMode(aMode)
  23. {
  24.   switch (aMode) {
  25.     case "Errors":
  26.     case "Warnings":
  27.     case "Messages":
  28.       gConsole.mode = aMode;
  29.       break;
  30.     case "All":
  31.       gConsole.mode = null;
  32.   }
  33.   
  34.   document.persist("ConsoleBox", "mode");
  35. }
  36.  
  37. function clearConsole()
  38. {
  39.   gConsole.clear();
  40. }
  41.  
  42. function changeSortOrder(aOrder)
  43. {
  44.   updateSortCommand(gConsole.sortOrder = aOrder);
  45. }
  46.  
  47. function updateSortCommand(aOrder)
  48. {
  49.   var orderString = aOrder == 'reverse' ? "Descend" : "Ascend";
  50.   var bc = document.getElementById("Console:sort"+orderString);
  51.   bc.setAttribute("checked", true);  
  52.  
  53.   orderString = aOrder == 'reverse' ? "Ascend" : "Descend";
  54.   bc = document.getElementById("Console:sort"+orderString);
  55.   bc.setAttribute("checked", false);
  56. }
  57.  
  58. function updateModeCommand(aMode)
  59. {
  60.   var bc = document.getElementById("Console:mode" + aMode);
  61.   bc.setAttribute("checked", true);
  62. }
  63.  
  64. function toggleToolbar(aEl)
  65. {
  66.   var bc = document.getElementById(aEl.getAttribute("observes"));
  67.   var truth = bc.getAttribute("checked");
  68.   bc.setAttribute("checked", truth != "true");
  69.   var toolbar = document.getElementById(bc.getAttribute("_toolbar"));
  70.   toolbar.setAttribute("hidden", truth);
  71.  
  72.   document.persist(toolbar.id, "hidden");
  73.   document.persist(bc.id, "checked");
  74. }
  75.  
  76. function copyItemToClipboard()
  77. {
  78.   gConsole.copySelectedItem();
  79. }
  80.  
  81. function isItemSelected()
  82. {
  83.   return gConsole.selectedItem != null;
  84. }
  85.  
  86. function UpdateCopyMenu()
  87. {
  88.   goUpdateCommand("cmd_copy");
  89. }
  90.  
  91. function onEvalKeyPress(aEvent)
  92. {
  93.   if (aEvent.keyCode == 13)
  94.     evaluateTypein();
  95. }
  96.  
  97. function evaluateTypein()
  98. {
  99.   var code = document.getElementById("TextboxEval").value;
  100.   var iframe = document.getElementById("Evaluator");
  101.   iframe.setAttribute("src", "javascript: " + code);
  102. }
  103.  
  104. function displayResult()
  105. {
  106.   var result = Evaluator.document.documentElement.lastChild.firstChild;
  107.   if (result && result.data)
  108.     gConsole.mCService.logStringMessage(result.data);
  109.     // or could use appendMessage which doesn't persist
  110. }
  111.  
  112. /* :::::::: Command Controller for the Window ::::::::::::::: */
  113.  
  114. var ConsoleController = 
  115. {
  116.   isCommandEnabled: function (aCommand)
  117.   {
  118.     switch (aCommand) {
  119.       case "cmd_copy":
  120.         return isItemSelected();
  121.       default:
  122.         return false;
  123.     }
  124.   },
  125.   
  126.   supportsCommand: function (aCommand) 
  127.   {
  128.     switch (aCommand) {
  129.       case "cmd_copy":
  130.         return true;
  131.       default:
  132.         return false;
  133.     }
  134.   },
  135.   
  136.   doCommand: function (aCommand)
  137.   {
  138.     switch (aCommand) {
  139.       case "cmd_copy":
  140.         copyItemToClipboard();
  141.         break;
  142.       default:
  143.         break;
  144.     }
  145.   },
  146.   
  147.   onEvent: function (aEvent) 
  148.   {
  149.   }
  150. };
  151.  
  152. // XXX DEBUG
  153.  
  154. function debug(aText)
  155. {
  156.   var csClass = Components.classes['@mozilla.org/consoleservice;1'];
  157.   var cs = csClass.getService(Components.interfaces.nsIConsoleService);
  158.   cs.logStringMessage(aText);
  159. }
  160.  
  161. function getStackTrace()
  162. {
  163.   var frame = Components.stack.caller;
  164.   var str = "";
  165.   while (frame) {
  166.     if (frame.filename)
  167.       str += frame.filename + ", Line " + frame.lineNumber;
  168.     else
  169.       str += "[" + gConsoleBundle.getString("noFile") + "]";
  170.     
  171.     str += " --> ";
  172.     
  173.     if (frame.functionName)
  174.       str += frame.functionName;
  175.     else
  176.       str += "[" + gConsoleBundle.getString("noFunction") + "]";
  177.       
  178.     str += "\n";
  179.     
  180.     frame = frame.caller;
  181.   }
  182.   
  183.   return str;
  184. }
  185.  
  186.  
  187.