devexpress-gantt
Version:
DevExpress Gantt Control
42 lines (36 loc) • 1.4 kB
text/typescript
import { MathUtils } from "@devexpress/utils/lib/utils/math";
import { GanttDataObjectNames } from "../../../Entities/DataObject";
import { ModelManipulator } from "../../../Manipulators/ModelManipulator";
import { IDataObjectKeyUpdater } from "../../IInsertedKeyKeeper";
import { HistoryItem } from "../HistoryItem";
export class CreateTaskHistoryItem extends HistoryItem {
data: Record<string, any>;
public insertedKey: string;
constructor(modelManipulator: ModelManipulator, data: Record<string, any>) {
super(modelManipulator);
this.data = data;
}
public redo(): void {
this.insertedKey ??= MathUtils.generateGuid();
this.modelManipulator.task.create(this.data, this.insertedKey);
}
public undo(): void {
this.modelManipulator.task.remove(this.insertedKey);
}
public get keyUpdaters(): IDataObjectKeyUpdater[] {
const result = [
{
objectType: GanttDataObjectNames.task,
getKey: () => this.insertedKey,
updateKey: value => this.insertedKey = value
}
];
if(this.data?.parentId)
result.push({
objectType: GanttDataObjectNames.task,
getKey: () => this.data?.parentId,
updateKey: value => this.data.parentId = value
});
return result;
}
}