Esempio n. 1
0
 private void OnExtensionPointChanged(object sender, ExtensionPointEventArgs e)
 {
     if (ExtensionPointChanged != null)
     {
         ExtensionPointChanged(sender, e);
     }
 }
Esempio n. 2
0
 private void OnExtensionPointChanged(ExtensionPointEventArgs args)
 {
     if (this._extensionPointChanged != null)
     {
         this._extensionPointChanged(this, args);
     }
 }
Esempio n. 3
0
 /// <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);
     }
 }
Esempio n. 4
0
        private void FireExtensionPointChanged(CollectionChangedAction action, ExtensionPoint extensionPoint)
        {
            ExtensionPointEventArgs args = new ExtensionPointEventArgs(this, action)
            {
                ExtensionPoint = extensionPoint
            };

            this.OnExtensionPointChanged(args);
        }
Esempio n. 5
0
        /// <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);
                }
            }
        }
Esempio n. 6
0
        /// <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
        }