Beispiel #1
0
        /// <summary>
        /// 载入模块名称
        /// </summary>
        private void LoadModuleNameAndData()
        {
            cbxDataName.Items.Clear();
            cbxModuleType.Items.Clear();
            cbxDataType.Items.Clear();
            listModule.Items.Clear();


            if (this.DesignMode)
            {
                //ide设计模式下的处理
                if (_modules == null)
                {
                    _modules = new CoordinationBizModules();
                }
                List <Control> ctls = DesignHelper.GetDesignControls(_designParent);

                foreach (Control ctl in ctls)
                {
                    ISysDesign dc = ctl as ISysDesign;
                    if (dc != null)
                    {
                        if (_modules.ContainsKey(dc.ModuleName) == false)
                        {
                            _modules.Add(dc.ModuleName, dc);
                        }
                        else
                        {
                            MessageBox.Show("模块 [" + dc.ModuleName + "] 实例已经存在,不能重复添加", "提示");
                        }
                    }
                }
            }
            else
            {
                _modules = _instance.RelateModules;
            }

            if (_modules == null)
            {
                return;
            }
            if (_modules.Count <= 0 && _modules.ParentWindowBizModules == null)
            {
                return;
            }

            cbxModuleType.Items.Add("当前窗体模块");
            cbxDataType.Items.Add("当前窗体模块");


            if (_modules.ParentWindowBizModules != null)
            {
                cbxModuleType.Items.Add("父级窗体模块");
                cbxDataType.Items.Add("父级窗体模块");
            }

            cbxModuleType.SelectedIndex = 0;
            cbxDataType.SelectedIndex   = 0;
        }
        protected bool DoBindActions(EventActionReleation ea, object sender, object eventArgs = null)
        {
            if (_relateBizModules.Count <= 0)
            {
                return(true);
            }

            string moduleName = "";
            string methodName = "";

            foreach (KeyValuePair <string, ActionItem> act in ea.Actions)
            {
                moduleName = act.Key.Split('.')[0];
                methodName = act.Key.Split('.')[1];

                ISysDesign exeModule = null;
                if (act.Value.IsParentModule)
                {
                    if (_relateBizModules.ParentWindowBizModules == null)
                    {
                        exeModule = null;
                    }
                    else
                    {
                        if (_relateBizModules.ParentWindowBizModules.ContainsKey(moduleName))
                        {
                            exeModule = _relateBizModules.ParentWindowBizModules[moduleName];
                        }
                    }
                }
                else
                {
                    if (_relateBizModules.ContainsKey(moduleName))
                    {
                        exeModule = _relateBizModules[moduleName];
                    }
                }

                if (exeModule == null)
                {
                    if (MessageBox.Show("[" + moduleName + "] 未能加载,不能执行该模块方法, 是否继续后续执行?", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        return(false);
                    }
                    else
                    {
                        continue;
                    }
                }

                ActionItem ai = act.Value;

                IBizDataItems bizDatas = null;
                if (string.IsNullOrEmpty(ai.RequestDataName) == false)
                {
                    bizDatas = GetDataItem(_moduleName, ai, ai.RequestDataName);
                    if (bizDatas == null)
                    {
                        return(false);
                    }

                    bizDatas.DataName = ai.RequestDataName;
                }

                //SetDataToAttach(bizDatas);

                if (bizDatas != null && ai.RequestAttachDataNames != null)
                {
                    foreach (string requestDataName in ai.RequestAttachDataNames)
                    {
                        IBizDataItems curRequestData = GetDataItem(_moduleName, ai, requestDataName);

                        curRequestData.DataName = requestDataName;

                        bizDatas.AttachDatas.Add(curRequestData);
                    }
                }


                //如果返回False则终止后续执行
                if (exeModule.ExecuteAction(_moduleName, this, sender, act.Value.ActName, act.Value.ActTag, bizDatas, eventArgs) == false)
                {
                    return(false);
                }
            }

            return(true);
        }