@dewesoft-web/grid
Version:
Dewesoft WebUI Grid
50 lines (37 loc) • 1.09 kB
text/typescript
import { autorun, observable } from "mobx";
import { EventEmitter, EventHandler } from "./EventEmitter";
export enum GroupEvent {
Initialize,
ExpandedChanged
}
export class GridGroupModel extends EventEmitter<GroupEvent> {
name : string;
expanded : boolean;
constructor(name : string, eventHandler? : EventHandler<GroupEvent>) {
super();
this.name = name;
this.expanded = true;
if (eventHandler) {
this.addEventHandler(eventHandler);
}
autorun(() => {
const isExpanded = this.expanded;
this.triggerEvent(GroupEvent.ExpandedChanged, {
expanded: isExpanded
});
});
}
isExpanded() {
return this.expanded;
}
onEvent(event : GroupEvent, ...args : any[]) {
switch (event) {
case GroupEvent.ExpandedChanged:
this.expanded = args[0];
break;
default:
break;
}
}
}