import { BasicButton } from "./button.basic"; import { shortcut, extend, Controller, Events } from "@/core"; /** * 表示一个可以展开的节点, 不仅有选中状态而且有展开状态 * * Created by GUY on 2015/9/9. * @class NodeButton * @extends BasicButton * @abstract */ @shortcut() export class NodeButton extends BasicButton { static xtype = "bi.node_button"; _defaultConfig() { const conf = super._defaultConfig(...arguments); return extend(conf, { _baseCls: `${conf._baseCls || ""} bi-node`, open: false, once: false, }); } _initRef() { if (this.isOpened()) { this.setOpened(this.isOpened()); } super._initRef(...arguments); } doClick() { super.doClick(...arguments); this.setOpened(!this.isOpened()); } isOpened() { return !!this.options.open; } setOpened(b) { this.options.open = !!b; } triggerCollapse() { if (this.isOpened()) { this.setOpened(false); this.fireEvent(Controller.EVENT_CHANGE, Events.COLLAPSE, this.getValue(), this); } } triggerExpand() { if (!this.isOpened()) { this.setOpened(true); this.fireEvent(Controller.EVENT_CHANGE, Events.EXPAND, this.getValue(), this); } } }