|
|
|
import {
|
|
|
|
shortcut,
|
|
|
|
Widget,
|
|
|
|
extend,
|
|
|
|
i18nText,
|
|
|
|
emptyFn,
|
|
|
|
createWidget,
|
|
|
|
Controller,
|
|
|
|
VerticalLayout,
|
|
|
|
isArray
|
|
|
|
} from "@/core";
|
|
|
|
import { MultiLayerSingleLevelTree } from "./multilayersingletree.leveltree";
|
|
|
|
|
|
|
|
@shortcut()
|
|
|
|
export class MultiLayerSingleTreePopup extends Widget {
|
|
|
|
static xtype = "bi.multilayer_single_tree_popup";
|
|
|
|
|
|
|
|
static EVENT_CHANGE = "EVENT_CHANGE";
|
|
|
|
|
|
|
|
_defaultConfig() {
|
|
|
|
return extend(super._defaultConfig(...arguments), {
|
|
|
|
baseCls: "bi-multilayer-singletree-popup",
|
|
|
|
tipText: i18nText("BI-No_Selected_Item"),
|
|
|
|
isDefaultInit: false,
|
|
|
|
itemsCreator: emptyFn,
|
|
|
|
items: [],
|
|
|
|
onLoaded: emptyFn,
|
|
|
|
minHeight: 240,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
_init() {
|
|
|
|
super._init(...arguments);
|
|
|
|
|
|
|
|
const self = this,
|
|
|
|
o = this.options;
|
|
|
|
|
|
|
|
this.tree = createWidget({
|
|
|
|
type: MultiLayerSingleLevelTree.xtype,
|
|
|
|
isDefaultInit: o.isDefaultInit,
|
|
|
|
items: o.items,
|
|
|
|
itemsCreator: o.itemsCreator,
|
|
|
|
keywordGetter: o.keywordGetter,
|
|
|
|
value: o.value,
|
|
|
|
scrollable: null,
|
|
|
|
onLoaded() {
|
|
|
|
self.tree.check();
|
|
|
|
o.onLoaded();
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
createWidget({
|
|
|
|
type: VerticalLayout.xtype,
|
|
|
|
scrolly: false,
|
|
|
|
scrollable: true,
|
|
|
|
element: this,
|
|
|
|
vgap: 5,
|
|
|
|
items: [this.tree],
|
|
|
|
});
|
|
|
|
|
|
|
|
this.tree.on(Controller.EVENT_CHANGE, function () {
|
|
|
|
self.fireEvent(Controller.EVENT_CHANGE, arguments);
|
|
|
|
});
|
|
|
|
|
|
|
|
this.tree.on(MultiLayerSingleLevelTree.EVENT_CHANGE, () => {
|
|
|
|
self.fireEvent(MultiLayerSingleTreePopup.EVENT_CHANGE);
|
|
|
|
});
|
|
|
|
|
|
|
|
this.tree.css("min-height", BI.pixFormat(o.minHeight - 10));
|
|
|
|
}
|
|
|
|
|
|
|
|
getValue() {
|
|
|
|
return this.tree.getValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
setValue(v) {
|
|
|
|
v = isArray(v) ? v : [v];
|
|
|
|
this.tree.setValue(v);
|
|
|
|
}
|
|
|
|
|
|
|
|
populate(items) {
|
|
|
|
this.tree.populate(items);
|
|
|
|
}
|
|
|
|
}
|