private void OnCategoryCommandExecute(ScreenMenuCategory category)
        {
            CurrentPageNo = 0;
            CurrentTag    = "";
            UpdateMenuButtons(category);
            if (IsQuickNumeratorVisible)
            {
                QuickNumeratorValues = string.IsNullOrEmpty(category.NumeratorValues) ? new[] { "1", "2", "3", "4", "5" } : category.NumeratorValues.Split(',');
                NumeratorValue       = QuickNumeratorValues[0] != "1" ? QuickNumeratorValues[0] : "";
            }
            else
            {
                NumeratorValue = "";
            }

            AlphaButtonValues = string.IsNullOrEmpty(category.AlphaButtonValues) ? new string[0] : category.AlphaButtonValues.Split(',');

            RaisePropertyChanged(() => IsQuickNumeratorVisible);
            RaisePropertyChanged(() => IsNumeratorVisible);
            RaisePropertyChanged(() => IsNumberpadEditorVisible);
            RaisePropertyChanged(() => QuickNumeratorValues);
            RaisePropertyChanged(() => AlphaButtonValues);
            RaisePropertyChanged(() => MenuItemsVerticalAlignment);
            RaisePropertyChanged(() => IsSelectedItemsVisible);
        }
 private string GetCategorySubButtonColor(string name, ScreenMenuCategory category)
 {
     if (string.IsNullOrEmpty(category.SubButtonColorDef) || !category.SubButtonColorDef.Contains(name + "="))
     {
         return(category.MainButtonColor);
     }
     return(category.SubButtonColorDef);
 }
Beispiel #3
0
 public IEnumerable <string> GetSubCategories(ScreenMenuCategory category, string parentTag)
 {
     return(category.ScreenMenuItems.Where(x => !string.IsNullOrEmpty(x.Tag))
            .Select(x => x.Tag)
            .Distinct()
            .Where(x => string.IsNullOrEmpty(parentTag) || (x.StartsWith(parentTag) && x != parentTag))
            .Select(x => Regex.Replace(x, "^" + parentTag + ",", ""))
            .Where(x => !x.Contains(","))
            .Select(x => !string.IsNullOrEmpty(parentTag) ? parentTag + "," + x : x));
 }
        private ObservableCollection <ScreenMenuItemButton> CreateMenuButtons(ScreenMenuCategory category, int pageNo, string tag)
        {
            SelectedCategory = category;

            var screenMenuItems = _menuService.GetScreenMenuItems(category, pageNo, tag);
            var result          = new ObservableCollection <ScreenMenuItemButton>();
            var items           = screenMenuItems.Select(x => new ScreenMenuItemButton(x, MenuItemCommand, category));

            result.AddRange(items);
            return(result);
        }
 private void CreateMenuItemButtons(ObservableCollection <ScreenMenuItemButton> itemButtons,
                                    ScreenMenuCategory category, int pageNo, string tag)
 {
     itemButtons.Clear();
     if (category == null)
     {
         return;
     }
     itemButtons.AddRange(AppServices.DataAccessService.GetMenuItems(category, pageNo, tag)
                          .Select(x => new ScreenMenuItemButton(x, MenuItemSelectionCommand, category)));
 }
Beispiel #6
0
        public ScreenMenuItemButton(ScreenMenuItem screenMenuItem, ICommand command, ScreenMenuCategory category)
        {
            _screenMenuItem = screenMenuItem;
            _command = command;
            _category = category;

            var color = screenMenuItem.ButtonColor;

            if (string.IsNullOrEmpty(color))
                color = category != null ? category.MenuItemButtonColor : "Green";

            ButtonColor = color;
        }
