UNPKG

@dewesoft-web/grid2

Version:

Dewesoft WebUI Grid

34 lines (25 loc) 1.03 kB
import { EventArguments } from "@dewesoft-web/ui/events"; export type EventHandler<T> = (control : EventEmitter<T>, event : T, args : EventArguments, onSuccess? : Function, onFailure? : Function) => void; export class EventEmitter<T> { private eventHandlers : EventHandler<T>[]; constructor() { this.eventHandlers = []; } addEventHandler(handler : EventHandler<T>) { if (!handler) { throw new Error("Event handler must be valid function"); } this.eventHandlers.push(handler); } removeEventHandler(handler : EventHandler<T>) { const index = this.eventHandlers.indexOf(handler); if (index !== -1) { this.eventHandlers.splice(index, 1); } } protected triggerEvent(event : T, args : EventArguments, onSuccess? : Function, onFailure? : Function) { for (const handler of this.eventHandlers) { handler(this, event, args, onSuccess, onFailure); } } }