public bool Verify() { Debug.Check(_enumType != null); Debug.Check(_enumMember != null); if (_enumType != null && _enumMember != null) { string memberName = this.nameTextBox.Text; bool isValid = !string.IsNullOrEmpty(memberName) && Char.IsLetter(memberName[0]); if (isValid && _enumMember != null) { EnumType.EnumMemberType member = _enumType.GetMemberByName(memberName); if (_isNew) { isValid = (member == null); } else { isValid = (member == null || member == _originalMember); } } return(isValid); } return(false); }
public EditEnumMemberDialog(EnumType enumType, EnumType.EnumMemberType enumMember) { InitializeComponent(); this.Owner = MainWindow.Instance; this.Text = (enumMember == null) ? Resources.AddEnumMember : Resources.EditEnumMember; this.editEnumMemberPanel.Initialize(enumType, enumMember); }
public void Initialize(EnumType enumType, EnumType.EnumMemberType enumMember) { _initialized = false; _isModified = false; _enumType = enumType; _originalMember = enumMember; if (enumMember == null) { _isNew = true; _enumMember = new EnumType.EnumMemberType(enumMember); } else { _isNew = false; _enumMember = enumMember; } this.nameTextBox.Text = _enumMember.Name; this.valueNumericUpDown.Value = _enumMember.Value; this.dispTextBox.Text = _enumMember.DisplayName; this.descTextBox.Text = _enumMember.Description; this.nameTextBox.Enabled = enumType.IsCustomized; this.valueNumericUpDown.Enabled = enumType.IsCustomized; this.dispTextBox.Enabled = enumType.IsCustomized; this.descTextBox.Enabled = enumType.IsCustomized; this.nameTextBox.Focus(); if (this.nameTextBox.TextLength > 0) { this.nameTextBox.SelectionStart = this.nameTextBox.TextLength; } else { this.nameTextBox.Select(); } _initialized = true; }
private static void writeEnumNode(XmlNode rootNode, Hashtable nodeDict, StreamWriter wrtr) { XmlNode typeNode = rootNode.Attributes["Type"]; if (typeNode != null && rootNode.ChildNodes.Count > 0) { XmlNode firstChildNode = rootNode.ChildNodes[0]; XmlNode firstValueNode = firstChildNode.Attributes["Value"]; if (firstValueNode == null) { return; } string firstValueName = firstValueNode.Value; string enumName = HandleHierarchyName(typeNode.Value); if (nodeDict.ContainsKey(enumName)) { return; } nodeDict.Add(enumName, rootNode); // Write out the hanlder of this class. wrtr.WriteLine("\t[TypeHandler(typeof({0}))]", enumName); wrtr.WriteLine("\tpublic class {0}TypeHandler", enumName); wrtr.WriteLine("\t{"); wrtr.WriteLine("\t\tpublic static object Create()"); wrtr.WriteLine("\t\t{"); wrtr.WriteLine("\t\t\t{0} instance = ({0})DefaultValue(\"\");", enumName); wrtr.WriteLine("\t\t\treturn instance;"); wrtr.WriteLine("\t\t}"); wrtr.WriteLine(""); wrtr.WriteLine("\t\tpublic static bool Parse(object parent, string paramName, string parStr, Plugin.SetValue setter)"); wrtr.WriteLine("\t\t{"); wrtr.WriteLine("\t\t\t{0} result = ({0})Enum.Parse(typeof({0}), parStr, true);", enumName); wrtr.WriteLine("\t\t\tsetter(result);"); wrtr.WriteLine("\t\t\treturn true;"); wrtr.WriteLine("\t\t}"); wrtr.WriteLine(""); wrtr.WriteLine("\t\tpublic static DesignerProperty CreateDesignerProperty(string category, string name, Type type, float rangeMin, float rangeMax)"); wrtr.WriteLine("\t\t{"); wrtr.WriteLine("\t\t\treturn new DesignerEnum(name, name, category, DesignerProperty.DisplayMode.Parameter, 0, DesignerProperty.DesignerFlags.NoFlags, \"\");"); wrtr.WriteLine("\t\t}"); wrtr.WriteLine(""); wrtr.WriteLine("\t\tpublic static object DefaultValue(string defaultValue)"); wrtr.WriteLine("\t\t{"); wrtr.WriteLine("\t\t\tArray values = Enum.GetValues(typeof({0}));", enumName); wrtr.WriteLine("\t\t\tforeach (object enumVal in values)"); wrtr.WriteLine("\t\t\t{"); wrtr.WriteLine("\t\t\t string enumValueName = Enum.GetName(typeof({0}), enumVal);", enumName); wrtr.WriteLine("\t\t\t if (enumValueName == defaultValue)"); wrtr.WriteLine("\t\t\t {"); wrtr.WriteLine("\t\t\t return enumVal;"); wrtr.WriteLine("\t\t\t }"); wrtr.WriteLine("\t\t\t}"); wrtr.WriteLine("\t\t\treturn {0}.{1};", enumName, firstValueName); wrtr.WriteLine("\t\t}"); wrtr.WriteLine(""); wrtr.WriteLine("\t\tpublic static Type GetEditorType()"); wrtr.WriteLine("\t\t{"); wrtr.WriteLine("\t\t\treturn typeof(DesignerEnumEditor);"); wrtr.WriteLine("\t\t}"); wrtr.WriteLine("\t}"); wrtr.WriteLine(""); // Write out this enum itself. XmlNode displayNameNode = rootNode.Attributes["DisplayName"]; string displayName = (displayNameNode != null && displayNameNode.Value.Length > 0) ? displayNameNode.Value : enumName; XmlNode descNode = rootNode.Attributes["Desc"]; string desc = (descNode != null && descNode.Value.Length > 0) ? descNode.Value : displayName; string isCustomized = GetAttribute(rootNode, "IsCustomized"); string isExtended = GetAttribute(rootNode, "IsExtended"); string ns = GetAttribute(rootNode, "Namespace"); if (string.IsNullOrEmpty(ns)) { ns = HandleNamespace(typeNode.Value); } string basicName = HandleBasicName(typeNode.Value); EnumType enumType = new EnumType(isCustomized == "true", isExtended == "true", basicName, ns, displayName, desc); TypeManager.Instance.Enums.Add(enumType); wrtr.WriteLine("\t[Behaviac.Design.EnumDesc(\"{0}\", \"{1}\", \"{2}\")]", typeNode.Value, displayName, desc); wrtr.WriteLine("\tpublic enum {0}", enumName); wrtr.WriteLine("\t{"); foreach (XmlNode childNode in rootNode.ChildNodes) { if (childNode.Name == "enum") { XmlNode nativeValueNode = childNode.Attributes["NativeValue"]; string nativeValueName = (nativeValueNode != null) ? nativeValueNode.Value : ""; XmlNode valueNode = childNode.Attributes["Value"]; string valueName = (valueNode != null) ? valueNode.Value : ""; displayNameNode = childNode.Attributes["DisplayName"]; displayName = (displayNameNode != null && displayNameNode.Value.Length > 0) ? displayNameNode.Value : valueName; descNode = childNode.Attributes["Desc"]; desc = (descNode != null && descNode.Value.Length > 0) ? descNode.Value : displayName; string memberValue = GetAttribute(childNode, "MemberValue"); EnumType.EnumMemberType enumMember = new EnumType.EnumMemberType(null); enumMember.Name = HandleBasicName(valueName); enumMember.Namespace = enumType.Namespace; enumMember.DisplayName = displayName; enumMember.Description = desc; try { enumMember.Value = int.Parse(memberValue); } catch { enumMember.Value = -1; } enumType.Members.Add(enumMember); wrtr.WriteLine("\t\t[Behaviac.Design.EnumMemberDesc(\"{0}\", \"{1}\", \"{2}\")]", nativeValueName, displayName, desc); wrtr.WriteLine("\t\t{0},\n", valueName); } } wrtr.WriteLine("\t}"); wrtr.WriteLine(""); } }