Exemple #1
0
        internal void LoadGlobalView(string pluginTypeName, string parameters)
        {
            MessageBox.Show("12");
            Type             typPluginType = Function.GetType(pluginTypeName);
            GlobalPluginType _PluginType   = base.Application.GetGlobalPluginType(typPluginType);

            if (parameters != null && parameters.Length > 1)
            {
                List <ParameterValue> lstParameterValues = new List <ParameterValue>();
                string[] strParameters = parameters.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);

                for (int intIndex = 0; intIndex < strParameters.Length; intIndex += 2)
                {
                    if (strParameters.Length >= intIndex + 2)
                    {
                        ParameterValue _ParameterValue = new ParameterValue();
                        _ParameterValue.Type = Function.GetType(strParameters[intIndex]);
                        if (_ParameterValue.Type != null)
                        {
                            _ParameterValue.Value = strParameters[intIndex + 1];
                            lstParameterValues.Add(_ParameterValue);
                        }
                    }
                }
                this.Application.LoadView(_PluginType, lstParameterValues.ToArray());
            }
            else
            {
                this.Application.LoadView(_PluginType);
            }
        }
        //全局菜单
        //全局工具栏
        //设备菜单
        //设备属性
        //设备分类
        //设备高级属性
        //设备高级分类
        //添加一个全局HTML功能项,并加到全局菜单或全局工具栏中
        //自定义全局菜单项、全局工具栏项
        //菜单
        //工具栏
        //视图窗口
        //状态栏

        #region << 视图 >>

        /// <summary>
        /// 加载指定插件类型的全局视图,如果视图已加载则将该视图置于可见状态。
        /// </summary>
        /// <param name="globalPluginType">实现 IGlobalPlugin 接口的插件类。</param>
        /// <param name="parameterValues">需要为该界面插件设置的参数默认值,如无参数可不设置。</param>
        /// <returns></returns>
        public GlobalPluginView LoadView(Type globalPluginType, params ParameterValue[] parameterValues)
        {
            GlobalPluginType pluginType = base.GetGlobalPluginType(this.CurrentAccount, globalPluginType, new Type[] { typeof(System.Windows.Forms.Control), typeof(System.Windows.Forms.ToolStripItem) });

            if (pluginType != null)
            {
                return(this.LoadView(pluginType, parameterValues));
            }
            else
            {
                throw new Exception("未发现可用的全局插件“" + globalPluginType + "”");
            }
        }
        /// <summary>
        /// 加载指定插件类型的全局视图,如果视图已加载则将该视图置于可见状态。
        /// </summary>
        /// <param name="pluginType">全局插件类型。</param>
        /// <param name="parameterValues">需要为该界面插件设置的参数默认值,如无参数可不设置。</param>
        /// <returns>成功加载至界面中的全局视图。</returns>
        public GlobalPluginView LoadView(GlobalPluginType pluginType, params ParameterValue[] parameterValues)
        {
            GlobalPluginView view = null;

            foreach (ViewBase v in this.Views)
            {
                if (v is GlobalPluginView)
                {
                    GlobalPluginView dv = v as GlobalPluginView;
                    if (dv.PluginType.Equals(pluginType))
                    {
                        view = v as GlobalPluginView;
                        break;
                    }
                }
            }

            if (view == null)
            {
                view = new GlobalPluginView(this, pluginType);
                if (parameterValues != null && parameterValues.Length > 0)
                {
                    view.SetParameterValue(parameterValues);
                }
                this.Views.Load(view, ViewDockOptions.Center);
            }
            else
            {
                if (parameterValues != null && parameterValues.Length > 0)
                {
                    view.SetParameterValue(parameterValues);
                }
                view.Focus();
            }

            return(view);
        }