internal static void SelectPrevious(EditingContext context) { Selection s = context.Items.GetValue <Selection>(); if (SelectionImplementation.IsMultiSelection(s)) { SelectionImplementation.SelectParent(context); } else { if (s.PrimarySelection == null) { return; } ModelItem primarySelection = s.PrimarySelection; ViewService service = context.Services.GetService <ViewService>(); ModelItem previousSibling = SelectionImplementation.GetPreviousSibling(primarySelection, service); ModelItem modelItem = previousSibling != null?SelectionImplementation.GetLastChild(previousSibling, service) : (primarySelection.Parent != null ? primarySelection.Parent : SelectionImplementation.GetLastChild(primarySelection, service)); if (modelItem == null) { return; } context.Items.SetValue((ContextItem) new Selection(new ModelItem[1] { modelItem })); } }
internal static void SelectNext(EditingContext context) { Selection s = context.Items.GetValue <Selection>(); if (SelectionImplementation.IsMultiSelection(s)) { SelectionImplementation.SelectParent(context); } else { if (s.PrimarySelection == null) { return; } ModelItem modelItem1 = s.PrimarySelection; ViewService service = context.Services.GetService <ViewService>(); ModelItem modelItem2; for (modelItem2 = SelectionImplementation.GetFirstChild(s.PrimarySelection, service); modelItem2 == null && modelItem1.Parent != null; modelItem1 = modelItem1.Parent) { modelItem2 = SelectionImplementation.GetNextSibling(modelItem1, service); } if (modelItem2 == null) { modelItem2 = modelItem1; } if (modelItem2 == null) { return; } context.Items.SetValue((ContextItem) new Selection(new ModelItem[1] { modelItem2 })); } }