/// <inheritdoc/> public override void StartInteraction(DiagramInteractionEventArguments interaction) { PreviousMouseLocation = interaction.MousePosition; _resizingNodes = interaction.Diagram.Nodes.Where(n => n.IsSelected).ToArray(); _undoResizeCommand = new ResizeNodesToCurrentSizeCommand(_resizingNodes); _undoPositionAdjustmentCommand = new MoveNodesToCurrentPositionCommand(_resizingNodes); interaction.Diagram.ShowSnapGrid = true; }
/// <inheritdoc/> public override void StartInteraction(DiagramInteractionEventArguments interaction) { var diagram = interaction.Diagram; var mousePosition = interaction.MousePosition; RiftStartDiagramPoint = diagram.GetDiagramPointFromViewPoint(mousePosition); Mode = RiftMode.None; X = mousePosition.X; Y = mousePosition.Y; RiftWidth = 0; RiftHeight = 0; _undoRiftCommand = new MoveNodesToCurrentPositionCommand(_nodesBeingRifted); }
/// <inheritdoc/> public override void StopInteraction(DiagramInteractionEventArguments interaction) { if (!interaction.IsCtrlKeyPressed) { foreach (var node in _resizingNodes) { node.X = interaction.Diagram.SnapToGrid(node.X); node.Y = interaction.Diagram.SnapToGrid(node.Y); node.Width = interaction.Diagram.SnapToGrid(node.Width); node.Height = interaction.Diagram.SnapToGrid(node.Height); } } interaction.Diagram.ShowSnapGrid = false; Mouse.SetCursor(Cursors.Arrow); var resizeCommand = new ResizeNodesToCurrentSizeCommand(_resizingNodes); var positionAdjustmentCommand = new MoveNodesToCurrentPositionCommand(_resizingNodes); _transactor.Transact(resizeCommand, _undoResizeCommand); _transactor.Transact(positionAdjustmentCommand, _undoPositionAdjustmentCommand); }
/// <inheritdoc/> public override void StopInteraction(DiagramInteractionEventArguments interaction) { Mode = RiftMode.None; _lastRiftDeltaX = 0; _lastRiftDeltaY = 0; if (_nodesBeingRifted == null) { return; } if (!interaction.IsCtrlKeyPressed) { foreach (var node in _nodesBeingRifted) { node.X = interaction.Diagram.SnapToGrid(node.X); node.Y = interaction.Diagram.SnapToGrid(node.Y); } } var doRiftCommand = new MoveNodesToCurrentPositionCommand(_nodesBeingRifted); _transactor.Transact(doRiftCommand, _undoRiftCommand, null); _nodesBeingRifted = null; }