home *** CD-ROM | disk | FTP | other *** search
/ PC Advisor 2005 August / PCADVD_121.iso / internet / nsb-setup.exe / chrome / inspector.jar / content / inspector / search / inSearchTreeBuilder.js < prev    next >
Encoding:
JavaScript  |  2004-11-25  |  4.4 KB  |  143 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Netscape Public License
  5.  * Version 1.1 (the "License"); you may not use this file except in
  6.  * compliance with the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/NPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is mozilla.org code.
  15.  *
  16.  * The Initial Developer of the Original Code is 
  17.  * Netscape Communications Corporation.
  18.  * Portions created by the Initial Developer are Copyright (C) 2001
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *   Joe Hewitt <hewitt@netscape.com> (original author)
  23.  *
  24.  *
  25.  * Alternatively, the contents of this file may be used under the terms of
  26.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  27.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.  * in which case the provisions of the GPL or the LGPL are applicable instead
  29.  * of those above. If you wish to allow use of your version of this file only
  30.  * under the terms of either the GPL or the LGPL, and not to allow others to
  31.  * use your version of this file under the terms of the NPL, indicate your
  32.  * decision by deleting the provisions above and replace them with the notice
  33.  * and other provisions required by the GPL or the LGPL. If you do not delete
  34.  * the provisions above, a recipient may use your version of this file under
  35.  * the terms of any one of the NPL, the GPL or the LGPL.
  36.  *
  37.  * ***** END LICENSE BLOCK ***** */
  38.  
  39. /***************************************************************
  40. * inSearchTreeBuilder ------------------------------------------
  41. *  Utility for automatically building an rdf template and xul 
  42. *  tree structure from a tabular data set.
  43. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  44. * REQUIRED IMPORTS:
  45. * chrome://inspector/content/jsutil/inTreeBuilder.js
  46. ****************************************************************/
  47.  
  48. //////////// global variables /////////////////////
  49.  
  50. //////////// global constants ////////////////////
  51.  
  52. ////////////////////////////////////////////////////////////////////////////
  53. //// class inSearchTreeBuilder
  54.  
  55. function inSearchTreeBuilder(aTree, aNameSpace, aArcName)
  56. {
  57.   this.mBuilder = new inTreeTableBuilder(aTree, aNameSpace, aArcName);
  58.   aTree.setAttribute("ref", "inspector:searchResults");
  59.   this.mBuilder.initialize();
  60. }
  61.  
  62. inSearchTreeBuilder.prototype = 
  63. {
  64.   mCommited: false,
  65.   mBuilder: null,
  66.   mModule: null,
  67.   mCommitted: false,
  68.   
  69.   get tree() { return this.mBuilder.tree },
  70.   set tree(aVal) { this.mBuilder.tree = aVal },
  71.  
  72.   get isIconic() { return this.mBuilder.isIconic },
  73.   set isIconic(aVal) { this.mBuilder.isIconic = aVal },
  74.   
  75.   get module() { return this.mModule },
  76.   
  77.   set module(aModule) 
  78.   { 
  79.     if (aModule != this.mModule) {
  80.       if (this.mModule) {
  81.         if (this.mCommitted)
  82.           this.mBuilder.tree.database.RemoveDataSource(this.mModule.datasource);
  83.         this.mCommitted = false;
  84.         
  85.         this.mModule.removeSearchObserver(this);
  86.         this.mBuilder.reset();
  87.       }
  88.       
  89.       this.mModule = aModule;
  90.  
  91.       if (aModule) {
  92.         aModule.addSearchObserver(this);
  93.         
  94.         this.isIconic = aModule.defaultIconURL ? true : false;
  95.       
  96.         for (var i = 0; i < aModule.columnCount; i++)
  97.           this.mBuilder.addColumn(aModule.getColumn(i)); 
  98.   
  99.         this.mBuilder.build();
  100.       }
  101.     }
  102.   },
  103.  
  104.   getSelectedSearchIndex: function()
  105.   {
  106.     var tItem = this.mSearchTree.selectedItems[0];
  107.     return this.mSearchTree.getIndexOfItem(tItem);
  108.   },
  109.   
  110.   onSearchStart: function(aProcess)
  111.   {
  112.     if (this.mCommitted)
  113.       this.mBuilder.tree.database.RemoveDataSource(this.mModule.datasource);
  114.   },
  115.  
  116.   onSearchResult: function(aProcess)
  117.   {
  118.   },
  119.  
  120.   onSearchEnd: function(aProcess, aResult)
  121.   {
  122.     this.mBuilder.tree.database.AddDataSource(this.mModule.datasource);
  123.     this.mBuilder.buildContent();
  124.     this.mCommitted = true;
  125.   },
  126.  
  127.   onSearchError: function(aProcess, aMessage)
  128.   {
  129.   },
  130.   
  131.   reset: function()
  132.   {
  133.     this.mBuilder.reset();
  134.   },
  135.   
  136.   buildContent: function()
  137.   {
  138.     this.mBuilder.buildContent();
  139.   }
  140.  
  141. };
  142.  
  143.