Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2007-12-04 13:54:06 +0300
committerLluis Sanchez <lluis@novell.com>2007-12-04 13:54:06 +0300
commitfb3d82535d1eb51b03b9df5c8c3b24c0e6fa6d92 (patch)
tree5c9c507ec718981e2dda5406e126b8efd02fa3b2 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools
parent6342b2ae0820167754b9f39077777520e20c08a0 (diff)
Directory reorganization
svn path=/branches/monodevelop/reorg/; revision=90640
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalTool.cs162
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalToolService.cs134
2 files changed, 296 insertions, 0 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalTool.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalTool.cs
new file mode 100644
index 0000000000..39721e0f86
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalTool.cs
@@ -0,0 +1,162 @@
+//
+// ExternalTool.cs
+//
+// Author:
+// Mike Krüger <mkrueger@novell.com>
+//
+// Copyright (C) 2007 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Diagnostics;
+using System.Xml;
+
+using MonoDevelop.Core;
+
+namespace MonoDevelop.Ide.ExternalTools
+{
+ public class ExternalTool
+ {
+ string menuCommand;
+ string command;
+ string arguments;
+ string initialDirectory;
+ bool promptForArguments;
+ bool useOutputPad;
+ bool saveCurrentFile;
+
+ public string MenuCommand {
+ get {
+ return menuCommand;
+ }
+ set {
+ menuCommand = value;
+ }
+ }
+
+ public string Command {
+ get {
+ return command;
+ }
+ set {
+ command = value;
+ }
+ }
+
+ public string Arguments {
+ get {
+ return arguments;
+ }
+ set {
+ arguments = value;
+ }
+ }
+
+ public string InitialDirectory {
+ get {
+ return initialDirectory;
+ }
+ set {
+ initialDirectory = value;
+ }
+ }
+
+ public bool PromptForArguments {
+ get {
+ return promptForArguments;
+ }
+ set {
+ promptForArguments = value;
+ }
+ }
+
+ public bool UseOutputPad {
+ get {
+ return useOutputPad;
+ }
+ set {
+ useOutputPad = value;
+ }
+ }
+
+ public bool SaveCurrentFile {
+ get {
+ return saveCurrentFile;
+ }
+ set {
+ saveCurrentFile = value;
+ }
+ }
+
+ public ExternalTool ()
+ {
+ this.menuCommand = GettextCatalog.GetString ("New Tool");
+ }
+
+#region I/O
+ public const string Node = "ExternalTool";
+
+ const string menuCommandAttribute = "menuCommand";
+ const string commandAttribute = "command";
+ const string argumentsAttribute = "arguments";
+ const string initialDirectoryAttribute = "initialDirectory";
+ const string promptForArgumentsAttribute = "promptForArguments";
+ const string useOutputPadAttribute = "useOutputPad";
+ const string saveCurrentFileAttribute = "saveCurrentFile";
+
+ public void Write (XmlWriter writer)
+ {
+ writer.WriteStartElement (Node);
+ writer.WriteAttributeString (menuCommandAttribute, this.menuCommand);
+ writer.WriteAttributeString (commandAttribute, this.command);
+ writer.WriteAttributeString (argumentsAttribute, this.arguments);
+ writer.WriteAttributeString (initialDirectoryAttribute, this.initialDirectory);
+ writer.WriteAttributeString (promptForArgumentsAttribute, this.promptForArguments.ToString ());
+ writer.WriteAttributeString (useOutputPadAttribute, this.useOutputPad.ToString ());
+ writer.WriteAttributeString (saveCurrentFileAttribute, this.saveCurrentFile.ToString ());
+ writer.WriteEndElement (); // Node
+ }
+
+ public static ExternalTool Read (XmlReader reader)
+ {
+ Debug.Assert (reader.LocalName == Node);
+
+ ExternalTool result = new ExternalTool ();
+ result.menuCommand = reader.GetAttribute (menuCommandAttribute);
+ result.command = reader.GetAttribute (commandAttribute);
+ result.arguments = reader.GetAttribute (argumentsAttribute);
+ result.initialDirectory = reader.GetAttribute (initialDirectoryAttribute);
+ result.menuCommand = reader.GetAttribute (menuCommandAttribute);
+
+ if (!String.IsNullOrEmpty (reader.GetAttribute (promptForArgumentsAttribute)))
+ result.promptForArguments = Boolean.Parse (reader.GetAttribute (promptForArgumentsAttribute));
+ if (!String.IsNullOrEmpty (reader.GetAttribute (useOutputPadAttribute)))
+ result.useOutputPad = Boolean.Parse (reader.GetAttribute (useOutputPadAttribute));
+ if (!String.IsNullOrEmpty (reader.GetAttribute (saveCurrentFileAttribute)))
+ result.saveCurrentFile = Boolean.Parse (reader.GetAttribute (saveCurrentFileAttribute));
+
+ return result;
+ }
+#endregion
+
+ }
+} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalToolService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalToolService.cs
new file mode 100644
index 0000000000..f236bd9706
--- /dev/null
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ExternalTools/ExternalToolService.cs
@@ -0,0 +1,134 @@
+//
+// ExternalToolService.cs
+//
+// Author:
+// Mike Krüger <mkrueger@novell.com>
+//
+// Copyright (C) 2007 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Collections.Generic;
+using System.Xml;
+
+using MonoDevelop.Core;
+
+namespace MonoDevelop.Ide.ExternalTools
+{
+ public static class ExternalToolService
+ {
+ static string FileName = "MonoDevelop-tools.xml";
+ static string Version = "2.0";
+
+ static List<ExternalTool> tools;
+
+ public static List<ExternalTool> Tools {
+ get {
+ return tools;
+ }
+ set {
+ tools = value;
+ }
+ }
+
+ static ExternalToolService ()
+ {
+ try {
+ tools = LoadTools ();
+ } catch (Exception e) {
+ LoggingService.LogError ("ExternalToolService: Exception while loading tools.", e);
+ tools = new List<ExternalTool> ();
+ }
+ }
+
+#region I/O
+ const string Node = "Tools";
+ const string VersionAttribute = "version";
+
+ static void SaveTools (string fileName)
+ {
+ XmlTextWriter writer = new XmlTextWriter (fileName, System.Text.Encoding.UTF8);
+ writer.Settings.Indent = true;
+ try {
+ writer.WriteStartDocument ();
+ writer.WriteStartElement (Node);
+ writer.WriteAttributeString (VersionAttribute, Version);
+
+ foreach (ExternalTool tool in tools)
+ tool.Write (writer);
+
+ writer.WriteEndElement (); // Node
+ } finally {
+ writer.Close ();
+ }
+ }
+
+ public static void SaveTools ()
+ {
+ SaveTools (Path.Combine (PropertyService.ConfigPath, FileName));
+ }
+
+ static List<ExternalTool> LoadTools (string fileName)
+ {
+ if (!File.Exists (fileName))
+ return null;
+ List<ExternalTool> result = new List<ExternalTool> ();
+ XmlReader reader = XmlTextReader.Create (fileName);
+ try {
+ while (reader.Read ()) {
+ if (reader.IsStartElement ()) {
+ switch (reader.LocalName) {
+ case Node:
+ string fileVersion = reader.GetAttribute (VersionAttribute);
+ if (fileVersion != Version)
+ return null;
+ break;
+ case ExternalTool.Node:
+ result.Add (ExternalTool.Read (reader));
+ break;
+ }
+ }
+ }
+ } finally {
+ reader.Close ();
+ }
+ return result;
+ }
+
+ static List<ExternalTool> LoadTools ()
+ {
+ List<ExternalTool> result = LoadTools (Path.Combine (PropertyService.ConfigPath, FileName));
+ if (result == null) {
+ LoggingService.LogInfo ("ExternalToolService: No user templates, reading default templates.");
+ result = LoadTools (Path.Combine (Path.Combine (PropertyService.DataPath, "options"), FileName));
+ }
+
+ if (result == null)
+ return new List<ExternalTool> ();
+
+ return result;
+ }
+#endregion
+ }
+}