private void OnExtensionPointChanged(object sender, ExtensionPointEventArgs e) { if (ExtensionPointChanged != null) { ExtensionPointChanged(sender, e); } }
private void OnExtensionPointChanged(ExtensionPointEventArgs args) { if (this._extensionPointChanged != null) { this._extensionPointChanged(this, args); } }
/// <summary> /// 发布扩展点变化事件 /// </summary> /// <param name="action"></param> /// <param name="extension"></param> internal void PublishExtensionPointEvent(object sender, ExtensionPointEventArgs e) { if (this.ExtensionPointChanged != null) { this.ExtensionPointChanged.Invoke(sender, e); } }
private void FireExtensionPointChanged(CollectionChangedAction action, ExtensionPoint extensionPoint) { ExtensionPointEventArgs args = new ExtensionPointEventArgs(this, action) { ExtensionPoint = extensionPoint }; this.OnExtensionPointChanged(args); }
/// <summary> /// 功能区扩展点变化处理逻辑 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnExtensionPointChanged(object sender, ExtensionPointEventArgs e) { if (e.Point.Equals("Word.Robin")) { if (ribbonAdmin == null) { ribbonAdmin = new RibbonAdminImpl(); ribbonAdmin.Initialize(context, e.ExtensionPoint); ribbonAdminService = Activator.Register(new string[] { typeof(IRibbonAdmin).FullName }, ribbonAdmin, null); ribbonExtensibilityService = Activator.Register(new string[] { "Microsoft.Office.Core.IRibbonExtensibility" }, ribbonAdmin.RibbonUi, null); } } }
/// <summary> /// 解析插件扩展 /// </summary> /// <param name="bundle"></param> public void ResolveExtension(AbstractBundle bundle) { #region 插件扩展点处理 // 处理插件的扩展点 IExtensionPoint[] points = bundle.BundleData.ExtensionPoints; if (points != null && points.Length > 0) { foreach (ExtensionPointImpl point in points) { // 发布扩展点变化事件 ExtensionPointEventArgs e = new ExtensionPointEventArgs(point, CollectionChangedAction.Add); if (point.Available) { framework.PublishExtensionPointEvent(bundle, e); } // 如果当前事件没有取消则进行添加扩展点处理 if (!e.Cancel) { framework.ExtensionAdmin.AddExtensionPoint(point); } } } #endregion #region 插件扩展处理 // 处理插件扩展 IExtension[] extensions = bundle.BundleData.Extensions; if (extensions != null && extensions.Length > 0) { foreach (ExtensionImpl extension in extensions) { ExtensionEventArgs e = new ExtensionEventArgs(extension, CollectionChangedAction.Add); framework.PublishExtensionEvent(bundle, e); if (!e.Cancel) { framework.ExtensionAdmin.AddExtension(extension); } } } #endregion #region 片段插件解析 // 处理片段插件扩展 if (!bundle.IsFragment && bundle.Fragments != null) { foreach (BundleFragment fragment in bundle.Fragments) { // 处理片段插件扩展点 points = bundle.BundleData.ExtensionPoints; if (points != null && points.Length > 0) { foreach (ExtensionPointImpl point in points) { // 发布扩展点变化事件 ExtensionPointEventArgs e = new ExtensionPointEventArgs(point, CollectionChangedAction.Add); if (point.Available) { framework.PublishExtensionPointEvent(bundle, e); } // 如果当前事件没有取消则进行添加扩展点处理 if (!e.Cancel) { point.Owner = bundle; framework.ExtensionAdmin.AddExtensionPoint(point); } } } // 处理片段插件扩展 extensions = bundle.BundleData.Extensions; if (extensions != null && extensions.Length > 0) { foreach (ExtensionImpl extension in extensions) { ExtensionEventArgs e = new ExtensionEventArgs(extension, CollectionChangedAction.Add); framework.PublishExtensionEvent(bundle, e); if (e.Cancel) { extension.Owner = bundle; framework.ExtensionAdmin.AddExtension(extension); } } } } } #endregion }