Esempio n. 1
0
        private static PackageItem FindPackageItemPageUpOrPageDown(PackageItem item, bool isPageUp)
        {
            PackageItem targetItem = null;

            if (item.packageGroup.IsExpanded)
            {
                targetItem = (isPageUp ? item.parent.Children().FirstOrDefault(p => !UIUtils.IsElementDisplayNone(p))
                    : item.parent.Children().LastOrDefault(p => !UIUtils.IsElementDisplayNone(p))) as PackageItem;
            }

            if (targetItem == item)
            {
                targetItem = null;
            }

            if (targetItem == null)
            {
                Func <VisualElement, bool> expandedNonEmptyGroup = (element) =>
                {
                    var group = element as PackageGroup;
                    return(group.IsExpanded && group.packageItems.Any(p => !UIUtils.IsElementDisplayNone(p)));
                };
                var nextGroup = FindNextSiblingByCondition(item.packageGroup, expandedNonEmptyGroup, isPageUp) as PackageGroup;
                if (nextGroup != null)
                {
                    targetItem = (isPageUp ? nextGroup.packageItems.LastOrDefault(p => p != item && !UIUtils.IsElementDisplayNone(p))
                    : nextGroup.packageItems.FirstOrDefault(p => p != item && !UIUtils.IsElementDisplayNone(p))) as PackageItem;
                }
            }
            return(targetItem);
        }
Esempio n. 2
0
 private void UpdateGroups()
 {
     foreach (var group in Groups)
     {
         UIUtils.SetElementDisplay(group, group.packageItems.Any(item => !UIUtils.IsElementDisplayNone(item)));
     }
 }
Esempio n. 3
0
        private static PackageItem FindNextVisiblePackageItem(PackageItem item, bool reverseOrder)
        {
            PackageItem nextVisibleItem = null;

            if (item.packageGroup.IsExpanded)
            {
                nextVisibleItem = FindNextSiblingByCondition(item, UIUtils.IsElementVisible, reverseOrder) as PackageItem;
            }

            if (nextVisibleItem == null)
            {
                Func <VisualElement, bool> expandedNonEmptyGroup = (element) =>
                {
                    var group = element as PackageGroup;
                    return(group.IsExpanded && group.packageItems.Any(p => !UIUtils.IsElementDisplayNone(p)));
                };
                var nextGroup = FindNextSiblingByCondition(item.packageGroup, expandedNonEmptyGroup, reverseOrder) as PackageGroup;
                if (nextGroup != null)
                {
                    nextVisibleItem = reverseOrder ? nextGroup.packageItems.LastOrDefault(p => !UIUtils.IsElementDisplayNone(p)) : nextGroup.packageItems.FirstOrDefault(p => !UIUtils.IsElementDisplayNone(p));
                }
            }
            return(nextVisibleItem);
        }