UNPKG

devexpress-diagram

Version:

DevExpress Diagram Control

35 lines (32 loc) 1.5 kB
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); }); } }