public static Query CreateFromXML(XmlElement queryElement, Menu parentMenu) { if (queryElement.Name != "query") { throw new ArgumentException("argument must be a query element", "queryElement"); } MenuItemBaseProperties baseProperties = new MenuItemBaseProperties(); baseProperties.FillFromXml(queryElement, parentMenu); List <IProcessor> processorList = new List <IProcessor>(); XmlElement processorsElement = queryElement["processors"]; if (processorsElement != null) { string processorElementName; foreach (XmlNode node in processorsElement) { if (node is XmlElement element) { processorElementName = element.Name; if (mProcessorParsers.ContainsKey(processorElementName)) { processorList.Add(mProcessorParsers[processorElementName].CreateFromXML(element)); } } } } return(new Query(baseProperties, queryElement.Attributes["command"].Value, processorList.ToArray(), TextParser.ParseNullableXmlBoolean(queryElement.Attributes["offerClipboardCopy"]))); }
private Menu(MenuItemBaseProperties baseProperties, bool?returnToMainMenu) : base(baseProperties) { if (returnToMainMenu.HasValue) { mReturnToMainMenu = returnToMainMenu.Value; } }
private Query(MenuItemBaseProperties baseProperties, string command, IProcessor[] processors, bool?offerClipboardCopy) : base(baseProperties) { mCommand = command; mProcessors = processors; if (offerClipboardCopy.HasValue) { mOfferClipboardCopy = offerClipboardCopy.Value; } }
private Task(MenuItemBaseProperties baseProperties, string progressCaption, string[] activities, bool?continueOnError, DecoratedMessage postMessage) : base(baseProperties) { ProgressCaption = progressCaption ?? throw new ArgumentNullException("progressCaption"); mActivities = activities ?? throw new ArgumentNullException("activities"); if (continueOnError != null) { mContinueOnError = continueOnError.Value; } mPostMessage = postMessage; }
public static Task CreateFromXML(XmlElement taskElement, Menu parentMenu) { if (taskElement.Name != "task") { throw new ArgumentException("argument must be a task element", "taskElement"); } MenuItemBaseProperties baseProperties = new MenuItemBaseProperties(); baseProperties.FillFromXml(taskElement, parentMenu); DecoratedMessage postMessage = null; XmlElement postMessageElement = taskElement["postMessage"]; if (postMessageElement != null) { MessageBoxIcon?messageTypeIcon = null; XmlAttribute messageTypeAttribute = postMessageElement.Attributes["messageType"]; if (messageTypeAttribute != null) { switch (messageTypeAttribute.Value) { case "neutral": messageTypeIcon = MessageBoxIcon.None; break; case "information": messageTypeIcon = MessageBoxIcon.Information; break; case "warning": messageTypeIcon = MessageBoxIcon.Warning; break; } } postMessage = new DecoratedMessage(TextParser.ParseMultilineElementText(postMessageElement.InnerText.Trim()), postMessageElement.Attributes["caption"].Value, false, TextParser.ParseNullableXmlBoolean(postMessageElement.Attributes["showIfFailed"]), null, messageTypeIcon); } return(new Task(baseProperties, taskElement.Attributes["progressCaption"].Value, TextParser.ParseActivities(taskElement["activities"].InnerText), TextParser.ParseNullableXmlBoolean(taskElement.Attributes["continueOnError"]), postMessage)); }
public static Menu CreateFromXML(XmlElement menuElement, Menu parentMenu) { if (menuElement.Name != "menu") { throw new ArgumentException("argument must be a menu element", "menuElement"); } MenuItemBaseProperties baseProperties = new MenuItemBaseProperties(); baseProperties.FillFromXml(menuElement, parentMenu); Menu menu = new Menu(baseProperties, TextParser.ParseNullableXmlBoolean(menuElement.Attributes["returnToMainMenu"])); List <MenuItem> menuItems = new List <MenuItem>(); foreach (XmlNode node in menuElement) { if (node is XmlElement element) { switch (element.Name) { case "menu": menuItems.Add(CreateFromXML(element, menu)); break; case "query": menuItems.Add(Query.CreateFromXML(element, menu)); break; case "task": menuItems.Add(Task.CreateFromXML(element, menu)); break; } } } menu.MenuItems = menuItems.ToArray(); return(menu); }
protected MenuItem(MenuItemBaseProperties baseProperties) { mBaseProperties = baseProperties ?? throw new ArgumentNullException("baseProperties"); }