private void btnCut_Click(object sender, RoutedEventArgs e) { _numberOfPastes = 0; if (_selectedFigures.Count != 0) { nothingToPaste = false; cutOrCopy = cutOrCopyMode.cut; cuttedOrCopiedArcs.Clear(); cuttedOrCopiedFigures.Clear(); cuttedOrCopiedFigures.AddRange(_selectedFigures); cuttedOrCopiedArcs.AddRange(_selectedArcs); List <PetriNetNode> cuttedF = new List <PetriNetNode>(); List <VArc> cuttedA = new List <VArc>(); cuttedF.AddRange(cuttedOrCopiedFigures); cuttedA.AddRange(cuttedOrCopiedArcs); List <VArc> impl = new List <VArc>(); AddThisArcsToListOfCuttedArcs(cuttedOrCopiedFigures, impl); List <PetriNetNode> cutF = new List <PetriNetNode>(); List <VArc> cutA = new List <VArc>(); cutF.AddRange(cuttedOrCopiedFigures); cutA.AddRange(impl); UnselectFigures();//(selectedFigures, selectedArcs); List <PetriNetNode> old = new List <PetriNetNode>(); foreach (PetriNetNode figure in cutF) { PetriNetNode f = PetriNetNode.Create(); f.CoordX = figure.CoordX; f.CoordY = figure.CoordY; f.Id = figure.Id; old.Add(f); } CutFigures(cutF, cutA); CutCommand newCommand = new CutCommand(cuttedF, old, cuttedA, impl); Command.ExecutedCommands.Push(newCommand); Command.CanceledCommands.Clear(); HideAllProperties(); } else { nothingToPaste = true; } TurnOnSelectMode(); btnCut.Focusable = false; }
private void btnCopy_Click(object sender, RoutedEventArgs e) { if (_selectedFigures.Count != 0) { nothingToPaste = false; cutOrCopy = cutOrCopyMode.copy; cuttedOrCopiedArcs.Clear(); cuttedOrCopiedFigures.Clear(); cuttedOrCopiedFigures.AddRange(_selectedFigures); cuttedOrCopiedArcs.AddRange(_selectedArcs); } else { nothingToPaste = true; } TurnOnSelectMode(); }