public static void UnregisterExternalTool(ExternalTool tool) { List <ExternalTool> extList; if (ExternalTools.TryGetValue(tool.Extension, out extList)) { for (int i = 0; i < extList.Count; i++) { if (tool == extList[i]) { extList.RemoveAt(i); foreach (SettingsPropertyValue value in Gui.Config.PropertyValues) { if (value.PropertyValue.GetType() == typeof(ExternalTool)) { ExternalTool settingsTool = (ExternalTool)value.PropertyValue; if (settingsTool.ToolPath == tool.ToolPath) { Gui.Config.PropertyValues.Remove(value.Name); Gui.Config.Properties.Remove(value.Name); break; } } } return; } } } }
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { ExternalTool tool = (ExternalTool)value; return(tool.Extension + ",|" + tool.ppFormatIndex + ",|" + tool.ToolPath + ",|" + tool.ToTextOptions + ",|" + tool.ToBinaryOptions); } return(base.ConvertTo(context, culture, value, destinationType)); }
public string GetData() { ExternalTool decoder = SelectTool(extension, ppFormatIndex, true); if (decoder == null) { throw new Exception("No tool registered for " + extension + " supports decoding of ppFormat " + ppFormat.Array[ppFormatIndex]); } return(decoder.ConvertToText(Parser.contents)); }
public void SetData(string text) { ExternalTool encoder = SelectTool(extension, ppFormatIndex, false); if (encoder == null) { throw new Exception("No tool registered for " + extension + " supports encoding of ppFormat " + ppFormat.Array[ppFormatIndex]); } Parser.contents = encoder.ConvertToBinary(text); Text = text; }
public static string SearchToolVar(ExternalTool tool) { foreach (var var in Gui.Scripting.Variables) { if (var.Value == tool) { return(var.Key); } } return(null); }
public static string SearchToolVar(ExternalTool tool) { foreach (var var in Gui.Scripting.Variables) { if (var.Value == tool) { return var.Key; } } return null; }
public ppEditor(ppParser parser) { if (ExternalTools == null && Gui.Config != null) { ExternalTools = new Dictionary <string, List <ExternalTool> >(); foreach (SettingsPropertyValue value in Gui.Config.PropertyValues) { if (value.PropertyValue.GetType() == typeof(ExternalTool)) { ExternalTool tool = (ExternalTool)value.PropertyValue; tool = RegisterExternalTool(tool, false); string toolVar = Gui.Scripting.GetNextVariable("externalTool"); Gui.Scripting.Variables.Add(toolVar, tool); } } } Parser = parser; }
public static ExternalTool SelectTool(string extension, int ppFormatIndex, bool forDecoding) { ExternalTool result = null; List <ExternalTool> toolList; if (!ppEditor.ExternalTools.TryGetValue(extension.ToUpper(), out toolList)) { throw new Exception("No tools registered for " + extension.ToUpper()); } foreach (ExternalTool tool in toolList) { if ((tool.ppFormatIndex == -1 || tool.ppFormatIndex == ppFormatIndex) && (forDecoding && tool.ToTextOptions != null && tool.ToTextOptions.Length > 0 || !forDecoding && tool.ToBinaryOptions != null && tool.ToBinaryOptions.Length > 0)) { result = tool; break; } } return(result); }
private void comboBoxToolPath_SelectedIndexChanged(object sender, EventArgs e) { checkBoxOnlyPPFormat.Checked = false; comboBoxOnlyPPFormat.SelectedIndex = default_ppFormatIndex; ExternalTool tool = comboBoxToolPath.SelectedItem as ExternalTool; if (tool != null) { toolTip1.SetToolTip(comboBoxToolPath, tool.ToolPath); textBoxDecodingArguments.Text = tool.ToTextOptions; textBoxEncodingArguments.Text = tool.ToBinaryOptions; if (tool.ppFormatIndex != -1) { checkBoxOnlyPPFormat.Checked = true; comboBoxOnlyPPFormat.SelectedIndex = tool.ppFormatIndex; } } else { toolTip1.SetToolTip(comboBoxToolPath, comboBoxToolPath.Text); textBoxDecodingArguments.Text = String.Empty; textBoxEncodingArguments.Text = String.Empty; } }
public static ExternalTool RegisterExternalTool(ExternalTool tool, bool save) { try { string extensionKey = tool.Extension.ToUpper(); List <ExternalTool> extList; if (!ExternalTools.TryGetValue(extensionKey, out extList)) { extList = new List <ExternalTool>(); ExternalTools.Add(extensionKey, extList); } else { foreach (ExternalTool presentTool in extList) { if (presentTool.ToolPath.Equals(tool.ToolPath, StringComparison.InvariantCultureIgnoreCase)) { presentTool.ToTextOptions = tool.ToTextOptions; presentTool.ToBinaryOptions = tool.ToBinaryOptions; presentTool.ppFormatIndex = tool.ppFormatIndex; tool = presentTool; return(tool); } } } extList.Add(tool); return(tool); } finally { if (save) { bool stored = false; HashSet <int> usedIndices = new HashSet <int>(); foreach (SettingsPropertyValue value in Gui.Config.PropertyValues) { if (value.Name.StartsWith("ExternalTool")) { ExternalTool newTool = (ExternalTool)value.PropertyValue; if (newTool.ToolPath.Equals(tool.ToolPath, StringComparison.InvariantCultureIgnoreCase)) { Gui.Config[value.Name] = tool; stored = true; break; } string intStr = value.Name.Substring("ExternalTool".Length); usedIndices.Add(Int32.Parse(intStr)); } } if (!stored) { int smallestFreeTool; for (smallestFreeTool = 0; smallestFreeTool < usedIndices.Count; smallestFreeTool++) { if (!usedIndices.Contains(smallestFreeTool)) { break; } } if (smallestFreeTool >= 30 /*Settings.MaxExternalTools*/) { Report.ReportLog("Cant persist more than 30 external tools."); } else { SettingsProperty newProp = new SettingsProperty( "ExternalTool" + smallestFreeTool, typeof(ExternalTool), Gui.Config.Providers[Path.GetFileName(System.Reflection.Assembly.GetEntryAssembly().Location)], false, tool, SettingsSerializeAs.String, null, true, true ); Gui.Config.Properties.Add(newProp); SettingsPropertyValue newValue = new SettingsPropertyValue(newProp); newValue.PropertyValue = tool; Gui.Config.PropertyValues.Add(newValue); } } } } }
public static ExternalTool RegisterExternalTool(string extension, int ppFormatIndex, string toolPath, string toText, string toBin, bool save) { ExternalTool tool = new ExternalTool(extension, ppFormatIndex, toolPath, toText, toBin); return(RegisterExternalTool(tool, save)); }
public static ExternalTool RegisterExternalTool(string extension, int ppFormatIndex, string toolPath, string toText, string toBin, bool save) { ExternalTool tool = new ExternalTool(extension, ppFormatIndex, toolPath, toText, toBin); return RegisterExternalTool(tool, save); }
public static void UnregisterExternalTool(ExternalTool tool) { List<ExternalTool> extList; if (ExternalTools.TryGetValue(tool.Extension, out extList)) { for (int i = 0; i < extList.Count; i++) { if (tool == extList[i]) { extList.RemoveAt(i); foreach (SettingsPropertyValue value in Gui.Config.PropertyValues) { if (value.PropertyValue.GetType() == typeof(ExternalTool)) { ExternalTool settingsTool = (ExternalTool)value.PropertyValue; if (settingsTool.ToolPath == tool.ToolPath) { Gui.Config.PropertyValues.Remove(value.Name); Gui.Config.Properties.Remove(value.Name); break; } } } return; } } } }
public static ExternalTool RegisterExternalTool(ExternalTool tool, bool save) { try { string extensionKey = tool.Extension.ToUpper(); List<ExternalTool> extList; if (!ExternalTools.TryGetValue(extensionKey, out extList)) { extList = new List<ExternalTool>(); ExternalTools.Add(extensionKey, extList); } else { foreach (ExternalTool presentTool in extList) { if (presentTool.ToolPath.Equals(tool.ToolPath, StringComparison.InvariantCultureIgnoreCase)) { presentTool.ToTextOptions = tool.ToTextOptions; presentTool.ToBinaryOptions = tool.ToBinaryOptions; presentTool.ppFormatIndex = tool.ppFormatIndex; tool = presentTool; return tool; } } } extList.Add(tool); return tool; } finally { if (save) { bool stored = false; HashSet<int> usedIndices = new HashSet<int>(); foreach (SettingsPropertyValue value in Gui.Config.PropertyValues) { if (value.Name.StartsWith("ExternalTool")) { ExternalTool newTool = (ExternalTool)value.PropertyValue; if (newTool.ToolPath.Equals(tool.ToolPath, StringComparison.InvariantCultureIgnoreCase)) { Gui.Config[value.Name] = tool; stored = true; break; } string intStr = value.Name.Substring("ExternalTool".Length); usedIndices.Add(Int32.Parse(intStr)); } } if (!stored) { int smallestFreeTool; for (smallestFreeTool = 0; smallestFreeTool < usedIndices.Count; smallestFreeTool++) { if (!usedIndices.Contains(smallestFreeTool)) { break; } } if (smallestFreeTool >= 30/*Settings.MaxExternalTools*/) { Report.ReportLog("Cant persist more than 30 external tools."); } else { SettingsProperty newProp = new SettingsProperty( "ExternalTool" + smallestFreeTool, typeof(ExternalTool), Gui.Config.Providers[Path.GetFileName(System.Reflection.Assembly.GetEntryAssembly().Location)], false, tool, SettingsSerializeAs.String, null, true, true ); Gui.Config.Properties.Add(newProp); SettingsPropertyValue newValue = new SettingsPropertyValue(newProp); newValue.PropertyValue = tool; Gui.Config.PropertyValues.Add(newValue); } } } } }