private void MenuItemCommandAction(object parameter) { BurgerMenuItem item = parameter as BurgerMenuItem; if (item != null) { App.AppLogger.Logger.Log(devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.VerboseHigh | devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.Information, "Burger menu item clicked '{0}'.", item.Key); //determine what type this type is before performing any actions if (item.GetType() == typeof(BurgerMenuViewItem)) { App.Controller.NavigateTo(item.Key); } else if (item.GetType() == typeof(BurgerMenuPopupViewItem)) { App.Controller.ShowPopup(item.Key); } else if (item.GetType() == typeof(BurgerMenuCommandItem)) { BurgerMenuCommandItem commandItem = item as BurgerMenuCommandItem; BurgerMenuViewItem selectedViewItem = SelectedItem as BurgerMenuViewItem; View viewInstance = selectedViewItem.PageViewInstance; commandItem.Invoke(viewInstance.BindingContext, new object[] { null }); } IsMenuExpanded = false; } }
public void Setup(List <BurgerMenuViewItem> rootItems, string startItemKey, List <BurgerMenuViewItem> commonItems) { App.AppLogger.Logger.Log(devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.VerboseHigh | devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.Information, "Setting up burger menu."); if (rootItems == null || rootItems.Count == 0) { throw new ArgumentException("Argument must not be null or empty.", "rootItems"); } if (string.IsNullOrEmpty(startItemKey)) { throw new ArgumentException("Argument must not be null.", "startItemKey"); } _menuItemsByKey.Clear(); _startItem = rootItems.Where(bmi => bmi.Key == startItemKey).First(); foreach (BurgerMenuViewItem curViewItem in rootItems) { AttachMenuItem(curViewItem); } _commonItems.Clear(); if (commonItems != null && commonItems.Count > 0) { foreach (BurgerMenuViewItem curViewItem in commonItems) { AttachMenuItem(curViewItem); _commonItems.Add(curViewItem); } } }
public BurgerMenuCommandItem(string key, string menuTitle, CachyFont.Glyph glyph, BurgerMenuViewItem parentViewItem, string methodName) : base(key, menuTitle, glyph, true) { _parentViewItem = parentViewItem; _methodName = methodName; }
public void SelectItem(BurgerMenuViewItem item) { App.AppLogger.Logger.Log(devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.VerboseHigh | devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.Information, "Selecting burger menu item '{0}'.", item.Key); _selectedItem = item; UpdateMenuButtonModes(); OnPropertyChanged("SelectedItem"); OnPropertyChanged("VisibleSelectedItemChildItems"); OnPropertyChanged("CommonItems"); SetCommonItemEnables(); ShowPopup = false; }
public BurgerMenuViewItem AddChildViewItem(string key, string menuTitle, CachyFont.Glyph glyph, string pageTitle, Type pageViewType, bool clearInstanceOnNavigate) { BurgerMenuViewItem viewItem = new BurgerMenuViewItem(string.Format("{0}.{1}", Key, key), menuTitle, glyph, pageTitle, pageViewType, clearInstanceOnNavigate); ChildItems.Add(viewItem); return(viewItem); }
public void DisplayPage(string key, out BurgerMenuViewItem item) { App.AppLogger.Logger.Log(devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.VerboseHigh | devoctomy.DFramework.Logging.Interfaces.LoggerMessageType.Information, "Displaying burger menu page '{0}'.", key); item = null; if (_menuItemsByKey.ContainsKey(key)) { item = _menuItemsByKey[key] as BurgerMenuViewItem; if (item != null) { _popups.Clear(); SelectItem(item); } else { throw new InvalidOperationException(String.Format("Cannot display page '{0}' as it is of the wrong type.", key)); } } else { throw new KeyNotFoundException(String.Format("Burger menu item with the key '{0}' was not found.", key)); } }
public BurgerMenuViewItem AddChildViewItem(BurgerMenuViewItem item) { ChildItems.Add(item); return(item); }