UNPKG

devexpress-gantt

Version:

DevExpress Gantt Control

173 lines (165 loc) 8.38 kB
import { ResourcesDialogParameters } from "../../Dialogs/DialogParameters/ResourcesDialogParameters"; import { TaskEditParameters } from "../../Dialogs/DialogParameters/TaskEditParameters"; import { ITaskUpdateValues } from "../Entities/ITaskUpdateValues"; import { ResourceAssignment } from "../Entities/ResourceAssignment"; import { Task } from "../Entities/Task"; import { DependencyInsertingArguments } from "../Events/Dependency/DependencyInsertingArguments"; import { DependencyRemovingArguments } from "../Events/Dependency/DependencyRemovingArguments"; import { ResourceManagerDialogShowingArguments } from "../Events/Dialogs/ResourceManagerDialogShowingArguments"; import { TaskEditDialogShowingArguments } from "../Events/Dialogs/TaskEditDialogShowingArguments"; import { ResourceInsertingArguments } from "../Events/Resource/ResourceInsertingArguments"; import { ResourceRemovingArguments } from "../Events/Resource/ResourceRemovingArguments"; import { ResourceAssigningArguments } from "../Events/ResourceAssignment/ResourceAssigningArguments"; import { ResourceUnassigningArguments } from "../Events/ResourceAssignment/ResourceUnassigningArguments"; import { TaskInsertingArguments } from "../Events/Task/TaskInsertingArguments"; import { TaskRemovingArguments } from "../Events/Task/TaskRemovingArguments"; import { TaskUpdatingArguments } from "../Events/Task/TaskUpdatingArguments"; import { EventDispatcher } from "./EventDispatcher"; export class ModelChangesDispatcher { onModelChanged: EventDispatcher = new EventDispatcher(); private isLocked: boolean = false; notifyTaskCreating(args: TaskInsertingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskCreating", args); } notifyTaskCreated(task: any, callback: (id: any) => void, errorCallback: () => void): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskCreated", task, callback, errorCallback); } notifyTaskRemoving(args: TaskRemovingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskRemoving", args); } notifyTaskRemoved(taskID: any, errorCallback: () => void, task: any): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskRemoved", taskID, errorCallback, task); } notifyTaskUpdating(args: TaskUpdatingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskUpdating", args); } notifyTaskMoving(args: TaskUpdatingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskMoving", args); } notifyTaskEditDialogShowing(args: TaskEditDialogShowingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskEditDialogShowing", args); } notifyResourceManagerDialogShowing(args: ResourceManagerDialogShowingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceManagerDialogShowing", args); } notifyTaskUpdated(taskID: any, newValues: Record<string, any>, errorCallback: () => void): void { if(!this.isLocked) this.onModelChanged.raise("NotifyTaskUpdated", taskID, newValues, errorCallback); } notifyParentTaskUpdated(task: Task, errorCallback: () => void): void { if(!this.isLocked) this.onModelChanged.raise("NotifyParentTaskUpdated", task, errorCallback); } notifyDependencyInserting(args: DependencyInsertingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyDependencyInserting", args); } notifyDependencyInserted(dependency: any, callback: (id: any) => void, errorCallback: () => void): void { if(!this.isLocked) this.onModelChanged.raise("NotifyDependencyInserted", dependency, callback, errorCallback); } notifyDependencyRemoving(args: DependencyRemovingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyDependencyRemoving", args); } notifyDependencyRemoved(dependencyID: any, errorCallback: () => void, dependency: any): void { if(!this.isLocked) this.onModelChanged.raise("NotifyDependencyRemoved", dependencyID, errorCallback, dependency); } notifyResourceCreating(args: ResourceInsertingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceCreating", args); } notifyResourceCreated(resource: any, callback: (id: any) => void, errorCallback: () => void): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceCreated", resource, callback, errorCallback); } notifyResourceRemoving(args: ResourceRemovingArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceRemoving", args); } notifyResourceRemoved(resourceID: any, errorCallback: () => void, resource: any): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceRemoved", resourceID, errorCallback, resource); } notifyResourceColorChanged(resourceID: any, newValue: string, errorCallback: () => void): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceColorChanged", resourceID, newValue, errorCallback); } notifyResourceAssigning(args: ResourceAssigningArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceAssigning", args); } notifyResourceAssigned(assignment: any, callback: (id: any) => void, errorCallback: () => void): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceAssigned", assignment, callback, errorCallback); } notifyResourceUnassigning(args: ResourceUnassigningArguments): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceUnassigning", args); } notifyResourceUnassigned(assignmentID: any, errorCallback: () => void, assignment: any): void { if(!this.isLocked) this.onModelChanged.raise("NotifyResourceUnassigned", assignmentID, errorCallback, assignment); } notifyParentDataRecalculated(data: any): void { this.onModelChanged.raise("NotifyParentDataRecalculated", data); } notifyScaleCellPrepared(data: Record<string, any>): void { this.onModelChanged.raise("NotifyScaleCellPrepared", data); } notifyGanttViewUpdated(): void { this.onModelChanged.raise("NotifyGanttViewUpdated"); } fireResourceUnassigning(assignment: ResourceAssignment): boolean { const args = new ResourceUnassigningArguments(assignment); this.notifyResourceUnassigning(args); return !args.cancel; } raiseTaskUpdating(task: Task, newValues: ITaskUpdateValues, callback:(newValues: any) => void): boolean { const args = new TaskUpdatingArguments(task, newValues); this.notifyTaskUpdating(args); if(!args.cancel) { callback(args.newValues); return true; } return false; } raiseTaskMoving(task: Task, newStart: Date, newEnd: Date, callback:(newStart, newEnd: Date) => void): boolean { const args = new TaskUpdatingArguments(task, { start: newStart, end: newEnd }); this.notifyTaskMoving(args); if(!args.cancel) { callback(args["start"], args["end"]); return true; } return false; } raiseTaskTaskEditDialogShowing(params: TaskEditParameters, callback:(args: TaskEditDialogShowingArguments) => void): boolean { const args = new TaskEditDialogShowingArguments(params); this.notifyTaskEditDialogShowing(args); if(!args.cancel) { callback(args); return true; } return false; } raiseResourceManagerDialogShowing(params: ResourcesDialogParameters, callback:(args: ResourceManagerDialogShowingArguments) => void): boolean { const args = new ResourceManagerDialogShowingArguments(params); this.notifyResourceManagerDialogShowing(args); if(!args.cancel) { callback(args); return true; } return false; } public lock(): void { this.isLocked = true; } public unlock(): void { this.isLocked = false; } }