1 /* ***** BEGIN LICENSE BLOCK *****
  2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3  *
  4  * The contents of this file are subject to the Mozilla Public License Version
  5  * 1.1 (the "License"); you may not use this file except in compliance with
  6  * the License. You may obtain a copy of the License at
  7  * http://www.mozilla.org/MPL/
  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 MozMill Test code.
 15  *
 16  * The Initial Developer of the Original Code is the Mozilla Foundation.
 17  * Portions created by the Initial Developer are Copyright (C) 2010
 18  * the Initial Developer. All Rights Reserved.
 19  *
 20  * Contributor(s):
 21  *   Henrik Skupin <hskupin@mozilla.com>
 22  *
 23  * Alternatively, the contents of this file may be used under the terms of
 24  * either the GNU General Public License Version 2 or later (the "GPL"), or
 25  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 26  * in which case the provisions of the GPL or the LGPL are applicable instead
 27  * of those above. If you wish to allow use of your version of this file only
 28  * under the terms of either the GPL or the LGPL, and not to allow others to
 29  * use your version of this file under the terms of the MPL, indicate your
 30  * decision by deleting the provisions above and replace them with the notice
 31  * and other provisions required by the GPL or the LGPL. If you do not delete
 32  * the provisions above, a recipient may use your version of this file under
 33  * the terms of any one of the MPL, the GPL or the LGPL.
 34  *
 35  * ***** END LICENSE BLOCK ***** */
 36 
 37 var Inheritance = require("../external/inheritance");
 38 var Widgets = require("widgets");
 39 
 40 var TabBar = exports.TabBar = Inheritance.Class.extend(Widgets.Element, {
 41   initialize : function TabBar_initialize(parentNode) {
 42     this.parent(parentNode, "#TabsToolbar");
 43   },
 44 
 45   get tabs() {
 46     return new Tabs(this.node);
 47   }
 48 });
 49 
 50 var Tabs = exports.Tabs = Inheritance.Class.extend(Widgets.Element, {
 51   initialize : function Tabs_initialize(parentNode) {
 52     this.parent(parentNode, "#tabbrowser-tabs");
 53   },
 54 
 55   // TODO: Needs to go to mix-in class
 56   get rows() {
 57     var DOMUtils = require("dom_utils");
 58     var collector = new DOMUtils.nodeCollector(this.node);
 59     collector.queryNodes(".tabbrowser-tab");
 60     return collector.nodes;
 61   },
 62 
 63   get length() {
 64     return this.nodes.length;
 65   },
 66 
 67   at : function Tabs_at(index) {
 68     return this.rows[index];
 69   }
 70 });
 71