Commit 2e6626c3 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Moved treeItemClick function to Tree view.

Now this expand/collapse logic is encapsulated inside the tree and
when class is clicked it fires classclick event which we can handle
in the controller.
parent 8e058025
Loading
Loading
Loading
Loading
+1 −27
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ Ext.define('Docs.controller.Classes', {

        this.control({
            '#treePanelCmp': {
                itemclick: this.treeItemClick
                classclick: Ext.Function.bind(this.loadClass, this)
            },

            '#classlist': {
@@ -155,32 +155,6 @@ Ext.define('Docs.controller.Classes', {
        });
    },

    treeItemClick: function(view, node, item, index, e) {
        var clsName = node.raw ? node.raw.clsName : node.data.clsName;

        if (clsName) {
            if (e.getTarget(".fav")) {
                var favEl = Ext.get(e.getTarget(".fav"));
                if (favEl.hasCls('show')) {
                    Docs.Favorites.remove(clsName);
                } else {
                    Docs.Favorites.add(clsName);
                }
            }
            else {
                this.loadClass(clsName);
            }
        }
        else if (!node.isLeaf()) {
            if (node.isExpanded()) {
                node.collapse(false);
            }
            else {
                node.expand(false);
            }
        }
    },

    /**
     * Returns base URL used for making AJAX requests.
     * @return {String} URL
+38 −0
Original line number Diff line number Diff line
@@ -20,6 +20,15 @@ Ext.define('Docs.view.tree.Tree', {
    bodyBorder: false,

    initComponent: function() {
        this.addEvents(
            /**
             * @event
             * Fired when class in tree was clicked on and needs to be loaded.
             * @param {String} cls  name of the class.
             */
            "classclick"
        );

        // Expand the main tree
        this.root.expanded = true;
        this.root.children[0].expanded = true;
@@ -31,6 +40,8 @@ Ext.define('Docs.view.tree.Tree', {
            }, this);
        }, this);

        this.on("itemclick", this.onItemClick, this);

        this.dockedItems = [
            {
                xtype: 'container',
@@ -78,6 +89,33 @@ Ext.define('Docs.view.tree.Tree', {
        }
    },

    onItemClick: function(view, node, item, index, e) {
        var clsName = node.raw ? node.raw.clsName : node.data.clsName;

        if (clsName) {
            if (e.getTarget(".fav")) {
                var favEl = Ext.get(e.getTarget(".fav"));
                if (favEl.hasCls('show')) {
                    Docs.Favorites.remove(clsName);
                }
                else {
                    Docs.Favorites.add(clsName);
                }
            }
            else {
                this.fireEvent("classclick", clsName);
            }
        }
        else if (!node.isLeaf()) {
            if (node.isExpanded()) {
                node.collapse(false);
            }
            else {
                node.expand(false);
            }
        }
    },

    /**
     * Selects class node in tree by name.
     *