home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 March / PCWorld_2007-03_cd.bin / komunikace / nvu / nvu-1.0-cs-CZ.win32.installer.exe / chrome / toolkit.jar / content / global / finddialog.js < prev    next >
Text File  |  2003-12-01  |  4KB  |  121 lines

  1.  
  2. var dialog;     // Quick access to document/form elements.
  3. var gFindInst;   // nsIWebBrowserFind that we're going to use
  4. var gFindInstData; // use this to update the find inst data
  5.  
  6. function initDialogObject()
  7. {
  8.   // Create dialog object and initialize.
  9.   dialog = new Object;
  10.   dialog.findKey         = document.getElementById("dialog.findKey");
  11.   dialog.caseSensitive   = document.getElementById("dialog.caseSensitive");
  12.   dialog.wrap            = document.getElementById("dialog.wrap");
  13.   dialog.find            = document.getElementById("btnFind");
  14.   dialog.up              = document.getElementById("radioUp");
  15.   dialog.down            = document.getElementById("radioDown");
  16.   dialog.rg              = dialog.up.radioGroup;
  17.   dialog.bundle          = null;
  18.  
  19.   // Move dialog to center, if it not been shown before
  20.   var windowElement = document.getElementById("findDialog");
  21.   if (!windowElement.hasAttribute("screenX") || !windowElement.hasAttribute("screenY"))
  22.   {
  23.     sizeToContent();
  24.     moveToAlertPosition();
  25.   }
  26. }
  27.  
  28. function fillDialog()
  29. {
  30.   // get the find service, which stores global find state
  31.   var findService = Components.classes["@mozilla.org/find/find_service;1"]
  32.                               .getService(Components.interfaces.nsIFindService);
  33.   
  34.   // Set initial dialog field contents. Use the gFindInst attributes first,
  35.   // this is necessary for window.find()
  36.   dialog.findKey.value           = gFindInst.searchString ? gFindInst.searchString : findService.searchString;
  37.   dialog.caseSensitive.checked   = gFindInst.matchCase ? gFindInst.matchCase : findService.matchCase;
  38.   // Don't initialize Wrap here, we just want it to be checked. 
  39.   var findBackwards              = gFindInst.findBackwards ? gFindInst.findBackwards : findService.findBackwards;
  40.   if (findBackwards)
  41.     dialog.rg.selectedItem = dialog.up;
  42.   else
  43.     dialog.rg.selectedItem = dialog.down;
  44. }
  45.  
  46. function saveFindData()
  47. {
  48.   // get the find service, which stores global find state
  49.   var findService = Components.classes["@mozilla.org/find/find_service;1"]
  50.                          .getService(Components.interfaces.nsIFindService);
  51.  
  52.   // Set data attributes per user input.
  53.   findService.searchString  = dialog.findKey.value;
  54.   findService.matchCase     = dialog.caseSensitive.checked;
  55.   findService.wrapFind      = dialog.wrap.checked;
  56.   findService.findBackwards = dialog.up.selected;
  57. }
  58.  
  59. function onLoad()
  60. {
  61.   initDialogObject();
  62.  
  63.   // get the find instance
  64.   var arg0 = window.arguments[0];                                               
  65.   if (arg0 instanceof window.opener.nsFindInstData) {
  66.     gFindInstData = arg0;                                                       
  67.     gFindInst = gFindInstData.webBrowserFind;                                   
  68.   } else {                                                                      
  69.     // If the dialog was opened from window.find(), findInst will be an         
  70.     // nsISupports interface, so QueryInterface anyway to nsIWebBrowserFind.    
  71.     gFindInst = arg0.QueryInterface(Components.interfaces.nsIWebBrowserFind);   
  72.   }                                                                             
  73.  
  74.   fillDialog();
  75.   doEnabling();
  76.  
  77.   if (dialog.findKey.value)
  78.     dialog.findKey.select();
  79.   dialog.findKey.focus();
  80. }
  81.  
  82. function onUnload()
  83. {
  84.   window.opener.findDialog = 0;
  85. }
  86.  
  87. function onAccept()
  88. {
  89.   if (gFindInstData && gFindInst != gFindInstData.webBrowserFind) {
  90.     gFindInstData.init();             
  91.     gFindInst = gFindInstData.webBrowserFind;
  92.   }
  93.  
  94.   // Transfer dialog contents to the find service.
  95.   saveFindData();
  96.  
  97.   // set up the find instance
  98.   gFindInst.searchString  = dialog.findKey.value;
  99.   gFindInst.matchCase     = dialog.caseSensitive.checked;
  100.   gFindInst.wrapFind      = dialog.wrap.checked;
  101.   gFindInst.findBackwards = dialog.up.selected;
  102.   
  103.   // Search.
  104.   var result = gFindInst.findNext();
  105.  
  106.   if (!result)
  107.   {
  108.     if (!dialog.bundle)
  109.       dialog.bundle = document.getElementById("findBundle");
  110.     window.alert(dialog.bundle.getString("notFoundWarning"));
  111.     dialog.findKey.select();
  112.     dialog.findKey.focus();
  113.   } 
  114.   return false;
  115. }
  116.  
  117. function doEnabling()
  118. {
  119.   dialog.find.disabled = !dialog.findKey.value;
  120. }
  121.