15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/*
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2008 Apple Inc. All Rights Reserved.
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met:
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *    notice, this list of conditions and the following disclaimer.
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *    notice, this list of conditions and the following disclaimer in the
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *    documentation and/or other materials provided with the distribution.
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/**
275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor
285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @extends {TreeElement}
295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.SidebarSectionTreeElement = function(title, representedObject, hasChildren)
315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TreeElement.call(this, title.escapeHTML(), representedObject || {}, hasChildren);
335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.expand();
345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.SidebarSectionTreeElement.prototype = {
375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    selectable: false,
385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    collapse: function()
405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        // Should not collapse as it is not selectable.
425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    get smallChildren()
455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        return this._smallChildren;
475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    set smallChildren(x)
505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this._smallChildren === x)
525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            return;
535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._smallChildren = x;
555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this._smallChildren)
57a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this._childrenListNode.classList.add("small");
585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        else
59a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this._childrenListNode.classList.remove("small");
605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    onattach: function()
635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
64a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        this._listItemNode.classList.add("sidebar-tree-section");
655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    onreveal: function()
685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this.listItemElement)
705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            this.listItemElement.scrollIntoViewIfNeeded(false);
715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    __proto__: TreeElement.prototype
745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/**
775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor
785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @extends {TreeElement}
79a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {string} className
80a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {string} title
815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string=} subtitle
82a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * @param {?Object=} representedObject
835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {boolean=} hasChildren
845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.SidebarTreeElement = function(className, title, subtitle, representedObject, hasChildren)
865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    TreeElement.call(this, "", representedObject, hasChildren);
885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    if (hasChildren) {
905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.disclosureButton = document.createElement("button");
915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.disclosureButton.className = "disclosure-button";
925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    }
935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    if (!this.iconElement) {
955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.iconElement = document.createElement("img");
965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.iconElement.className = "icon";
975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    }
985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.statusElement = document.createElement("div");
1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.statusElement.className = "status";
1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.titlesElement = document.createElement("div");
1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.titlesElement.className = "titles";
1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.titleElement = document.createElement("span");
1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.titleElement.className = "title";
1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.titlesElement.appendChild(this.titleElement);
1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.subtitleElement = document.createElement("span");
1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.subtitleElement.className = "subtitle";
1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.titlesElement.appendChild(this.subtitleElement);
1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.className = className;
1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.mainTitle = title;
1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    this.subtitle = subtitle;
1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.SidebarTreeElement.prototype = {
1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    get small()
1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        return this._small;
1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    set small(x)
1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._small = x;
1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this._listItemNode) {
1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            if (this._small)
130a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)                this._listItemNode.classList.add("small");
1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            else
132a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)                this._listItemNode.classList.remove("small");
1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        }
1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    get mainTitle()
1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        return this._mainTitle;
1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    set mainTitle(x)
1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._mainTitle = x;
1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.refreshTitles();
1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    get subtitle()
1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        return this._subtitle;
1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    set subtitle(x)
1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._subtitle = x;
1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this.refreshTitles();
1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    set wait(x)
1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (x)
161a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this._listItemNode.classList.add("wait");
1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        else
163a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this._listItemNode.classList.remove("wait");
1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    refreshTitles: function()
1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        var mainTitle = this.mainTitle;
1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this.titleElement.textContent !== mainTitle)
1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            this.titleElement.textContent = mainTitle;
1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        var subtitle = this.subtitle;
1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (subtitle) {
1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            if (this.subtitleElement.textContent !== subtitle)
1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)                this.subtitleElement.textContent = subtitle;
176a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this.titlesElement.classList.remove("no-subtitle");
1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        } else {
1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            this.subtitleElement.textContent = "";
179a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this.titlesElement.classList.add("no-subtitle");
1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        }
1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    isEventWithinDisclosureTriangle: function(event)
1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        return event.target === this.disclosureButton;
1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
1875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    onattach: function()
1895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
190a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)        this._listItemNode.classList.add("sidebar-tree-item");
1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this.className)
193a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this._listItemNode.classList.add(this.className);
1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this.small)
196a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)            this._listItemNode.classList.add("small");
1975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this.hasChildren && this.disclosureButton)
1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            this._listItemNode.appendChild(this.disclosureButton);
2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._listItemNode.appendChild(this.iconElement);
2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._listItemNode.appendChild(this.statusElement);
2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        this._listItemNode.appendChild(this.titlesElement);
2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    onreveal: function()
2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    {
2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        if (this._listItemNode)
2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)            this._listItemNode.scrollIntoViewIfNeeded(false);
2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    },
2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    __proto__: TreeElement.prototype
2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
214