UNPKG

@dewesoft-web/grid

Version:

Dewesoft WebUI Grid

50 lines (37 loc) 1.09 kB
import { autorun, observable } from "mobx"; import { EventEmitter, EventHandler } from "./EventEmitter"; export enum GroupEvent { Initialize, ExpandedChanged } export class GridGroupModel extends EventEmitter<GroupEvent> { name : string; @observable 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; } } }