//------------------------------------------------------------- public MenuItemObject GetMenuItemByRoles(MenuItemObject menuObj, List <string> roleNames) { if (menuObj == null) { return(null); } //Menü Elemanında Rol tanımlıysa alt elemanlara iniyor //insersect: İki Listenin kesişimini alır if (menuObj.Roles.Intersect(roleNames).Count() > 0 || menuObj.Roles[0] == "*") { for (int i = 0; i < menuObj.ChildMenuItems.Count; i++) { //Herbir çocuk için alt menüye iniyor menuObj.ChildMenuItems[i] = GetMenuItemByRoles(menuObj.ChildMenuItems[i], roleNames); } //null elemanları kaldırıyor menuObj.ChildMenuItems.RemoveAll(m => m == null); return(menuObj); } else { return(null); } }
internal void setProperties(MenuItemObject menuItem) { MenuItem = menuItem; //Debug.Log("Should have created:" + menuItem.text); if (MainLabel) { MainLabel.pivot = UIWidget.Pivot.TopLeft; MainLabel.text = MenuItem.text; MainLabel.gameObject.transform.localPosition = new Vector3(ConvertLeft(MenuItem.left), ConvertTop(MenuItem.top)); if (MenuItem.color != null) { MainLabel.color = DisplayManager.HexToColor(MenuItem.color); } else { //Debug.Log("Color is null for:" + menuItem.text); } try { MainLabel.fontSize = int.Parse(MenuItem.fontsize) * 2; } catch (Exception c) { Debug.Log("Exception" + MenuItem.key); } } else { //Debug.Log("Main Label is Null"); } }
//------------------------------------------------------------- public List <MenuItemObject> GetMenuList(List <string> roleNames) { List <MenuItemObject> allMenuList = ReadMenuItems(); List <MenuItemObject> menuList = new List <MenuItemObject>(); MenuItemObject mainMenu = null; foreach (MenuItemObject item in allMenuList) { menuList.Add(GetMenuItemByRoles(item, roleNames)); } //null elemanları kaldırıyor menuList.RemoveAll(m => m == null); if (menuList.Count >= maxMainMenuItemCount) { mainMenu = new MenuItemObject() { ChildMenuItems = menuList.GetRange(0, menuList.Count), Icon = "fa fa-bars", Link = "javascript:;", Name = "Uygulamalar" }; menuList.Clear(); menuList.Add(mainMenu); } return(menuList); }
public void AddMenuItem <TDataContext, TUserControl>(string header) where TUserControl : UserControl { var obj = new MenuItemObject() { DataContextObject = typeof(TDataContext), UserControl = typeof(TUserControl) }; MenuItemObjectList.Add(obj); var item = new MenuItem() { Header = header, IsCheckable = true, IsEnabled = true }; item.Click += new RoutedEventHandler(ClickEvent); Binding menuCheckBinding = new Binding("IsChecked") { Source = this, Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; BindingOperations.SetBinding(item, MenuItem.IsCheckableProperty, menuCheckBinding); MenuItemList.Add(item); }
/// <summary> /// /// </summary> protected override void ProcessRecord() { Regex rxOption = new Regex("^\\d+$"); if (string.IsNullOrWhiteSpace(OptionKey) && !IsSpace && (Script != null || Func != null)) { //if they did not assign a option, then auto-assign one via next index # var idxOptions = this.MenuObject.MenuItems.Where(i => i.Option != null && rxOption.IsMatch(i.Option)).Select(i => int.Parse(i.Option)).ToArray(); int max = idxOptions.Length == 0 ? 0 : idxOptions.OrderBy(i => i).Max(); OptionKey = (max + 1).ToString(); } else if (!IsSpace && (Script != null || Func != null)) { var existing = this.MenuObject.MenuItems.Where(i => i.Option == OptionKey).FirstOrDefault(); if (existing != null) { throw new Exception($"Menu item already exists with option '{OptionKey}"); } } else if (new string[] { "q", "Q" }.Contains(OptionKey)) { throw new Exception($"Menu item already exists with option '{OptionKey}"); } MenuItemObject menuItem = new MenuItemObject { Name = this.Name, DisplayName = this.DisplayName, Description = this.Description, Script = this.Script, ScriptArgs = this.ScriptArgs, Func = this.Func, FuncArgs = this.FuncArgs, ForegroundColor = this.ForegroundColor, DisableConfirm = this.DisableConfirm, ConfirmTargetData = this.ConfirmTargetData, IsSpace = this.IsSpace, Option = this.OptionKey, VisibleScript = this.VisibleScript, VisibleScriptArgs = this.VisibleScriptArgs, VisibleFunc = this.VisibleFunc, VisibleFuncArgs = this.VisibleFuncArgs, Default = this.Default }; if (InsertAt.HasValue) { this.MenuObject.MenuItems.Insert(InsertAt.Value, menuItem); } else { this.MenuObject.MenuItems.Add(menuItem); } WriteObject(this.MenuObject); base.ProcessRecord(); }
public void setProperties(MenuItemObject MenuItem) { SceneID = MenuItem.promoid; Texture1.GetComponent <UITexture>().pivot = UIWidget.Pivot.TopLeft; //Texture1.GetComponent<RectTransform>().sizeDelta = new Vector2(height,width); Texture1.GetComponent <UITexture>().height = MenuItem.height * 2; Texture1.GetComponent <UITexture>().width = MenuItem.width * 2; Texture1.transform.localPosition = new Vector3(ConvertLeft(MenuItem.left), ConvertTop(MenuItem.top)); Debug.Log("Loading Picture Data:" + MenuItem.promoid); StartCoroutine(getPictureSlideShowData(MenuItem.promoid)); }
private void MenuLayoutChanged(object sender, ValueChangedEventArgs e) { MenuItemObjects.Clear(); Debug.Log("Menu Layout Changed:" + e.Snapshot.ChildrenCount); foreach (DataSnapshot child in e.Snapshot.Children) { MenuItemObject tempObj = JsonConvert.DeserializeObject <MenuItemObject>(child.GetRawJsonValue()); tempObj.key = child.Key; // Debug.Log("Temp Key: " + tempObj.key); MenuItemObjects.Add(tempObj); } DisplayManager.displayManager.RestaurantManager.BroadcastMessage("UpdateMenuChild"); }
//------------------------------------------------------------- public static IEnumerable <MenuItemObject> GetNodesSadeceEnUstNodes(MenuItemObject node) { if (node == null) { yield break; } yield return(node); foreach (var n in node.ChildMenuItems) { yield return(n); } }
//------------------------------------------------------------- public static IEnumerable <MenuItemObject> GetNodes(MenuItemObject node) { if (node == null) { yield break; } yield return(node); foreach (var n in node.ChildMenuItems) { foreach (var innerN in GetNodes(n)) { yield return(innerN); } } }
private void HandleValueChanged(object sender, ValueChangedEventArgs args) { //Debug.Log("Handle Value Changed"); if (args.DatabaseError != null) { //Debug.LogError(args.DatabaseError.Message); return; } switch (args.Snapshot.Child("type").Value.ToString()) { case "Label": break; } MenuItem = JsonConvert.DeserializeObject <MenuItemObject>(args.Snapshot.GetRawJsonValue()); setProperties(MenuItem); }
internal void setProperties(string Json) { MenuItem = JsonConvert.DeserializeObject <MenuItemObject>(Json); setProperties(MenuItem); }
/// <summary> /// /// </summary> public override void ExecuteCmdlet() { base.ExecuteCmdlet(); try { MenuItemObject menuSelected = null; #region InvokeItem if (MyInvocation.BoundParameters.ContainsKey("InvokeItem")) { menuSelected = Menu.MenuItems[this.InvokeItem]; if (menuSelected != null) { WriteVerbose($"Menu: {menuSelected.Name}"); if (menuSelected.DisableConfirm.HasValue && !menuSelected.DisableConfirm.Value && !this.ShouldProcess(menuSelected.ConfirmTargetData, $"{menuSelected.Name}")) { WriteWarning($"Execution aborted for [{menuSelected.Name}]"); } else if (menuSelected.Script != null) { Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]"); Host.UI.Write($"Args: "); if (menuSelected.ScriptArgs != null) { foreach (var arg in menuSelected.ScriptArgs) { Host.UI.Write($"{arg} "); } } Host.UI.WriteLine(); try { WriteVerbose("Calling Script"); var r_objs = menuSelected.Script.InvokeWithContext(null, null, menuSelected.ScriptArgs); foreach (var obj in r_objs) { WriteObject(obj.BaseObject); } WriteVerbose("Called Script"); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!"); } else if (menuSelected.Func != null) { Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]"); Host.UI.Write($"Args: "); if (menuSelected.FuncArgs != null) { foreach (var arg in menuSelected.FuncArgs) { Host.UI.Write($"{arg} "); } } Host.UI.WriteLine(); try { WriteVerbose("Calling Func"); var r_objs = menuSelected.Func(menuSelected, menuSelected.FuncArgs ?? new object[0]); if (r_objs != null) { foreach (var obj in r_objs) { WriteObject(obj); } } WriteVerbose("Called Func"); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!"); } else { WriteWarning($"No Script or Func to perform for [{menuSelected.Name}]"); } } } #endregion menuSelected = null; #region Show Menu Stopwatch processingTime = Stopwatch.StartNew(); Regex rxOption = new Regex("^\\d+$"); var menuLines = new ArrayList(); if (Menu == null) { WriteError(new ErrorRecord(new ArgumentNullException("Menu", "Menu parameter must not be null."), "MenuNotGiven", ErrorCategory.InvalidArgument, null)); return; } var menuFrame = new string(MenuOptions.MenuFillChar, (MenuOptions.MaxWidth - 2)); var menuEmptyLine = new string(' ', (MenuOptions.MaxWidth - 2)); // Top Header border WriteMenuLine(menuFrame, MenuOptions.MenuFillColor); // Menu Display Name WriteMenuLine(Menu.DisplayName, MenuOptions.MenuNameColor); if (!string.IsNullOrWhiteSpace(Menu.Description)) { WriteMenuLine(Menu.Description, MenuOptions.MenuNameColor); } WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); if (HeaderScript != null) { try { HeaderScript.InvokeWithContext(null, null); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } } else if (MenuOptions.HeaderScript != null) { try { MenuOptions.HeaderScript.InvokeWithContext(null, null); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } } else if (HeaderFunc != null) { try { HeaderFunc(this.Menu, MenuOptions); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } } else if (MenuOptions.HeaderFunc != null) { try { MenuOptions.HeaderFunc(this.Menu, MenuOptions); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } } else { WriteMenuLine(MenuOptions.Heading, MenuOptions.HeadingColor); WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); WriteMenuLine(MenuOptions.SubHeading, MenuOptions.SubHeadingColor); } WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); // Bottom Header border WriteMenuLine(menuFrame, MenuOptions.MenuFillColor); WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); var idxOptions = this.Menu.MenuItems.Where(i => rxOption.IsMatch($"{i.Option}")).Select(i => int.Parse(i.Option)).ToArray(); int maxIdxOptions = (idxOptions.Length == 0) ? 0 : idxOptions.OrderBy(i => i).Max(); bool visible; foreach (var item in Menu.MenuItems) { ConsoleColor menuColor; if (!string.IsNullOrWhiteSpace(item.Option) && !(item.Func == null && item.Script == null)) { menuColor = MenuOptions.MenuItemColor; } else { menuColor = MenuOptions.ViewOnlyColor; } visible = true; if (item.VisibleScript != null) { Collection <PSObject> aOut = null; try { aOut = item.VisibleScript.InvokeWithContext(null, null, item.VisibleScriptArgs); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } if (aOut != null && aOut.Count > 0 && aOut[0].BaseObject is bool) { visible = (bool)aOut[0].BaseObject; } else { WriteWarning($"Object returned from VisibleScript script is not a boolean value for menu item [{item.Name}], returned [{aOut}]"); } } else if (item.VisibleFunc != null) { try { visible = item.VisibleFunc(item, item.VisibleFuncArgs); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } } if (visible) { if (item.ForegroundColor != null) { menuColor = item.ForegroundColor.Value; } if (item.IsSpace.HasValue && item.IsSpace.Value) { WriteMenuLine(" ", menuColor, true); } else if (!string.IsNullOrWhiteSpace(item.Option)) { if (DefaultOption == "Q" && (item.Default ?? false)) // We only use the first option that is set as default. { DefaultOption = item.Option; } var Option = item.Option; if (maxIdxOptions >= 10 && rxOption.IsMatch(item.Option) && int.Parse(item.Option) < 10) { Option = $" {Option}"; } WriteMenuLine($"{Option}. {item.DisplayName}", menuColor, true); } else { WriteMenuLine($"{item.DisplayName}", menuColor, true); } } } WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); WriteMenuLine("Q Exit Menu", ConsoleColor.Red, true); WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); WriteMenuLine(MenuOptions.FooterText, MenuOptions.FooterTextColor); WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor); // Bottom border WriteMenuLine(menuFrame, MenuOptions.MenuFillColor); Host.UI.Write($"Please choose a option [{DefaultOption}] "); processingTime.Stop(); LogPerfEvent(processingTime.Elapsed + MetricData.ProcessingTime); userSelection = Host.UI.ReadLine(); WriteVerbose($"Selection: {userSelection}"); if (string.IsNullOrWhiteSpace(userSelection)) { userSelection = DefaultOption; WriteVerbose($"Using default option: {userSelection}"); } else { WriteVerbose($"Selection: {userSelection}"); } _qosEvent.Selected = userSelection; if (userSelection.Equals("Q", StringComparison.CurrentCultureIgnoreCase)) { WriteVerbose("Exiting Menu"); WriteObject("quit"); return; } menuSelected = Menu.MenuItems.Where(i => i.Option != null && i.Option.Equals(userSelection, StringComparison.CurrentCultureIgnoreCase)).SingleOrDefault(); visible = true; if (menuSelected != null && menuSelected.VisibleScript != null) { Collection <PSObject> aOut = null; try { aOut = menuSelected.VisibleScript.InvokeWithContext(null, null, menuSelected.VisibleScriptArgs); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } if (aOut != null && aOut.Count > 0 && aOut[0].BaseObject is bool) { visible = (bool)aOut[0].BaseObject; } else { WriteWarning($"Object returned from VisibleScript script is not a boolean value for menu item [{menuSelected.Name}], returned [{aOut}]"); } } else if (menuSelected != null && menuSelected.VisibleFunc != null) { try { visible = menuSelected.VisibleFunc(menuSelected, menuSelected.VisibleFuncArgs); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } } if (!visible) { menuSelected = null; } if (menuSelected != null) { WriteVerbose($"Menu: {menuSelected.Name}"); if (menuSelected.DisableConfirm.HasValue && !menuSelected.DisableConfirm.Value && !this.ShouldProcess(menuSelected.ConfirmTargetData, $"{menuSelected.Name}")) { WriteWarning("Execution aborted"); } else if (menuSelected.Script != null) { Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]"); Host.UI.Write($"Args: "); if (menuSelected.ScriptArgs != null) { foreach (var arg in menuSelected.ScriptArgs) { Host.UI.Write($"{arg} "); } } Host.UI.WriteLine(); try { WriteVerbose("Calling Script"); var r_objs = menuSelected.Script.InvokeWithContext(null, null, menuSelected.ScriptArgs); foreach (var obj in r_objs) { WriteObject(obj.BaseObject); } WriteVerbose("Called Script"); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!"); } else if (menuSelected.Func != null) { Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]"); Host.UI.Write($"Args: "); if (menuSelected.FuncArgs != null) { foreach (var arg in menuSelected.FuncArgs) { Host.UI.Write($"{arg} "); } } Host.UI.WriteLine(); try { WriteVerbose("Calling Func"); var r_objs = menuSelected.Func(menuSelected, menuSelected.FuncArgs ?? new object[0]); if (r_objs != null) { foreach (var obj in r_objs) { WriteObject(obj); } } WriteVerbose("Called Func"); } catch (RuntimeException ex) { WriteError(ex.ErrorRecord); } Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!"); } else { WriteWarning($"No Script or Func to perform for [{menuSelected.Name}]"); } } else { Host.UI.WriteLine(ConsoleColor.Red, Host.UI.RawUI.BackgroundColor, $"Menuitem not found [{userSelection}]"); Host.UI.Write("Press enter to continue..."); Host.UI.ReadLine(); } #endregion } catch (Exception ex) { WriteError(new ErrorRecord(ex, "5000", ErrorCategory.NotSpecified, this)); } finally { } }