static void OnExtensionChanged (object s, ExtensionNodeEventArgs args)
{
if (args.Change == ExtensionChange.Add) {
ProjectTemplateCodon codon = (ProjectTemplateCodon) args.ExtensionNode;
try {
ProjectTemplates.Add (new ProjectTemplate (codon.Addin, codon.Id, codon, null));
}
catch (Exception e) {
string extId = null, addinId = null;
if (codon != null) {
if (codon.HasId)
extId = codon.Id;
if (codon.Addin != null)
addinId = codon.Addin.Id;
}
LoggingService.LogError ("Error loading template id {0} in addin {1}:\n{2}",
extId ?? "(null)", addinId ?? "(null)", e.ToString ());
}
}
else {
foreach (ProjectTemplate pt in ProjectTemplates) {
ProjectTemplateCodon codon = (ProjectTemplateCodon) args.ExtensionNode;
if (pt.Id == codon.Id) {
ProjectTemplates.Remove (pt);
break;
}
}
}
}