Author: lluis
Date: 2008-02-14 20:06:30 -0500 (Thu, 14 Feb 2008)
New Revision: 95715

Modified:
   trunk/mono-addins/Mono.Addins/ChangeLog
   trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinScanner.cs
   
trunk/mono-addins/Mono.Addins/Mono.Addins.Database/DefaultAssemblyReflector.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins.Description/AddinDescription.cs
   
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ConditionTypeDescription.cs
   
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeDescription.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeSet.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeType.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins.Description/NodeTypeAttribute.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins/AddinLocalizer.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins/AddinRegistry.cs
Log:
* Mono.Addins/AddinRegistry.cs: Minor fixes.
* Mono.Addins/AddinLocalizer.cs: Ouch, format arguments of GetString
  should have been objects, not strings.
* Mono.Addins.Description/NodeTypeAttribute.cs,
  Mono.Addins.Description/ExtensionNodeType.cs,
  Mono.Addins.Description/ExtensionPoint.cs,
  Mono.Addins.Description/ConditionTypeDescription.cs,
  Mono.Addins.Description/ExtensionNodeSet.cs: Implemented CopyFrom.
* Mono.Addins.Description/AddinDescription.cs: Set global domain to
  manifests read from xml files.
* Mono.Addins.Description/ExtensionNodeDescription.cs: Remove
  insertbefore and insertafter attributes when set to an empty
  string.
* Mono.Addins.Database/AddinScanner.cs: Set a domain for files parsed
  with ScanSingleFile.
* Mono.Addins.Database/DefaultAssemblyReflector.cs: Fix bug in
  GetCustomAttribute.

Modified: trunk/mono-addins/Mono.Addins/ChangeLog
===================================================================
--- trunk/mono-addins/Mono.Addins/ChangeLog     2008-02-15 00:31:49 UTC (rev 
95714)
+++ trunk/mono-addins/Mono.Addins/ChangeLog     2008-02-15 01:06:30 UTC (rev 
95715)
@@ -1,3 +1,22 @@
+2008-02-15  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
+
+       * Mono.Addins/AddinRegistry.cs: Minor fixes.
+       * Mono.Addins/AddinLocalizer.cs: Ouch, format arguments of GetString 
should
+         have been objects, not strings.
+       * Mono.Addins.Description/NodeTypeAttribute.cs,
+         Mono.Addins.Description/ExtensionNodeType.cs,
+         Mono.Addins.Description/ExtensionPoint.cs,
+         Mono.Addins.Description/ConditionTypeDescription.cs,
+         Mono.Addins.Description/ExtensionNodeSet.cs: Implemented CopyFrom.
+       * Mono.Addins.Description/AddinDescription.cs: Set global domain to
+         manifests read from xml files.
+       * Mono.Addins.Description/ExtensionNodeDescription.cs: Remove 
insertbefore
+         and insertafter attributes when set to an empty string.
+       * Mono.Addins.Database/AddinScanner.cs: Set a domain for files parsed 
with
+         ScanSingleFile.
+       * Mono.Addins.Database/DefaultAssemblyReflector.cs: Fix bug in
+         GetCustomAttribute.
+
 2008-02-11  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
 
        * Mono.Addins.Database/AddinDatabase.cs: Fix add-in scan issue. Avoid

Modified: trunk/mono-addins/Mono.Addins/Mono.Addins/AddinLocalizer.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins/AddinLocalizer.cs 2008-02-15 
00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins/AddinLocalizer.cs 2008-02-15 
01:06:30 UTC (rev 95715)
@@ -52,6 +52,11 @@
                        return string.Format (localizer.GetString (msgid), 
args);
                }
                
+               public string GetString (string msgid, params object[] args)
+               {
+                       return string.Format (localizer.GetString (msgid), 
args);
+               }
+               
                public string GetPluralString (string msgid, string 
defaultPlural, int n)
                {
                        // If the localizer does not support plural forms, just 
use GetString to
@@ -68,5 +73,10 @@
                {
                        return string.Format (GetPluralString (singular, 
defaultPlural, n), args);
                }
+               
+               public string GetPluralString (string singular, string 
defaultPlural, int n, params object[] args)
+               {
+                       return string.Format (GetPluralString (singular, 
defaultPlural, n), args);
+               }
        }
 }

Modified: trunk/mono-addins/Mono.Addins/Mono.Addins/AddinRegistry.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins/AddinRegistry.cs  2008-02-15 
00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins/AddinRegistry.cs  2008-02-15 
01:06:30 UTC (rev 95715)
@@ -161,6 +161,7 @@
                {
                        AddinDescription desc = AddinDescription.Read (file);
                        desc.OwnerDatabase = database;
+                       desc.Domain = currentDomain;
                        return desc;
                }
                
@@ -276,7 +277,7 @@
                        return true;
                }
                
