@dewesoft-web/grid2
Version:
Dewesoft WebUI Grid
59 lines (46 loc) • 1.39 kB
text/typescript
import { WebControl, CommonEvent } from "../../ui/events";
import { observable } from "mobx";
import { ControlModel } from "../../ui/controls/ControlModel";
enum MenuEvent {
DisplayChanged,
ElementClick
}
export class ContextMenuModel extends ControlModel<MenuEvent> {
display : string;
constructor(name : string, options) {
super(WebControl.Button, name, options);
this.setOptions(options);
}
onClick() {
this.triggerEvent(MenuEvent.ElementClick);
}
onInitialized() {
this.triggerCommon(CommonEvent.Initialized, {
display: this.display
});
}
updateOptions(props) {
if (this.display !== props.display) {
this.display = props.display;
}
}
protected setOptions(options) {
this.display = options.display;
}
protected onEvent(event : MenuEvent, name : string, ...args : any[]) {
if (this.name !== name) {
return;
}
switch (event) {
case MenuEvent.ElementClick:
break;
case MenuEvent.DisplayChanged:
this.display = args[0];
break;
default:
super.onEvent(event, name, ...args);
break;
}
}
}