Beispiel #7
0
        public IEnumerable <ScreenMenuItem> GetMenuItems(ScreenMenuCategory category, int currentPageNo, string tag)
        {
            var items = category.ScreenMenuItems
                        .Where(x => x.Tag == tag || (string.IsNullOrEmpty(tag) && string.IsNullOrEmpty(x.Tag)));

            if (category.PageCount > 1)
            {
                items = items
                        .Skip(category.ItemCountPerPage * currentPageNo)
                        .Take(category.ItemCountPerPage);
            }

            return(items.OrderBy(x => x.Order));
        }
        private ObservableCollection <ScreenMenuItemButton> CreateMenuButtons(ScreenMenuCategory category, int pageNo, string tag)
        {
            SelectedCategory = category;

            var screenMenuItems = AppServices.DataAccessService.GetMenuItems(category, pageNo, tag);
            var result          = new ObservableCollection <ScreenMenuItemButton>();
            var items           = screenMenuItems.Select(x => new ScreenMenuItemButton(x, MenuItemCommand, category));

            if (category.SortType == 1)
            {
                items = items.OrderByDescending(x => x.UsageCount);
            }
            result.AddRange(items);
            return(result);
        }
        private void UpdateMenuButtons(ScreenMenuCategory category)
        {
            MenuItems = CreateMenuButtons(category, CurrentPageNo, CurrentTag ?? "");

            SubCategories.Clear();
            SubCategories.AddRange(
                AppServices.DataAccessService.GetSubCategories(category, CurrentTag)
                .Select(x => new ScreenSubCategoryButton(x, SubCategoryCommand, category.MButtonColor, category.SubButtonHeight)));

            if (!string.IsNullOrEmpty(CurrentTag))
            {
                var backButton = new ScreenSubCategoryButton(CurrentTag.Replace(CurrentTag.Split(',').Last(), "").Trim(new[] { ',', ' ' }), SubCategoryCommand, "Gainsboro", category.SubButtonHeight, true);
                SubCategories.Add(backButton);
            }

            if (Categories != null && MenuItems.Count == 0)
            {
                if (category.NumeratorType == 2 && SubCategories.Count == 0)
                {
                    InteractionService.ShowKeyboard();
                }

                MenuItems.Clear();

                if (category.MaxItems > 0)
                {
                    IEnumerable <ScreenMenuItem> sitems = category.ScreenMenuItems.OrderBy(x => x.Order);
                    if (SubCategories.Count == 0)
                    {
                        sitems = Categories.Select(x => x.Category).SelectMany(x => x.ScreenMenuItems);
                    }
                    var items = sitems.Select(x => new ScreenMenuItemButton(x, MenuItemCommand, SelectedCategory));
                    if (category.SortType == 1)
                    {
                        items = items.OrderByDescending(x => x.UsageCount);
                    }
                    MenuItems.AddRange(items.Take(category.MaxItems));
                }
            }

            RaisePropertyChanged("MenuItems");
            RaisePropertyChanged("IsPageNumberNavigatorVisible");
            RaisePropertyChanged("MenuItemsVerticalAlignment");
        }
        private void OnCategoryCommandExecute(ScreenMenuCategory category)
        {
            CurrentPageNo = 0;
            CurrentTag    = "";
            UpdateMenuButtons(category);
            if (IsQuickNumeratorVisible)
            {
                QuickNumeratorValues = string.IsNullOrEmpty(category.NumeratorValues) ? new[] { "1", "2", "3", "4", "5" } : category.NumeratorValues.Split(',');
                NumeratorValue       = QuickNumeratorValues[0];
            }
            NumeratorValue = "";

            AlphaButtonValues = string.IsNullOrEmpty(category.AlphaButtonValues) ? new string[0] : category.AlphaButtonValues.Split(',');

            RaisePropertyChanged("IsQuickNumeratorVisible");
            RaisePropertyChanged("IsNumeratorVisible");
            RaisePropertyChanged("QuickNumeratorValues");
            RaisePropertyChanged("AlphaButtonValues");
            RaisePropertyChanged("MenuItemsVerticalAlignment");
        }
 public ScreenMenuCategoryViewModel(ScreenMenuCategory model)
 {
     Model = model;
 }
Beispiel #12
0
 public ScreenCategoryButton(ScreenMenuCategory category, ICommand command)
 {
     _category     = category;
     ButtonCommand = command;
 }
 private void UpdateMenuButtons(ScreenMenuCategory category)
 {
     SelectedCategory = category;
     CreateMenuItemButtons(MenuItems, category, CurrentPageNo, CurrentTag);
 }
 private void OnCategorySelected(ScreenMenuCategory obj)
 {
     UpdateMenuButtons(obj);
 }