[Monodevelop-patches-list] r2738 - in trunk/MonoDevelop/Core/src/MonoDevelop.Core: . AddIns AddIns/Codons

Lluis Sanchez <lluis@ximian.com> lluis at mono-cvs.ximian.com
Fri Aug 12 11:30:32 EDT 2005


Author: lluis
Date: 2005-08-12 11:30:32 -0400 (Fri, 12 Aug 2005)
New Revision: 2738

Modified:
   trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/AddIn.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/AbstractCodon.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/CodonFactory.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/DuplicateCodonException.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/DefaultAddInTree.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Core/ChangeLog
Log:
2005-08-12  Lluis Sanchez Gual  <lluis at novell.com>

	* AddIns/Codons/AbstractCodon.cs: Make the ID attribute optional.
	In general, IDs are only needed when codons can be extended, or when
	the entity they represent requires an ID. There are some kind of codons
	which don't have any of those requirements, and the ID is not needed.
	
	* AddIns/AddIn.cs: Added method for getting a resource from an addin's
	asseblies.
	
	* AddIns/Codons/CodonFactory.cs:
	* AddIns/DefaultAddInTree.cs:
	* AddIns/Codons/DuplicateCodonException.cs: Improve error message.



Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/AddIn.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/AddIn.cs	2005-08-10 22:06:42 UTC (rev 2737)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/AddIn.cs	2005-08-12 15:30:32 UTC (rev 2738)
@@ -131,6 +131,15 @@
 			}
 		}
 		
+		public Stream GetResourceStream (string id)
+		{
+			foreach (Assembly asm in runtimeLibraries.Values) {
+				Stream s = asm.GetManifestResourceStream (id);
+				if (s != null) return s;
+			}
+			return null;
+		}
+		
 		ArrayList errors = null;
 		void ValidationHandler(object sender, ValidationEventArgs args)
 		{

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/AbstractCodon.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/AbstractCodon.cs	2005-08-10 22:06:42 UTC (rev 2737)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/AbstractCodon.cs	2005-08-12 15:30:32 UTC (rev 2738)
@@ -18,7 +18,7 @@
 	/// </summary>
 	public abstract class AbstractCodon : ICodon
 	{
-		[XmlMemberAttribute("id", IsRequired=true)]
+		[XmlMemberAttribute("id")]
 		string id = null;
 		
 		[XmlMemberAttributeAttribute("class")]
@@ -30,6 +30,7 @@
 		[XmlMemberArrayAttribute("insertbefore")]
 		string[] insertbefore = null;
 		
+		static int internalIdCount;
 		
 		AddIn  addIn = null;
 		
@@ -64,6 +65,8 @@
 		/// </summary>
 		public string ID {
 			get {
+				if (id == null)
+					id = "___" + (internalIdCount++);
 				return id;
 			}
 			set {

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/CodonFactory.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/CodonFactory.cs	2005-08-10 22:06:42 UTC (rev 2737)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/CodonFactory.cs	2005-08-12 15:30:32 UTC (rev 2738)
@@ -29,7 +29,7 @@
 		public void AddCodonBuilder(CodonBuilder builder)
 		{
 			if (codonHashtable[builder.CodonName] != null) {
-				throw new DuplicateCodonException(builder.CodonName);
+				throw new DuplicateCodonException(builder.ClassName, builder.CodonName);
 			}
 			codonHashtable[builder.CodonName] = builder;
 		}

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/DuplicateCodonException.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/DuplicateCodonException.cs	2005-08-10 22:06:42 UTC (rev 2737)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/Codons/DuplicateCodonException.cs	2005-08-12 15:30:32 UTC (rev 2738)
@@ -17,7 +17,7 @@
 		/// <summary>
 		/// Constructs a new <see cref="DuplicateCodonException"/> instance.
 		/// </summary>
-		public DuplicateCodonException(string codon) : base("there already exists a codon with name : " + codon)
+		public DuplicateCodonException (string type, string codon) : base("there already exists a codon of type " + type + " with id: " + codon)
 		{
 		}
 	}

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/DefaultAddInTree.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/DefaultAddInTree.cs	2005-08-10 22:06:42 UTC (rev 2737)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Core/AddIns/DefaultAddInTree.cs	2005-08-12 15:30:32 UTC (rev 2738)
@@ -96,7 +96,7 @@
 			foreach (ICodon codon in extension.CodonCollection) {
 				DefaultAddInTreeNode localPath = CreatePath(localRoot, codon.ID);
 				if (localPath.Codon != null) {
-					throw new DuplicateCodonException(codon.ID);
+					throw new DuplicateCodonException(codon.GetType().Name, codon.ID);
 				}
 				localPath.Codon              = codon;
 				localPath.ConditionCollection = (ConditionCollection)extension.Conditions[codon.ID];

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Core/ChangeLog
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Core/ChangeLog	2005-08-10 22:06:42 UTC (rev 2737)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Core/ChangeLog	2005-08-12 15:30:32 UTC (rev 2738)
@@ -1,3 +1,17 @@
+2005-08-12  Lluis Sanchez Gual  <lluis at novell.com>
+
+	* AddIns/Codons/AbstractCodon.cs: Make the ID attribute optional.
+	In general, IDs are only needed when codons can be extended, or when
+	the entity they represent requires an ID. There are some kind of codons
+	which don't have any of those requirements, and the ID is not needed.
+	
+	* AddIns/AddIn.cs: Added method for getting a resource from an addin's
+	asseblies.
+	
+	* AddIns/Codons/CodonFactory.cs:
+	* AddIns/DefaultAddInTree.cs:
+	* AddIns/Codons/DuplicateCodonException.cs: Improve error message.
+
 2005-08-10  Ben Motmans  <ben.motmans at gmail.com>
 
 	* MonoDevelop.Core.mdp: references update




More information about the Monodevelop-patches-list mailing list