private void spreadButton_Click(object sender, EventArgs e) { var nodes = GetNodes(resultsTreeView); bool didSomething = false; foreach (var node in nodes) { if (node.Checked) { var variable = node.Tag as IVariable; if (variable != null) { if (variable.DataType.IsInteger()) { var metaData = ainFile.MetadataFile.Metadata.GetOrAddNew(variable); metaData.EnumerationType = this.enumerationType; didSomething = true; } } } } if (didSomething) { ainFile.SaveMetadata(); } }
public void FindFunctionTypes() { FindFunctionTypesMain(false); FindFunctionTypesRemaining(false); FindFunctionTypesMain(true); FindFunctionTypesRemaining(true); SetMetadata(ainFile.Functions.Cast <IVariable>()); SetMetadata(ainFile.Globals.Cast <IVariable>()); SetMetadata(ainFile.Structs.Cast <IVariable>()); ainFile.SaveMetadata(); }
bool SaveEnumeration() { string newName = RemoveIllegalCharacters(EnumerationNameTextBox.Text); var types = ainFile.MetadataFile.EnumerationTypes; EnumerationType enumerationType; if (EnumerationName != newName) { if (types.ContainsKey(newName)) { var result = MessageBox.Show("Overwrite existing enumeration type, \"" + newName + "\"", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (result == DialogResult.No) { return(false); } } if (String.IsNullOrEmpty(EnumerationName)) { enumerationType = types.GetOrAddNew(newName); enumerationType.Name = newName; enumerationType.Clear(); } else { enumerationType = types.GetOrAddNew(EnumerationName); types.Remove(EnumerationName); enumerationType.Name = newName; types.Set(newName, enumerationType); enumerationType.Clear(); } } else { enumerationType = types.GetOrAddNew(newName); enumerationType.Name = newName; enumerationType.Clear(); } this.EnumerationName = newName; var lines = scintilla1.Lines.OfType <ScintillaNET.Line>().Select(l => l.Text).ToArray(); foreach (var line in lines) { var fields = line.Split('\t'); if (fields.Length >= 2) { string number = fields[0]; string name = fields[1]; name = RemoveIllegalCharacters(name); int value; if (int.TryParse(number, out value) && name != "") { enumerationType.Set(value, name); } } } if (!ainFile.SaveMetadata()) { MessageBox.Show("Unable to write metadata file!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); return(false); } return(true); }
bool SetMetadata() { //quit if we're not attached to anything if (variable == null || ainFile == null) { return(false); } bool dirty = false; //Alternative name string defaultAlternativeName = ainFile.AlternativeNames.GetOrNull(variable.Name); Metadata metaData = ainFile.MetadataFile.Metadata.GetOrNew(variable); string alternativeName = AlternativeNameTextBox.Text; if (alternativeName == defaultAlternativeName || alternativeName == "") { alternativeName = null; } if (metaData.ReplacementName != alternativeName) { dirty = true; } metaData.ReplacementName = alternativeName; //default value if (findDefaultValueButton.Enabled == true) { var defaultValue = metaData.DefaultValue; if (defaultValue == null) { if (currentDefaultValue != null) { dirty = true; } metaData.DefaultValue = currentDefaultValue; } else { if (!defaultValue.Equals(currentDefaultValue)) { dirty = true; metaData.DefaultValue = currentDefaultValue; } } } //enumeration type if (variable.DataType.GetTypeOfArrayElement().IsInteger()) { var enumerationType = GetSelectedEnumerationType(); if (metaData.EnumerationType != enumerationType) { dirty = true; } metaData.EnumerationType = enumerationType; } else if (variable.DataType.IsFunction()) { int functionTypeIndex = GetSelectedFunctionType(); if (metaData.FuncTypeIndex != functionTypeIndex) { dirty = true; } metaData.FuncTypeIndex = functionTypeIndex; } string description = DescriptionTextBox.Text; if (String.IsNullOrEmpty(description)) { description = null; } if (metaData.Description != description) { dirty = true; } metaData.Description = description; //set the member if (metaData.DefaultValue == null && metaData.Description == null && metaData.EnumerationType == null && metaData.ReplacementName == null && metaData.FuncTypeIndex == -1) { if (ainFile.MetadataFile.Metadata.ContainsKey(variable)) { ainFile.MetadataFile.Metadata.Remove(variable); } } else { ainFile.MetadataFile.Metadata.Set(variable, metaData); } if (dirty) { ainFile.SaveMetadata(); } return(dirty); }