Commit 292b084e authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Move class tree logic switching handler to into Tree controller.

This way we can also easily remember the state of showPrivate
when switching between logics.
parent 4b009cc9
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
@@ -89,27 +89,6 @@ Ext.define('Docs.controller.Classes', {
            'classtree': {
                urlclick: function(url, event) {
                    this.handleUrlClick(url, event, this.getTree());
                },
                afterrender: function(cmp) {
                    cmp.el.addListener('click', function(e, el) {
                        var clicked = Ext.get(el),
                            selected = Ext.get(Ext.query('.cls-grouping button.selected')[0]);

                        if (selected.dom === clicked.dom) {
                            return;
                        }

                        selected.removeCls('selected');
                        clicked.addCls('selected');

                        if (clicked.hasCls('by-package')) {
                            this.getTree().setLogic(Docs.view.cls.PackageLogic);
                        } else {
                            this.getTree().setLogic(Docs.view.cls.InheritanceLogic);
                        }
                    }, this, {
                        delegate: 'button'
                    });
                }
            },

+25 −0
Original line number Diff line number Diff line
@@ -48,11 +48,36 @@ Ext.define('Docs.view.cls.Tree', {
            }
        ];

        this.on("afterrender", this.setupButtonClickHandler, this);

        this.callParent();
    },

    setupButtonClickHandler: function() {
        this.el.addListener('click', function(e, el) {
            var clicked = Ext.get(el),
            selected = Ext.get(Ext.query('.cls-grouping button.selected')[0]);

            if (selected.dom === clicked.dom) {
                return;
            }

            selected.removeCls('selected');
            clicked.addCls('selected');

            if (clicked.hasCls('by-package')) {
                this.setLogic(Docs.view.cls.PackageLogic, this.showPrivate);
            } else {
                this.setLogic(Docs.view.cls.InheritanceLogic, this.showPrivate);
            }
        }, this, {
            delegate: 'button'
        });
    },

    setLogic: function(logic, showPrivate) {
        this.logic = logic;
        this.showPrivate = showPrivate;
        var tree = new logic({classes: this.data, showPrivateClasses: showPrivate});
        if (this.root) {
            // remember the current selection