/// <summary> /// Move all items up one /// </summary> public void MoveUpOne(int[] items) { Array.Sort <int>(items); Diagram[] diagrams = myDiagrams; for (int i = 0; i < items.Length; ++i) { int index = items[i]; if (index > 0) { Diagram targetDiagram = diagrams[index]; diagrams[index] = diagrams[index - 1]; diagrams[index - 1] = targetDiagram; BranchModificationEventHandler handler = myModifications; if (handler != null) { handler(this, BranchModificationEventArgs.MoveItem(this, index, index - 1)); } } } }
/// <summary> /// Move all items down one /// </summary> public void MoveDownOne(int[] items) { Array.Sort <int>(items); Diagram[] diagrams = myDiagrams; int lastItem = diagrams.Length - 1; for (int i = items.Length - 1; i >= 0; --i) { int index = items[i]; if (index < lastItem) { Diagram targetDiagram = diagrams[index]; diagrams[index] = diagrams[index + 1]; diagrams[index + 1] = targetDiagram; BranchModificationEventHandler handler = myModifications; if (handler != null) { handler(this, BranchModificationEventArgs.MoveItem(this, index, index + 1)); } } } }