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

github.com/mono/mono-addins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2007-11-17 18:50:03 +0300
committerLluis Sanchez <lluis@novell.com>2007-11-17 18:50:03 +0300
commit9169cef20a6f45664d3e4c2d5ac8afb90b1ec9c9 (patch)
treea637b5bbff5e9b84b819336d03f9efb49d0da7e1 /Mono.Addins/Mono.Addins.Description/AddinDescription.cs
parent87d1a76b8595bd41037d8dda9688c505733c4004 (diff)
* Mono.Addins.Localization, Mono.Addins.Localization/GettextDomain.cs,
Mono.Addins.Localization/IAddinLocalizer.cs, Mono.Addins.Localization/NullLocalizer.cs, Mono.Addins.Localization/StringTableLocalizer.cs, Mono.Addins.Localization/StringResourceLocalizer.cs, Mono.Addins.Localization/IAddinLocalizerFactory.cs, Mono.Addins.Localization/GettextLocalizer.cs, Mono.Addins.mdp, Mono.Addins/RuntimeAddin.cs, Mono.Addins/ExtensionTree.cs, Mono.Addins/NodeAttributeAttribute.cs, Mono.Addins/AddinManager.cs, Mono.Addins/ExtensionNode.cs, Mono.Addins/AddinLocalizer.cs, Makefile.am, Mono.Addins.Description/NodeTypeAttribute.cs, Mono.Addins.Description/AddinDescription.cs, Mono.Addins.Description/ExtensionNodeType.cs: Implemented support for add-in localization. * Mono.Addins/NodeElement.cs, Mono.Addins.Description/ExtensionNodeDescriptionCollection.cs: Added ChildNodes property to NodeElement. svn path=/trunk/mono-addins/; revision=89845
Diffstat (limited to 'Mono.Addins/Mono.Addins.Description/AddinDescription.cs')
-rw-r--r--Mono.Addins/Mono.Addins.Description/AddinDescription.cs27
1 files changed, 26 insertions, 1 deletions
diff --git a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs
index b15f52d..2ffc008 100644
--- a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs
+++ b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs
@@ -68,6 +68,7 @@ namespace Mono.Addins.Description
ExtensionNodeSetCollection nodeSets;
ConditionTypeDescriptionCollection conditionTypes;
ExtensionPointCollection extensionPoints;
+ ExtensionNodeDescription localizer;
object[] fileInfo;
internal static BinaryXmlTypeMap typeMap;
@@ -278,6 +279,11 @@ namespace Mono.Addins.Description
}
}
+ public ExtensionNodeDescription Localizer {
+ get { return localizer; }
+ set { localizer = value; }
+ }
+
public ExtensionPoint AddExtensionPoint (string path)
{
ExtensionPoint ep = new ExtensionPoint ();
@@ -467,7 +473,16 @@ namespace Mono.Addins.Description
elem.SetAttribute ("category", category);
else
elem.RemoveAttribute ("category");
-
+
+ if (localizer == null || localizer.Element == null) {
+ // Remove old element if it exists
+ XmlElement oldLoc = (XmlElement) elem.SelectSingleNode ("Localizer");
+ if (oldLoc != null)
+ elem.RemoveChild (oldLoc);
+ }
+ if (localizer != null)
+ localizer.SaveXml (elem);
+
if (mainModule != null) {
mainModule.Element = elem;
mainModule.SaveXml (elem);
@@ -525,6 +540,10 @@ namespace Mono.Addins.Description
s = elem.GetAttribute ("defaultEnabled");
config.defaultEnabled = s.Length == 0 || s == "true" || s == "yes";
+ XmlElement localizerElem = (XmlElement) elem.SelectSingleNode ("Localizer");
+ if (localizerElem != null)
+ config.localizer = new ExtensionNodeDescription (localizerElem);
+
if (config.id.Length > 0)
config.hasUserId = true;
@@ -596,6 +615,10 @@ namespace Mono.Addins.Description
}
}
+ if (localizer != null && localizer.GetAttribute ("type").Length == 0) {
+ errors.Add ("The attribute 'type' in the Location element is required.");
+ }
+
return errors;
}
@@ -658,6 +681,7 @@ namespace Mono.Addins.Description
writer.WriteValue ("ExtensionPoints", ExtensionPoints);
writer.WriteValue ("ConditionTypes", ConditionTypes);
writer.WriteValue ("FilesInfo", fileInfo);
+ writer.WriteValue ("Localizer", localizer);
}
void IBinaryXmlElement.Read (BinaryXmlReader reader)
@@ -684,6 +708,7 @@ namespace Mono.Addins.Description
extensionPoints = (ExtensionPointCollection) reader.ReadValue ("ExtensionPoints", new ExtensionPointCollection (this));
conditionTypes = (ConditionTypeDescriptionCollection) reader.ReadValue ("ConditionTypes", new ConditionTypeDescriptionCollection (this));
fileInfo = (object[]) reader.ReadValue ("FilesInfo", null);
+ localizer = (ExtensionNodeDescription) reader.ReadValue ("Localizer");
if (mainModule != null)
mainModule.SetParent (this);