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()); } }
public DasMenuItem findOneByUid(DasMenuItem HaystackItem, string uid) { DasMenuItem Item = null; if (HaystackItem.getUid().Equals(uid)) { Item = HaystackItem; } else if (HaystackItem.hasChilds()) { for (int i = 0; i < HaystackItem.getChilds().Count; i++) { Item = findOneByUid(HaystackItem.getChilds()[i], uid); if (Item != null) { break; } } } return(Item); }