home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / mozil06.zip / bin / chrome / toolkit.jar / content / global / commonDialog.js < prev    next >
Text File  |  2001-02-14  |  7KB  |  220 lines

  1. /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public
  4.  * License Version 1.1 (the "License"); you may not use this file
  5.  * except in compliance with the License. You may obtain a copy of
  6.  * the License at http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the License is distributed on an "AS
  9.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  10.  * implied. See the License for the specific language governing
  11.  * rights and limitations under the License.
  12.  *
  13.  * The Original Code is Mozilla Communicator client code.
  14.  *
  15.  * The Initial Developer of the Original Code is Netscape Communications
  16.  * Corporation.  Portions created by Netscape are
  17.  * Copyright (C) 1998 Netscape Communications Corporation. All
  18.  * Rights Reserved.
  19.  *
  20.  * Contributor(s):
  21.  *  Alec Flett <alecf@netscape.com>
  22.  *  Ben Goodger <ben@netscape.com>
  23.  */
  24.  
  25. var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
  26.  
  27. function commonDialogOnLoad()
  28. {
  29.   doSetOKCancel(commonDialogOnOK, commonDialogOnCancel, commonDialogOnButton2, commonDialogOnButton3);
  30.   param = window.arguments[0].QueryInterface(Components.interfaces.nsIDialogParamBlock);
  31.     
  32.   // display the main text
  33.     var messageText = param.GetString(0);
  34.   var messageParent = document.getElementById("info.box");
  35.   var messageParagraphs = messageText.split("\n");
  36.   
  37.   for (var i = 0; i < messageParagraphs.length; i++)
  38.     {
  39.       var htmlNode = document.createElement("html");
  40.       //htmlNode.setAttribute("style", "max-width: 45em;");
  41.       var text = document.createTextNode(messageParagraphs[i]);
  42.       htmlNode.appendChild(text);
  43.       messageParent.appendChild(htmlNode);
  44.     }
  45.   
  46.   setElementText("info.header", param.GetString(3), true); 
  47.     
  48.   // set the window title
  49.   window.title = param.GetString(12);
  50.   
  51.   // set the icon    
  52.   var iconElement = document.getElementById("info.icon");
  53.   var iconURL = param.GetString(2);
  54.   if (iconURL) iconElement.setAttribute("src", iconURL);
  55.   
  56.   // set the number of command buttons
  57.   var nButtons = param.GetInt(2);
  58.   if (nButtons == 1) hideElementById("cancel");
  59.   switch (nButtons)
  60.     {
  61.       case 4:
  62.         unHideElementByID("Button3");
  63.         setElementText("Button3", param.GetString(11));
  64.         // fall through
  65.       case 3:
  66.         unHideElementByID("Button2");
  67.         setElementText("Button2", param.GetString(10));
  68.         // fall through
  69.       default:
  70.       case 2:
  71.         var string = param.GetString(8);
  72.         if (string) setElementText("ok", string);
  73.         // fall through
  74.       case 1:
  75.         string = param.GetString(9);
  76.         if (string) setElementText("cancel", string);
  77.         break;
  78.     }
  79.  
  80.   // initialize the checkbox
  81.   setCheckbox(param.GetString(1), param.GetInt(1));
  82.     
  83.   // initialize the edit fields
  84.     var nEditFields = param.GetInt(3);
  85.   switch (nEditFields)
  86.     {
  87.       case 2:
  88.         var password2Container = document.getElementById("password2EditField");
  89.         password2Container.removeAttribute("collapsed");
  90.         var password2Field = document.getElementById("dialog.password2");
  91.         password2Field.value = param.GetString(7);
  92.         
  93.         var password2Label = param.GetString(5);
  94.         if (password2Label) setElementText("password2.text", password2Label);
  95.         
  96.         var containerID, fieldID, labelID;
  97.         if (param.GetInt(4) == 1)
  98.           {
  99.             // two password fields ('password' and 'retype password')
  100.             containerID = "password1EditField";
  101.             fieldID = "dialog.password1";
  102.             labelID = "password1.text";
  103.           }
  104.         else
  105.           {
  106.             containerID = "loginEditField";
  107.             fieldID = "dialog.loginname";
  108.             labelID = "login.text";
  109.           }
  110.           
  111.         unHideElementByID(containerID);
  112.         var field = document.getElementById(fieldID);
  113.         field.value = param.GetString(6);
  114.             
  115.         var label = param.GetString(4);
  116.         if (label) setElementText(labelID, label);
  117.         field.focus();
  118.  
  119.         break;
  120.     case 1:
  121.       var editFieldIsPassword = param.GetInt(4);
  122.       var containerID, fieldID;
  123.       if (editFieldIsPassword == 1) 
  124.         {
  125.           containerID = "password1EditField";
  126.           fieldID = "dialog.password1";
  127.           setElementText("password1.text", ""); // hide the meaningless text
  128.         }
  129.       else
  130.         {
  131.           containerID = "loginEditField";
  132.           fieldID = "dialog.loginname";
  133.           setElementText("login.text", param.GetString(4));
  134.         }
  135.       
  136.       unHideElementByID(containerID);
  137.       var field = document.getElementById(fieldID);
  138.       field.value = param.GetString(6);
  139.       field.focus();
  140.       break;
  141.   }    
  142.  
  143.     // set the pressed button to cancel to handle the case where the close box is pressed
  144.     param.SetInt(0, 1);
  145.  
  146. }
  147.  
  148. function setCheckbox (aChkMsg, aChkValue)
  149. {
  150.   if (aChkMsg)
  151.   {    
  152.     var checkboxElement = document.getElementById("checkbox");
  153.     unHideElementByID("checkboxContainer");
  154.     checkboxElement.setAttribute("value", aChkMsg);
  155.     checkboxElement.checked = aChkValue > 0 ? true : false;
  156.   }
  157. }
  158.  
  159. function unHideElementByID (aElementID)
  160. {
  161.   var element = document.getElementById(aElementID);
  162.   element.removeAttribute("collapsed");
  163. }
  164.  
  165. function hideElementById (aElementID)
  166. {
  167.   var element = document.getElementById(aElementID)
  168.   element.setAttribute("collapsed", "true");
  169. }
  170.  
  171. function onCheckboxClick(aCheckboxElement)
  172. {
  173.   param.SetInt(1, aCheckboxElement.checked);
  174. }
  175.  
  176. function setElementText(aElementID, aValue, aChildNodeFlag)
  177. {
  178.     var element = document.getElementById(aElementID);
  179.   if (!aChildNodeFlag && element)
  180.     element.setAttribute("value", aValue);
  181.   else if (aChildNodeFlag && element)
  182.     element.appendChild(document.createTextNode(aValue));
  183. }
  184.  
  185.  
  186. function commonDialogOnOK()
  187. {
  188.     param.SetInt(0, 0 );
  189.     var numEditfields = param.GetInt( 3 );
  190.     if (numEditfields == 2) 
  191.     {
  192.       var editField2 = document.getElementById("dialog.password2");
  193.       param.SetString(7, editField2.value);
  194.     }
  195.   var editfield1Password = param.GetInt(4);
  196.   var editField1 = editfield1Password == 1 ? document.getElementById("dialog.password1") :
  197.                                              document.getElementById("dialog.loginname");
  198.   param.SetString(6, editField1.value);
  199.   return true;
  200. }
  201.  
  202. function commonDialogOnCancel()
  203. {
  204.     param.SetInt(0, 1);
  205.     return true;
  206. }
  207.  
  208. function commonDialogOnButton2()
  209. {
  210.     param.SetInt(0, 2);
  211.     return true;
  212. }
  213.  
  214. function commonDialogOnButton3()
  215. {
  216.     param.SetInt(0, 3);
  217.     return true;
  218. }
  219.  
  220.