private static XmlElement CreateUserOptionXML(UserOption option, XmlDocument doc) { string category = option.Category.Length == 0 ? "General" : option.Category; XmlElement optionElement = doc.CreateElement("option"); AppendNewXmlElement(optionElement, "variablename", option.VariableName); AppendNewXmlElement(optionElement, "type", option.VarType.Name); AppendNewXmlElement(optionElement, "text", option.Text); AppendNewXmlElement(optionElement, "description", option.Description); AppendNewXmlElement(optionElement, "category", category.Replace(" ", "_")); AppendNewXmlElement(optionElement, "defaultvalue", option.DefaultValueFunctionBody); AppendNewXmlElement(optionElement, "defaultvalueisfunction", "true"); // This is always true AppendNewXmlElement(optionElement, "iteratorname", option.IteratorType == null ? "" : option.IteratorType.FullName); AppendNewXmlElement(optionElement, "validatorfunction", option.ValidatorFunctionBody); AppendNewXmlElement(optionElement, "displaytouserfunction", option.DisplayToUserFunctionBody); AppendNewXmlElement(optionElement, "resetpersession", option.ResetPerSession.ToString()); // Values XmlElement valuesElement = AppendNewXmlElement(optionElement, "values", ""); foreach (string optionValue in option.Values) { AppendNewXmlElement(valuesElement, "value", optionValue); } return(optionElement); }
private static void ReadXmlUserOptionNode(Project project, ICollection <string> missingTypesMessages, XPathNavigator subNode) { string variableName = subNode.SelectSingleNode("variablename").Value; string category = subNode.SelectSingleNode("category").Value.Replace("_", " "); string varType = subNode.SelectSingleNode("type").Value; string text = subNode.SelectSingleNode("text").Value; string description = subNode.SelectSingleNode("description").Value; string defaultValue = subNode.SelectSingleNode("defaultvalue").Value; string IteratorType = subNode.SelectSingleNode("iteratorname").Value; string validatorFunction = subNode.SelectSingleNode("validatorfunction") != null?subNode.SelectSingleNode("validatorfunction").Value : ""; bool defaultValueIsFunction = subNode.SelectSingleNode("defaultvalueisfunction") != null?subNode.SelectSingleNode("defaultvalueisfunction").Value == "true" : false; string displayToUserFunction = subNode.SelectSingleNode("displaytouserfunction") != null?subNode.SelectSingleNode("displaytouserfunction").Value : String.Format("DisplayToUser_UserOption_{0}", variableName); bool refreshPerSession = subNode.SelectSingleNode("resetpersession") != null?Boolean.Parse(subNode.SelectSingleNode("resetpersession").Value) : false; if (category.Length == 0) { category = "General"; } Type realVarType = Project.Instance.GetTypeFromReferencedAssemblies(varType, true); if (realVarType == null) { missingTypesMessages.Add(String.Format("UserOption ({0}): The type of this UserOption ({1}) cannot be found in the referenced files. It will be changed to type 'string'.", variableName, varType)); realVarType = typeof(string); } Type iteratorType = null; if (IteratorType.Length > 0 && IteratorType != "No iteration") { iteratorType = Project.Instance.GetTypeFromReferencedAssemblies(IteratorType, false); if (iteratorType == null) { missingTypesMessages.Add(String.Format("UserOption ({0}): The iterator-type ({1}) of this UserOption cannot be found in the referenced files. It will be changed to have no iterator.", variableName, IteratorType)); iteratorType = null; } } UserOption newUserOption = new UserOption(variableName, category, realVarType, text, description, new string[0], defaultValue, iteratorType, validatorFunction, displayToUserFunction, refreshPerSession); project.AddUserOption(newUserOption); XPathNodeIterator valueNodes = subNode.Select("values/value"); newUserOption.Values.Clear(); int userOptionValueCounter = -1; foreach (XPathNavigator valueNode in valueNodes) { userOptionValueCounter++; newUserOption.Values.Add(valueNode.Value); } }
/// <summary> /// Adds the option if it doesn't already exist /// </summary> /// <param name="option"></param> public void AddUserOption(UserOption option) { int index; UserOption currentUserOption = FindUserOption(option.VariableName, out index); if (currentUserOption == null) { m_userOptions.Add(option); SortUserOptions(); IsDirty = true; } else { m_userOptions[index] = option; } }
public void RemoveUserOption(UserOption option) { m_userOptions.Remove(option); }
public void RemoveUserOption(UserOption option) { m_userOptions.Remove(option); }
/// <summary> /// Adds the option if it doesn't already exist /// </summary> /// <param name="option"></param> public void AddUserOption(UserOption option) { int index; UserOption currentUserOption = FindUserOption(option.VariableName, out index); if (currentUserOption == null) { m_userOptions.Add(option); SortUserOptions(); IsDirty = true; } else { m_userOptions[index] = option; } }
private static void ReadXmlUserOptionNode(Project project, ICollection<string> missingTypesMessages, XPathNavigator subNode) { string variableName = subNode.SelectSingleNode("variablename").Value; string category = subNode.SelectSingleNode("category").Value.Replace("_", " "); string varType = subNode.SelectSingleNode("type").Value; string text = subNode.SelectSingleNode("text").Value; string description = subNode.SelectSingleNode("description").Value; string defaultValue = subNode.SelectSingleNode("defaultvalue").Value; string IteratorType = subNode.SelectSingleNode("iteratorname").Value; string validatorFunction = subNode.SelectSingleNode("validatorfunction") != null ? subNode.SelectSingleNode("validatorfunction").Value : ""; bool defaultValueIsFunction = subNode.SelectSingleNode("defaultvalueisfunction") != null ? subNode.SelectSingleNode("defaultvalueisfunction").Value == "true" : false; string displayToUserFunction = subNode.SelectSingleNode("displaytouserfunction") != null ? subNode.SelectSingleNode("displaytouserfunction").Value : String.Format("DisplayToUser_UserOption_{0}", variableName); bool refreshPerSession = subNode.SelectSingleNode("resetpersession") != null ? Boolean.Parse(subNode.SelectSingleNode("resetpersession").Value) : false; if (category.Length == 0) { category = "General"; } Type realVarType = Project.Instance.GetTypeFromReferencedAssemblies(varType, true); if (realVarType == null) { missingTypesMessages.Add(String.Format("UserOption ({0}): The type of this UserOption ({1}) cannot be found in the referenced files. It will be changed to type 'string'.", variableName, varType)); realVarType = typeof(string); } Type iteratorType = null; if (IteratorType.Length > 0 && IteratorType != "No iteration") { iteratorType = Project.Instance.GetTypeFromReferencedAssemblies(IteratorType, false); if (iteratorType == null) { missingTypesMessages.Add(String.Format("UserOption ({0}): The iterator-type ({1}) of this UserOption cannot be found in the referenced files. It will be changed to have no iterator.", variableName, IteratorType)); iteratorType = null; } } UserOption newUserOption = new UserOption(variableName, category, realVarType, text, description, new string[0], defaultValue, iteratorType, validatorFunction, displayToUserFunction, refreshPerSession); project.AddUserOption(newUserOption); XPathNodeIterator valueNodes = subNode.Select("values/value"); newUserOption.Values.Clear(); int userOptionValueCounter = -1; foreach (XPathNavigator valueNode in valueNodes) { userOptionValueCounter++; newUserOption.Values.Add(valueNode.Value); } }
private static XmlElement CreateUserOptionXML(UserOption option, XmlDocument doc) { string category = option.Category.Length == 0 ? "General" : option.Category; XmlElement optionElement = doc.CreateElement("option"); AppendNewXmlElement(optionElement, "variablename", option.VariableName); AppendNewXmlElement(optionElement, "type", option.VarType.Name); AppendNewXmlElement(optionElement, "text", option.Text); AppendNewXmlElement(optionElement, "description", option.Description); AppendNewXmlElement(optionElement, "category", category.Replace(" ", "_")); AppendNewXmlElement(optionElement, "defaultvalue", option.DefaultValueFunctionBody); AppendNewXmlElement(optionElement, "defaultvalueisfunction", "true"); // This is always true AppendNewXmlElement(optionElement, "iteratorname", option.IteratorType == null ? "" : option.IteratorType.FullName); AppendNewXmlElement(optionElement, "validatorfunction", option.ValidatorFunctionBody); AppendNewXmlElement(optionElement, "displaytouserfunction", option.DisplayToUserFunctionBody); AppendNewXmlElement(optionElement, "resetpersession", option.ResetPerSession.ToString()); // Values XmlElement valuesElement = AppendNewXmlElement(optionElement, "values", ""); foreach (string optionValue in option.Values) { AppendNewXmlElement(valuesElement, "value", optionValue); } return optionElement; }