Beispiel #1
0
        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
                }));
            }
        }
Beispiel #2
0
        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
                }));
            }
        }