/// <summary> /// Loads contributions from this plug-in /// </summary> internal protected virtual void loadContributions() { Debug.WriteLine("loading contributions from " + name); XmlElement root = doc.DocumentElement; Uri baseUri = new Uri(root.BaseURI); // load contributions foreach (XmlElement contrib in root.SelectNodes("contribution")) { try { string type = contrib.Attributes["type"].Value; if (type == "contribution") { continue; // ignore } ContributionFactory factory = PluginManager.theInstance.getContributionFactory(type); Contribution c = factory.load(this, contrib); contributions.Add(c); PluginManager.theInstance.addContribution(c); c.init(this, baseUri); } catch (Exception e) { throw new Exception("failed to load contribution " + contrib.Attributes["id"].Value, e); } } }
public Contribution load(Plugin owner, XmlElement e) { Contribution contrib = (Contribution)PluginUtil.loadObjectFromManifest(e); if (baseType.IsInstanceOfType(contrib)) { return(contrib); } else { throw new Exception(string.Format( "{0} is incorrect for for this contribution (expected:{1})", contrib.GetType().FullName, baseType.FullName)); } }
public bool OnContribIDDuplicated(Contribution c_1st, Contribution c_2nd, Exception e) { return(false); }
public void addContribution(Contribution contrib) { contributionMap.Add(contrib.id, contrib); }
public bool OnContributionInitError(Contribution c, Exception e) { return(false); }