private string renderLine(DasMenuItem Item, DasMenuConfig Config, DasMenuItem Selected) { string content = Config.getFormat(); string indent = getIndent(Item, Config); content = content.Replace(DasMenuConfig.FORMAT_INDENT, indent); if (indent.Length > 0) { content = content.Replace(DasMenuConfig.FORMAT_INDENTSPACE, " "); } else { content = content.Replace(DasMenuConfig.FORMAT_INDENTSPACE, ""); } if (Item.Equals(Selected)) { content = content.Replace(DasMenuConfig.FORMAT_SELECTED, Config.getSelector()); } else { content = content.Replace(DasMenuConfig.FORMAT_SELECTED, ""); } content = content.Replace(DasMenuConfig.FORMAT_LABEL, Item.getLabel()); return(content); }
public DasMenuItem createFromConfig(DasMenuConfig Config) { DasMenuRootItem RootItem = (new DasMenuItemFactory()).createRootItem(); parseConfig(Config, RootItem); return(RootItem); }
private void parseConfig(DasMenuConfig Config, DasMenuRootItem RootItem) { List <string> dataLines = Config.getMenuItems(); for (int i_dataLines = 0; i_dataLines < dataLines.Count; i_dataLines++) { string dataLine = dataLines[i_dataLines]; parseLine(dataLine, RootItem); } }
private string getIndent(DasMenuItem Item, DasMenuConfig Config) { string indent = ""; int count = Item.countParents(); for (int i = 0; i < count; i++) { indent += Config.getIndent(); } return(indent); }
public string getContent(DasMenuItem RootItem, DasMenuConfig Config, DasMenuItem Selected) { StringBuilder content = new StringBuilder(); if (Config.getTitle().Length > 0) { content.AppendLine(Config.getTitle()); } content.Append(getContentChilds(RootItem, Config, Selected)); return(content.ToString()); }
private StringBuilder getContentChilds(DasMenuItem RootItem, DasMenuConfig Config, DasMenuItem Selected) { List <DasMenuItem> Items = RootItem.getChilds(); StringBuilder content = new StringBuilder(); for (int i_Items = 0; i_Items < Items.Count; i_Items++) { DasMenuItem Item = Items[i_Items]; content.AppendLine(renderLine(Item, Config, Selected)); if (Item.hasChilds()) { content.Append(getContentChilds(Item, Config, Selected).ToString()); } } return(content); }
private void run(string args) { DasMenuArgs MenuArgs = new DasMenuArgs(args, ARGS_SPLIT); DasMenuTextPanelRepository TextPanelRepository = new DasMenuTextPanelRepository(GridTerminalSystem); DasMenuFactory MenuFactory = new DasMenuFactory(GridTerminalSystem); IMyTextPanel TextPanel = TextPanelRepository.findLcd(MenuArgs.getLcdPattern()); if (TextPanel != null) { string SelectedItemUid = TextPanelRepository.readStateFromTextPanel(TextPanel); DasMenuConfig MenuConfig = new DasMenuConfig(TextPanel.GetPrivateText()); DasMenuItem RootItem = MenuFactory.createFromConfig(MenuConfig); DasMenuView View = new DasMenuView(); DasMenuItem CurrentItem = getCurrentItem(MenuArgs, RootItem, SelectedItemUid); string content = View.getContent(RootItem, MenuConfig, CurrentItem); TextPanel.WritePublicText(content); Echo(content); TextPanelRepository.saveStateToTextPanel(TextPanel, CurrentItem.getUid()); } }