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); }
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))); }
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; }
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; }
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); }