public string GenerateSyntax(FieldInfoWrapper info) { var syntax = new SyntaxWriter(this._version); if (info.IsPublic) { syntax.WriteToken("public"); } if (info.IsStatic) { syntax.WriteToken("static"); } if (info.IsInitOnly) { syntax.WriteToken("readonly"); } if (info.IsLiteral) { syntax.WriteToken("const"); } syntax.WriteTypeName(info.FieldType); syntax.WriteRaw(" " + info.Name); return(syntax.CurrentSyntax); }
void AddField(TextWriter writer, FieldInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"field\" src=\"{0}/resources/blank.gif\" title=\"Field\" alt=\"Field\"/>", RootRelativePath); if (info.IsStatic) { writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Field\" alt=\"Static Field\"/>", RootRelativePath); } writer.WriteLine("</td>"); writer.WriteLine("<td>{0}</td>", info.Name); writer.WriteLine("<td>"); writer.Write(ConstructTypeInfoLinkContent(info.FieldType)); writer.WriteLine("</td>"); writer.WriteLine("<td>"); var docs = NDocUtilities.FindDocumentation(this._currentNDoc, info); var html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
void AddField(TextWriter writer, FieldInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"field\" src=\"{0}/resources/blank.gif\" title=\"Field\" alt=\"Field\"/>", RootRelativePath); if (info.IsStatic) { writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Field\" alt=\"Static Field\"/>", RootRelativePath); } writer.WriteLine("</td>"); writer.WriteLine("<td>{0}</td>", info.Name); writer.WriteLine("<td>"); writer.Write(ConstructTypeInfoLinkContent(info.FieldType)); writer.WriteLine("</td>"); writer.WriteLine("<td>"); string html = string.Empty; var isInherited = !info.DeclaringType.Equals(_versionType); if (isInherited) { html = string.Format("Inherited from {0}.{1}.", info.DeclaringType.Namespace, info.DeclaringType.Name); } else { var docs = NDocUtilities.FindDocumentation(info); html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); } writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
public void UpdateUI() { this.Updating = true; foreach (KeyValuePair <string, Control> kvp in _bindings) { if (!_fieldInfo.ContainsKey(kvp.Key)) { throw new Exception("Invalid binding key"); } else { FieldInfoWrapper field = _fieldInfo[kvp.Key]; eNumberFormat format = _fieldFormat[kvp.Key]; object value = field.GetValue(this.Entity); if (kvp.Value is TextBox) { if (value is IFormattable) { kvp.Value.Text = ((IFormattable)value).ToString(format == eNumberFormat.Decimal ? "" : "X", System.Globalization.CultureInfo.InvariantCulture); } else { kvp.Value.Text = value == null ? "" : ((string)value).Replace(Environment.NewLine, "\n").Replace("\n", Environment.NewLine); } } else if (kvp.Value is ctrlPathSelection) { kvp.Value.Text = (string)value; } else if (kvp.Value is CheckBox) { ((CheckBox)kvp.Value).Checked = Convert.ToBoolean(value); } else if (kvp.Value is ctrlRiskyOption) { ((ctrlRiskyOption)kvp.Value).Checked = Convert.ToBoolean(value); } else if (kvp.Value is RadioButton) { ((RadioButton)kvp.Value).Checked = (bool)value; } else if (kvp.Value is Panel) { RadioButton radio = kvp.Value.Controls.OfType <RadioButton>().FirstOrDefault(r => r.Tag.Equals(value)); if (radio != null) { radio.Checked = true; } else { throw new Exception("No radio button matching value found"); } } else if (kvp.Value is ctrlTrackbar) { if (field.FieldType == typeof(Int32)) { ((ctrlTrackbar)kvp.Value).Value = (int)value; } else { ((ctrlTrackbar)kvp.Value).Value = (int)(uint)value; } } else if (kvp.Value is ctrlHorizontalTrackbar) { ((ctrlHorizontalTrackbar)kvp.Value).Value = (int)value; } else if (kvp.Value is TrackBar) { if (field.FieldType == typeof(Int32)) { ((TrackBar)kvp.Value).Value = (int)value; } else { ((TrackBar)kvp.Value).Value = (int)(uint)value; } } else if (kvp.Value is MesenNumericUpDown) { MesenNumericUpDown nud = kvp.Value as MesenNumericUpDown; decimal val; if (field.FieldType == typeof(UInt32)) { val = (UInt32)value; } else if (field.FieldType == typeof(Int32)) { val = (Int32)value; } else { val = (decimal)(double)value; } val = Math.Min(Math.Max(val, nud.Minimum), nud.Maximum); nud.Value = val; } else if (kvp.Value is ComboBox) { ComboBox combo = kvp.Value as ComboBox; if (value is Enum) { combo.SelectedItem = ResourceHelper.GetEnumText((Enum)value); } else if (field.FieldType == typeof(UInt32)) { for (int i = 0, len = combo.Items.Count; i < len; i++) { UInt32 numericValue; string item = Regex.Replace(combo.Items[i].ToString(), "[^0-9]", ""); if (UInt32.TryParse(item, out numericValue)) { if (numericValue == (UInt32)value) { combo.SelectedIndex = i; break; } } } } else if (field.FieldType == typeof(string)) { combo.SelectedItem = value; if (combo.SelectedIndex < 0 && combo.Items.Count > 0) { combo.SelectedIndex = 0; } } } } } this.Updating = false; }
public void UpdateObject() { foreach (KeyValuePair <string, Control> kvp in _bindings) { if (!_fieldInfo.ContainsKey(kvp.Key)) { throw new Exception("Invalid binding key"); } else { try { FieldInfoWrapper field = _fieldInfo[kvp.Key]; eNumberFormat format = _fieldFormat[kvp.Key]; if (kvp.Value is TextBox) { object value = kvp.Value.Text; NumberStyles numberStyle = format == eNumberFormat.Decimal ? NumberStyles.Integer : NumberStyles.HexNumber; if (field.FieldType != typeof(string)) { value = ((string)value).Trim().Replace("$", "").Replace("0x", ""); if (string.IsNullOrWhiteSpace((string)value)) { value = "0"; } } if (field.FieldType == typeof(UInt32)) { UInt32 result; if (!UInt32.TryParse((string)value, numberStyle, null, out result)) { continue; //Invalid value, ignore it } value = result; } else if (field.FieldType == typeof(Int32)) { Int32 result; if (!Int32.TryParse((string)value, numberStyle, null, out result)) { continue; //Invalid value, ignore it } value = result; } else if (field.FieldType == typeof(Byte)) { Byte result; if (!Byte.TryParse((string)value, numberStyle, null, out result)) { continue; //Invalid value, ignore it } value = result; } else if (field.FieldType == typeof(UInt16)) { UInt16 result; if (!UInt16.TryParse((string)value, numberStyle, null, out result)) { continue; //Invalid value, ignore it } value = result; } else if (field.FieldType == typeof(UInt64)) { UInt64 result; if (!UInt64.TryParse((string)value, numberStyle, null, out result)) { continue; //Invalid value, ignore it } value = result; } else if (field.FieldType == typeof(Int64)) { Int64 result; if (!Int64.TryParse((string)value, numberStyle, null, out result)) { continue; //Invalid value, ignore it } value = result; } field.SetValue(Entity, value); } else if (kvp.Value is ctrlPathSelection) { field.SetValue(Entity, ((ctrlPathSelection)kvp.Value).Text); } else if (kvp.Value is CheckBox) { if (field.FieldType == typeof(bool)) { field.SetValue(Entity, ((CheckBox)kvp.Value).Checked); } else if (field.FieldType == typeof(byte)) { field.SetValue(Entity, ((CheckBox)kvp.Value).Checked ? (byte)1 : (byte)0); } } else if (kvp.Value is ctrlRiskyOption) { if (field.FieldType == typeof(bool)) { field.SetValue(Entity, ((ctrlRiskyOption)kvp.Value).Checked); } else if (field.FieldType == typeof(byte)) { field.SetValue(Entity, ((ctrlRiskyOption)kvp.Value).Checked ? (byte)1 : (byte)0); } } else if (kvp.Value is RadioButton) { field.SetValue(Entity, ((RadioButton)kvp.Value).Checked); } else if (kvp.Value is Panel) { field.SetValue(Entity, kvp.Value.Controls.OfType <RadioButton>().FirstOrDefault(r => r.Checked).Tag); } else if (kvp.Value is ctrlTrackbar) { if (field.FieldType == typeof(Int32)) { field.SetValue(Entity, (Int32)((ctrlTrackbar)kvp.Value).Value); } else { field.SetValue(Entity, (UInt32)((ctrlTrackbar)kvp.Value).Value); } } else if (kvp.Value is ctrlHorizontalTrackbar) { field.SetValue(Entity, (Int32)((ctrlHorizontalTrackbar)kvp.Value).Value); } else if (kvp.Value is TrackBar) { if (field.FieldType == typeof(Int32)) { field.SetValue(Entity, ((TrackBar)kvp.Value).Value); } else { field.SetValue(Entity, (UInt32)((TrackBar)kvp.Value).Value); } } else if (kvp.Value is MesenNumericUpDown) { if (field.FieldType == typeof(UInt32)) { field.SetValue(Entity, (UInt32)((MesenNumericUpDown)kvp.Value).Value); } else if (field.FieldType == typeof(Int32)) { field.SetValue(Entity, (Int32)((MesenNumericUpDown)kvp.Value).Value); } else { field.SetValue(Entity, (double)((MesenNumericUpDown)kvp.Value).Value); } } else if (kvp.Value is ComboBox) { if (field.FieldType.IsSubclassOf(typeof(Enum))) { Enum enumValue = ((ComboBox)kvp.Value).GetEnumValue(field.FieldType); if (enumValue != null) { field.SetValue(Entity, enumValue); } } else if (field.FieldType == typeof(UInt32)) { UInt32 numericValue; string item = Regex.Replace(((ComboBox)kvp.Value).SelectedItem.ToString(), "[^0-9]", ""); if (UInt32.TryParse(item, out numericValue)) { field.SetValue(Entity, numericValue); } } else if (field.FieldType == typeof(string)) { field.SetValue(Entity, ((ComboBox)kvp.Value).SelectedItem); } } } catch { //Ignore exceptions caused by bad user input } } } }
public FieldWriter(GenerationManifest artifacts, FrameworkVersion version, FieldInfoWrapper FieldInfo) : base(artifacts, version, FieldInfo) { this._fieldInfo = FieldInfo; }
void AddField(TextWriter writer, FieldInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"field\" src=\"{0}/resources/blank.gif\" title=\"Field\" alt=\"Field\"/>", RootRelativePath); if (info.IsStatic) writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Field\" alt=\"Static Field\"/>", RootRelativePath); writer.WriteLine("</td>"); writer.WriteLine("<td>{0}</td>", info.Name); writer.WriteLine("<td>"); writer.Write(ConstructTypeInfoLinkContent(info.FieldType)); writer.WriteLine("</td>"); writer.WriteLine("<td>"); string html = string.Empty; if (_versionType.Namespace != info.DeclaringType.Namespace) { html = string.Format("Inherited from {0}.{1}.", info.DeclaringType.Namespace, info.DeclaringType.Name); } else { var docs = NDocUtilities.FindDocumentation(info); html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); } writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
void AddField(TextWriter writer, FieldInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"field\" src=\"{0}/resources/blank.gif\" title=\"Field\" alt=\"Field\"/>", RootRelativePath); if (info.IsStatic) writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Field\" alt=\"Static Field\"/>", RootRelativePath); writer.WriteLine("</td>"); writer.WriteLine("<td>{0}</td>", info.Name); writer.WriteLine("<td>"); writer.Write(ConstructTypeInfoLinkContent(info.FieldType)); writer.WriteLine("</td>"); writer.WriteLine("<td>"); var docs = NDocUtilities.FindDocumentation(this._currentNDoc, info); var html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
public string GenerateSyntax(FieldInfoWrapper info) { var syntax = new SyntaxWriter(this._version); if (info.IsPublic) syntax.WriteToken("public"); if (info.IsStatic) syntax.WriteToken("static"); if (info.IsInitOnly) syntax.WriteToken("readonly"); if (info.IsLiteral) syntax.WriteToken("const"); syntax.WriteTypeName(info.FieldType); syntax.WriteRaw(" " + info.Name); return syntax.CurrentSyntax; }
public FieldWriter(GenerationManifest artifacts, FrameworkVersion version, FieldInfoWrapper FieldInfo) : base(artifacts, version, FieldInfo) { this._fieldInfo = FieldInfo; }
public void AddBinding(string fieldName, object bindedField, eNumberFormat format = eNumberFormat.Default, EventHandler onEditHandler = null) { if (BindedType == null) { throw new Exception("Need to override BindedType to use bindings"); } if (_fieldInfo == null) { _fieldInfo = new Dictionary <string, FieldInfoWrapper>(); PropertyInfo[] properties = BindedType.GetProperties(); foreach (PropertyInfo info in properties) { _fieldInfo[info.Name] = new FieldInfoWrapper(info); } FieldInfo[] members = BindedType.GetFields(); foreach (FieldInfo info in members) { _fieldInfo[info.Name] = new FieldInfoWrapper(info); } } if (_fieldInfo.ContainsKey(fieldName)) { Type fieldType = _fieldInfo[fieldName].FieldType; if (fieldType.IsSubclassOf(typeof(Enum)) && bindedField is ComboBox) { BaseConfigForm.InitializeComboBox(((ComboBox)bindedField), fieldType); } _bindings[fieldName] = bindedField; _bindedHandlers[fieldName] = onEditHandler; if (bindedField is TextBox) { ((TextBox)bindedField).Leave += onEditHandler; } else if (bindedField is ctrlPathSelection) { ((ctrlPathSelection)bindedField).Leave += onEditHandler; } else if (bindedField is CheckBox) { ((CheckBox)bindedField).CheckedChanged += onEditHandler; } else if (bindedField is ToolStripMenuItem) { ((ToolStripMenuItem)bindedField).CheckedChanged += onEditHandler; } else if (bindedField is ctrlRiskyOption) { ((ctrlRiskyOption)bindedField).Click += onEditHandler; } else if (bindedField is RadioButton) { ((RadioButton)bindedField).CheckedChanged += onEditHandler; } else if (bindedField is PictureBox) { ((PictureBox)bindedField).BackColorChanged += onEditHandler; } else if (bindedField is Panel) { FieldInfoWrapper field = _fieldInfo[fieldName]; object value = field.GetValue(this.Entity); RadioButton radio = ((Panel)bindedField).Controls.OfType <RadioButton>().FirstOrDefault(r => r.Tag.Equals(value)); if (radio != null) { radio.CheckedChanged += onEditHandler; } else { throw new Exception("No radio button matching value found"); } } else if (bindedField is ctrlTrackbar) { ((ctrlTrackbar)bindedField).ValueChanged += onEditHandler; } else if (bindedField is ctrlHorizontalTrackbar) { ((ctrlHorizontalTrackbar)bindedField).ValueChanged += onEditHandler; } else if (bindedField is TrackBar) { ((TrackBar)bindedField).ValueChanged += onEditHandler; } else if (bindedField is MesenNumericUpDown) { ((MesenNumericUpDown)bindedField).ValueChanged += onEditHandler; } else if (bindedField is ComboBox) { ((ComboBox)bindedField).SelectedIndexChanged += onEditHandler; } _fieldFormat[fieldName] = format; } else { throw new Exception("Invalid field name"); } }