-               internal static string[] GetRegisteredStartupFolders (string 
registryPath)
+               public static string[] GetRegisteredStartupFolders (string 
registryPath)
                {
                        string dbDir = Path.Combine (registryPath, "addin-db-" 
+ AddinDatabase.VersionTag);
                        dbDir = Path.Combine (dbDir, "hosts");
@@ -292,7 +293,9 @@
                                                XmlTextReader tr = new 
XmlTextReader (sr);
                                                tr.MoveToContent ();
                                                string host = tr.GetAttribute 
("host-reference");
-                                               dirs.Add (Path.GetDirectoryName 
(host));
+                                               host = Path.GetDirectoryName 
(host);
+                                               if (!dirs.Contains (host))
+                                                       dirs.Add (host);
                                        }
                                }
                                catch {

Modified: trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinScanner.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinScanner.cs  
2008-02-15 00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinScanner.cs  
2008-02-15 01:06:30 UTC (rev 95715)
@@ -355,6 +355,7 @@
 
                                if (scanSuccessful && config != null) {
                                        
+                                       config.Domain = "global";
                                        if (config.Version.Length == 0)
                                                config.Version = "0.0.0.0";
                                        

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Database/DefaultAssemblyReflector.cs
===================================================================
--- 
trunk/mono-addins/Mono.Addins/Mono.Addins.Database/DefaultAssemblyReflector.cs  
    2008-02-15 00:31:49 UTC (rev 95714)
+++ 
trunk/mono-addins/Mono.Addins/Mono.Addins.Database/DefaultAssemblyReflector.cs  
    2008-02-15 01:06:30 UTC (rev 95715)
@@ -56,7 +56,7 @@
                public object GetCustomAttribute (object obj, Type type, bool 
inherit)
                {
                        foreach (object att in GetCustomAttributes (obj, type, 
inherit))
-                               if (type.IsInstanceOfType (obj))
+                               if (type.IsInstanceOfType (att))
                                        return att;
                        return null;
                }

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/AddinDescription.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.Description/AddinDescription.cs   
2008-02-15 00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.Description/AddinDescription.cs   
2008-02-15 01:06:30 UTC (rev 95715)
@@ -532,6 +532,7 @@
                        config.description = elem.GetAttribute ("description");
                        config.category = elem.GetAttribute ("category");
                        config.basePath = elem.GetAttribute ("basePath");
+                       config.domain = "global";
                        
                        string s = elem.GetAttribute ("isRoot");
                        if (s.Length == 0) s = elem.GetAttribute ("isroot");

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ConditionTypeDescription.cs
===================================================================
--- 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ConditionTypeDescription.cs
   2008-02-15 00:31:49 UTC (rev 95714)
+++ 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ConditionTypeDescription.cs
   2008-02-15 01:06:30 UTC (rev 95715)
@@ -34,7 +34,7 @@
 
 namespace Mono.Addins.Description
 {
-       public class ConditionTypeDescription: ObjectDescription
+       public sealed class ConditionTypeDescription: ObjectDescription
        {
                string id;
                string typeName;
@@ -52,6 +52,14 @@
                        description = ReadXmlDescription ();
                }
                
+               public void CopyFrom (ConditionTypeDescription cond)
+               {
+                       id = cond.id;
+                       typeName = cond.typeName;
+                       addinId = cond.AddinId;
+                       description = cond.description;
+               }
+               
                internal override void Verify (string location, 
StringCollection errors)
                {
                        VerifyNotEmpty (location + "ConditionType", errors, Id, 
"id");

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeDescription.cs
===================================================================
--- 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeDescription.cs
   2008-02-15 00:31:49 UTC (rev 95714)
+++ 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeDescription.cs
   2008-02-15 01:06:30 UTC (rev 95715)
@@ -108,12 +108,22 @@
                
                public string InsertAfter {
                        get { return GetAttribute ("insertafter"); }
-                       set { SetAttribute ("insertafter", value); }
+                       set {
+                               if (value == null || value.Length == 0)
+                                       RemoveAttribute ("insertafter");
+                               else
+                                       SetAttribute ("insertafter", value); 
+                       }
                }
                
                public string InsertBefore {
                        get { return GetAttribute ("insertbefore"); }
-                       set { SetAttribute ("insertbefore", value); }
+                       set {
+                               if (value == null || value.Length == 0)
+                                       RemoveAttribute ("insertbefore");
+                               else
+                                       SetAttribute ("insertbefore", value); 
+                       }
                }
                
                public bool IsCondition {
@@ -177,6 +187,26 @@
                        attributes [attributes.Length - 1] = value;
                }
                
+               public void RemoveAttribute (string name)
+               {
+                       if (Element != null) {
+                               Element.RemoveAttribute (name);
+                               return;
+                       }
+
+                       if (attributes == null)
+                               return;
+                       
+                       for (int n=0; n<attributes.Length; n+=2) {
+                               if (attributes [n] == name) {
+                                       string[] newar = new string 
[attributes.Length - 2];
+                                       Array.Copy (attributes, 0, newar, 0, n);
+                                       Array.Copy (attributes, n+2, newar, n, 
attributes.Length - n - 2);
+                                       break;
+                               }
+                       }
+               }
+               
                public NodeAttribute[] Attributes {
                        get {
                                if (Element != null)

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeSet.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeSet.cs   
2008-02-15 00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeSet.cs   
2008-02-15 01:06:30 UTC (rev 95715)
@@ -49,6 +49,21 @@
                        id = element.GetAttribute (IdAttribute);
                }
                
+               public void CopyFrom (ExtensionNodeSet nset)
+               {
+                       id = nset.id;
+                       NodeTypes.Clear ();
+                       foreach (ExtensionNodeType nt in nset.NodeTypes) {
+                               ExtensionNodeType cnt = new ExtensionNodeType 
();
+                               cnt.CopyFrom (nt);
+                               NodeTypes.Add (cnt);
+                       }
+                       NodeSets.Clear ();
+                       foreach (string ns in nset.NodeSets)
+                               NodeSets.Add (ns);
+                       missingNodeSetId = nset.missingNodeSetId;
+               }
+               
                internal override void Verify (string location, 
StringCollection errors)
                {
                        if (missingNodeSetId)
@@ -280,6 +295,11 @@
                                list.RemoveAt (i);
                }
                
+               public void Clear ()
+               {
+                       list.Clear ();
+               }
+               
                public bool Contains (string nodeSetId)
                {
                        return IndexOf (nodeSetId) != -1;

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeType.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeType.cs  
2008-02-15 00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionNodeType.cs  
2008-02-15 01:06:30 UTC (rev 95715)
@@ -36,7 +36,7 @@
 
 namespace Mono.Addins.Description
 {
-       public class ExtensionNodeType: ExtensionNodeSet
+       public sealed class ExtensionNodeType: ExtensionNodeSet
        {
                string typeName;
                string objectTypeName;
@@ -119,9 +119,24 @@
                                description = de.InnerText;
                }
                
-               internal ExtensionNodeType ()
+               public ExtensionNodeType ()
                {
                }
+               
+               public void CopyFrom (ExtensionNodeType ntype)
+               {
+                       base.CopyFrom (ntype);
+                       this.typeName = ntype.TypeName;
+                       this.objectTypeName = ntype.ObjectTypeName;
+                       this.description = ntype.Description;
+                       this.addinId = ntype.AddinId;
+                       Attributes.Clear ();
+                       foreach (NodeTypeAttribute att in ntype.Attributes) {
+                               NodeTypeAttribute catt = new NodeTypeAttribute 
();
+                               catt.CopyFrom (att);
+                               Attributes.Add (catt);
+                       }
+               }
                        
                internal override string IdAttribute {
                        get { return "name"; }

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs     
2008-02-15 00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.Description/ExtensionPoint.cs     
2008-02-15 01:06:30 UTC (rev 95715)
@@ -35,7 +35,7 @@
 
 namespace Mono.Addins.Description
 {
-       public class ExtensionPoint: ObjectDescription
+       public sealed class ExtensionPoint: ObjectDescription
        {
                string path;
                string name;
@@ -59,6 +59,24 @@
                {
                }
                
+               public void CopyFrom (ExtensionPoint ep)
+               {
+                       path = ep.path;
+                       name = ep.name;
+                       description = ep.description;
+                       NodeSet.CopyFrom (ep.NodeSet);
+                       Conditions.Clear ();
+                       foreach (ConditionTypeDescription cond in 
ep.Conditions) {
+                               ConditionTypeDescription cc = new 
ConditionTypeDescription ();
+                               cc.CopyFrom (cond);
+                               Conditions.Add (cc);
+                       }
+                       Addins.Clear ();
+                       foreach (string s in ep.Addins)
+                               Addins.Add (s);
+                       rootAddin = ep.rootAddin;
+               }
+               
                internal override void Verify (string location, 
StringCollection errors)
                {
                        VerifyNotEmpty (location + "ExtensionPoint", errors, 
Path, "path");

Modified: 
trunk/mono-addins/Mono.Addins/Mono.Addins.Description/NodeTypeAttribute.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.Description/NodeTypeAttribute.cs  
2008-02-15 00:31:49 UTC (rev 95714)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.Description/NodeTypeAttribute.cs  
2008-02-15 01:06:30 UTC (rev 95715)
@@ -34,7 +34,7 @@
 
 namespace Mono.Addins.Description
 {
-       public class NodeTypeAttribute: ObjectDescription
+       public sealed class NodeTypeAttribute: ObjectDescription
        {
                string name;
                string type;
@@ -46,6 +46,15 @@
                {
                }
                
+               public void CopyFrom (NodeTypeAttribute att)
+               {
+                       name = att.name;
+                       type = att.type;
+                       required = att.required;
+                       localizable = att.localizable;
+                       description = att.description;
+               }
+               
                public string Name {
                        get { return name != null ? name : string.Empty; }
                        set { name = value; }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to