框架树

/*
描述:框架树
编写:CoolHu
日期:2012-11-25
修改:
*/
SysTree = function (config) {

};
Ext.define('SysTree', {
    extend: 'Ext.tree.Panel',
    defaults: {
        id: "mySysTree",
        title: "Ext.tree.Panel",
        iconCls: "application_view_columns",
        region: "west",
        width: 240,
        height: 100,
        rootVisible: true,
        border: true,
        autoScroll: true,
        expanded: true,//自定义属性,是否展开
        viewConfig: {
            plugins: {
                ptype: 'treeviewdragdrop'//允许拖拽
            }
        },
        root: {
            id: "0",
            text: "树列表",
            expanded: false,
            draggable: false // 根节点不容许拖动
        },
        tools: [{
            id: "expand",
            type: 'expand',
            tooltip: '展开',
            handler: function (event, target, owner, tool) {
                Ext.getCmp(this.ownerCt.ownerCt.id).expandAll();
            }
        },
        {
            id: "collapse",
            type: 'collapse',
            tooltip: '折叠',
            handler: function (event, target, owner, tool) {
                Ext.getCmp(this.ownerCt.ownerCt.id).collapseAll();
            }
        }]
    },
    constructor: function (config) {
        var me = this;
        Ext.apply(me, config || {}, me.defaults);
        me.callParent([config]);

        //处理是否展开配置
        if (!me.root.expanded) {
            if (me.expanded) {
                me.expandAll();
            }
        }
    },
    GetTitle: function () {
        return this.title;
    },
    changeChildChecked: function (node, checked) {
        if (Ext.isArray(node)) {
            for (var i = node.length - 1; i >= 0; i--) {
                this.changeChildChecked(node[i], checked);
            }
        } else {
            //if (node.data.checked != null && checked == false) {
            if (node.data.checked != null) {
                node.set("checked", checked);
            }
            if (node.childNodes.length > 0) {
                this.changeChildChecked(node.childNodes, checked);
            }
        }
    },
    changeParentChecked: function (node, checked) {
        if (Ext.isArray(node)) {
            for (var i = node.length - 1; i >= 0; i--) {
                this.changeParentChecked(node[i], checked);
            }
        } else {
            if (node.data.checked != null && checked == true) {
                node.set("checked", checked);
            }
            if (node.parentNode != null) {
                this.changeParentChecked(node.parentNode, checked);
            }
        }
    },
    listeners: {
        checkchange: function (node, checked) {
            if (node.childNodes.length > 0) {
                this.changeChildChecked(node.childNodes, checked);
            }
            if (node.parentNode != null) {
                this.changeParentChecked(node.parentNode, checked);
            }
        }
    }
});

 

posted @ 2012-12-08 12:16  CoolHu  阅读(266)  评论(0编辑  收藏  举报