devexpress-diagram
Version:
DevExpress Diagram Control
35 lines (32 loc) • 1.5 kB
text/typescript
import { Point } from "@devexpress/utils/lib/geometry/point";
import { HistoryItem } from "../HistoryItem";
import { ModelManipulator } from "../../Model/ModelManipulator";
import { ItemKey } from "../../Model/DiagramItem";
import { ConnectorRenderPointsContext } from "../../Model/Connectors/Routing/ConnectorRenderPointsContext";
export class DeleteConnectorPointHistoryItem extends HistoryItem {
private oldPoint: Point;
private oldRenderContext: ConnectorRenderPointsContext;
constructor(
protected connectorKey: ItemKey,
private pointIndex: number) {
super();
}
redo(manipulator: ModelManipulator): void {
const connector = manipulator.model.findConnector(this.connectorKey);
this.oldRenderContext = connector.createRenderPointsContext();
this.oldPoint = connector.points[this.pointIndex].clone();
manipulator.addDeleteConnectorPoint(connector,
connector => {
connector.deletePoint(this.pointIndex);
connector.onDeletePoint(this.pointIndex);
});
}
undo(manipulator: ModelManipulator): void {
const connector = manipulator.model.findConnector(this.connectorKey);
manipulator.addDeleteConnectorPoint(connector,
connector => {
connector.addPoint(this.pointIndex, this.oldPoint);
connector.replaceRenderPoints(this.oldRenderContext);
});
}
}