public KeyPresenter(IMainPanel panel, IKeyForm form) : base(panel)
        {
            this.form = form;

            SetupForm();
            form.KeyNameChanged += (sender, e) => { if (!Detached)
                                                    {
                                                        Key.Name = form.KeyName;
                                                    }
            };
            form.KeytypeChanged += (sender, e) => { if (!Detached)
                                                    {
                                                        Key.Keytype = form.Keytype;
                                                    }
            };
            form.DescriptionChanged += (sender, e) => { if (!Detached)
                                                        {
                                                            Key.Description = form.Description;
                                                        }
            };
            form.EditColumn += (sender, e) => { if (!Detached)
                                                {
                                                    mainPanel.ShowObjectPropertyGrid(form.SelectedColumn);
                                                }
            };
            form.DeleteKey    += form_DeleteKey;
            form.AddNewColumn += form_AddNewColumn;
            form.RemoveColumn += form_RemoveColumn;
        }
Example #2
0
        public void Property_Changed_Registered()
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            IKey       obj   = MockRepository.GenerateMock <IKey>();
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //var presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);

            obj.AssertWasCalled(o => o.PropertyChanged += null, c => c.IgnoreArguments());
        }
Example #3
0
        public void Clear_Called()
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            IKey       obj   = MockRepository.GenerateMock <IKey>();
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //var presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);

            form.AssertWasCalled(f => f.Clear());
        }
Example #4
0
        public void Show_Property_Grid_Called()
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            IKey       obj   = MockRepository.GenerateMock <IKey>();
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //KeyPresenter presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);
            //presenter.Show();

            //panel.AssertWasCalled(p => p.ShowPropertyGrid(form));
        }
Example #5
0
        private void Test_Property_Called(Action <Key> setPropertyAction, Action <IKeyForm> action)
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            Key        obj   = new Key("PrimaryKey");
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //var presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);

            setPropertyAction(obj);

            form.AssertWasCalled(action);
        }
Example #6
0
        public void Events_Are_Registered()
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //new KeyPresenter(panel, form);

            form.AssertWasCalled(x => x.KeyNameChanged     += null, c => c.IgnoreArguments());
            form.AssertWasCalled(x => x.DescriptionChanged += null, c => c.IgnoreArguments());
            form.AssertWasCalled(x => x.KeytypeChanged     += null, c => c.IgnoreArguments());
            form.AssertWasCalled(x => x.EditColumn         += null, c => c.IgnoreArguments());
            form.AssertWasCalled(x => x.AddNewColumn       += null, c => c.IgnoreArguments());
            form.AssertWasCalled(x => x.RemoveColumn       += null, c => c.IgnoreArguments());
            form.AssertWasCalled(x => x.DeleteKey          += null, c => c.IgnoreArguments());
        }
Example #7
0
        public void The_Form_Is_Set_Up()
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            IKey       obj   = MockRepository.GenerateMock <IKey>();
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //KeyPresenter presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);

            form.AssertWasCalled(x => x.KeyName     = obj.Name);
            form.AssertWasCalled(x => x.Description = obj.Description);
            form.AssertWasCalled(x => x.Keytype     = obj.Keytype);
            form.AssertWasCalled(x => x.Columns     = obj.Columns);
            form.AssertWasCalled(x => x.SetVirtualProperties(obj.Ex));
            form.AssertWasCalled(x => x.SetAvailableColumns(null), c => c.IgnoreArguments());
        }
Example #8
0
        private void Property_Changed_Called_After_Form_Updates(Action <IKeyForm> setFormPropertyReturnValue,
                                                                Action <IKeyForm> @event, Action <IKeyForm> expectedCall, object newPropertyValue, Func <Key, object> getParameter)
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            Key        obj   = new Key("PrimaryKey");
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //var presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);

            IEventRaiser raiser = form.GetEventRaiser(@event);

            setFormPropertyReturnValue(form);

            raiser.Raise(form, null);

            form.AssertWasCalled(expectedCall);
            Assert.That(getParameter(obj), Is.EqualTo(newPropertyValue));
        }
Example #9
0
        public void Columns_Changed_Called()
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            IKey       obj   = MockRepository.GenerateStub <IKey>();
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //var presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);

            List <IColumn> columns = new List <IColumn>();

            obj.Stub(o => o.Columns).Return(columns.AsReadOnly());

            // Raise the PropertyChanged event for the Columns collection on the Key
            IEventRaiser raiser = obj.GetEventRaiser(e => e.PropertyChanged += null);

            raiser.Raise(obj, new PropertyChangedEventArgs("Columns"));

            form.AssertWasCalled(f => f.Columns = columns);
        }
Example #10
0
        public void Column_Selection_Changed_Called()
        {
            IKeyForm   form  = MockRepository.GenerateMock <IKeyForm>();
            IKey       obj   = MockRepository.GenerateStub <IKey>();
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            //var presenter = new KeyPresenter(panel, form);
            //presenter.AttachToModel(obj);

            Column toReturn = new Column("Column1");

            form.Stub(o => o.SelectedColumn).Return(toReturn);

            // Raise the PropertyChanged event for the Columns collection on the Key
            IEventRaiser raiser = form.GetEventRaiser(e => e.EditColumn += null);

            raiser.Raise(obj, null);

            panel.AssertWasCalled(p => p.ShowObjectPropertyGrid(toReturn));
        }
Example #11
0
        public static bool switchToView(IXContainerControl container, IKeyForm Link, CMenuItem mnu, ref UpdateData data, List <UpdateData> injectedatas)
        {
            if (mnu == null)
            {
                return(false);
            }
            if (mnu.LinkValue == null || mnu.LinkValue.Trim().Length == 0)
            {
                return(false);
            }

            Type tFrm = Appasmb.GetType(string.Format(mnu.LinkValue, GlobalShare.SystemAppInfo.AssemName));

            if (true)
            {
                if (tFrm == null)
                {
                    MessageBox.Show(string.Format("未找到类{0}!", mnu.LinkValue));
                    return(false);
                }
            }
            if (mnu.linkType == LinkType.WebPage)
            {
                if (AllModules.ContainsKey(mnu.MnuId))
                {
                    container.CurrMainControl = AllModules[mnu.MnuId];
                    return(true);
                }
            }
            Ifrm_Model objInst;

            if (container == null)
            {
                return(false);
            }
            //container.Controls.Clear();

            //container.Controls.Clear();//清除所有控件

            if (mnu.Params == null || mnu.Params.Trim().Length == 0)
            {
                object obj = Activator.CreateInstance(tFrm, null);
                objInst = obj as Ifrm_Model;
            }
            else
            {
                objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model;
            }
            if (objInst == null)
            {
                return(false);
            }
            objInst.FromMenu = mnu;
            objInst.strUid   = mnu.strUid;
            objInst.SetDock(XPlatformDockStyle.Fill);
            if (objInst.lb_Title != null)
            {
                objInst.lb_Title.Text = mnu.MnuName;
            }
            objInst.GridSource   = mnu.GridSource;
            objInst.DetailSource = mnu.DetailSrouce;
            objInst.UseSubItems  = mnu.UseSubItems;
            objInst.strKey       = mnu.Key;
            if (mnu.Module.Trim().Length > 0)
            {
                objInst.strModule = mnu.Module;
            }
            if (mnu.Screen.Trim().Length > 0)
            {
                objInst.strScreen = mnu.Screen;
            }
            if (mnu.Target.Trim().Length > 0)
            {
                objInst.strTarget = mnu.Target;
            }
            objInst.strKey = mnu.Key;
            objInst.Link   = Link;
            if (objInst is IMutliDataInterface)
            {
                (objInst as IMutliDataInterface).InjectedDatas = injectedatas;
            }
            if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null))
            {
                FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data);
                (objInst as ITranslateableInterFace).NeedUpdateData = data;
            }
            objInst.TranData = mnu.TranDataMapping;
            //菜单数据下传
            //if (objInst.InjectedDatas == null)
            //{
            //    objInst.InjectedDatas = new List<UpdateData>();
            //}
            //if(data != null)
            //{
            //    objInst.InjectedDatas.Add(data);
            //}
            if (container != null)
            {
                container.Controls_Add(objInst);
                objInst.ToTopLevel();
            }
            if (!AllModules.ContainsKey(mnu.MnuId))
            {
                AllModules.Add(mnu.MnuId, objInst);
            }
            container.CurrMainControl = objInst;
            switch (mnu.linkType)
            {
            case LinkType.WebPage:    //winform专用
            {
                break;
            }

            case LinkType.Dialog:
            {
                if (container is IXPanel)              //容器是ixpanel 并且
                {
                    if ((container as IXPanel).InForm) //容器是在最外层main/mdi_main
                    {
                    }
                    else
                    {
                        break;
                    }
                }
                else        //如果是form
                {
                    //自加载
                    break;
                }

                IXForm frmobj = CreateForm(objInst.ControlType);
                frmobj.InitForm(mnu, SystemIcon);
                frmobj.Controls_Add(objInst);
                frmobj.ShowIXDialog();
                break;
            }

            case LinkType.Form:
            {
                break;
            }

            case LinkType.UserControl:
            {
                break;
            }

            case LinkType.PrintToPDF:
            {
                if (container is IXPanel)              //容器是ixpanel 并且
                {
                    if ((container as IXPanel).InForm) //容器是在最外层main/mdi_main
                    {
                        break;
                    }
                    else
                    {
                    }
                }
                else        //如果是form
                {
                    //自加载
                    break;
                }

                IXForm frmobj = CreateForm(objInst.ControlType);
                frmobj.InitForm(mnu, SystemIcon);
                frmobj.Controls_Add(objInst);
                frmobj.ShowIXDialog();
                break;
            }

            default:
            {
                break;
            }
            }
            return(true);
        }
Example #12
0
 public static bool switchToView(IXContainerControl container, IKeyForm Link, CMenuItem mnu, ref UpdateData data)
 {
     return(switchToView(container, Link, mnu, ref data, null));
 }
Example #13
0
        public static void FillTranData(IKeyForm currfrm, ITranslateableInterFace ifrm, ref CMenuItem mnu, ref UpdateData data, bool TranData)
        {
            if (data == null)
            {
                data = new UpdateData();
            }


            if (TranData)
            {
                ifrm.NeedUpdateData = data.Clone() as UpdateData;//传入
            }
            ifrm.TranData = mnu.CopyTranDatas();

            //上个页面查询条件下传
            if (currfrm != null && currfrm is ITranslateableInterFace && (currfrm as ITranslateableInterFace).TranData != null)
            {
                if (ifrm.TranData == null)
                {
                    ifrm.TranData = new List <DataTranMapping>();
                }
                if (ifrm.TranData != null)
                {
                    List <DataTranMapping> prevdata = (currfrm as ITranslateableInterFace).TranData;
                    for (int i = 0; i < prevdata.Count; i++)
                    {
                        DataTranMapping inputdata = prevdata[i];
                        var             mp        = ifrm.TranData.Where(a => a.FromDataPoint.Name == inputdata.ToDataPoint);
                        if (mp.Count() == 0)
                        {
                            ifrm.TranData.Add(inputdata);
                        }
                        else
                        {
                            mp.First().FromDataPoint.Text = inputdata.FromDataPoint.Text;
                        }
                        if (!data.Items.ContainsKey(inputdata.ToDataPoint))
                        {
                            data.Items.Add(inputdata.ToDataPoint, new UpdateItem(inputdata.ToDataPoint, inputdata.FromDataPoint.Text));
                        }
                        data.Items[inputdata.ToDataPoint].text = inputdata.FromDataPoint.Text;
                    }
                }
            }
            #region  输数据不为空
            if (mnu.TranDataMapping != null)
            {
                for (int i = 0; i < mnu.TranDataMapping.Count; i++)
                {
                    DataTranMapping dtm = mnu.TranDataMapping[i];
                    if (currfrm != null && currfrm is IKeyForm && currfrm.strKey == dtm.FromDataPoint.Name)//如果匹配到关键字,传送到下一个界面
                    {
                        string val = currfrm.strRowId;
                        if (mnu.Params != null && mnu.Params.Trim().Length > 0)
                        {
                            if (val.Trim().Length == 0)
                            {
                                val = mnu.Params;
                            }
                        }
                        if (data.Items.ContainsKey(dtm.ToDataPoint))
                        {
                            data.Items[dtm.ToDataPoint].value = val;
                        }
                        else
                        {
                            data.Items.Add(dtm.ToDataPoint, new UpdateItem(dtm.ToDataPoint, val));
                        }
                        //break;
                    }
                    else
                    {
                        string strPoint = dtm.FromDataPoint.Name.Replace("{", "").Replace("}", "");
                        if (GlobalShare.DataPointMappings.ContainsKey(strPoint))//如果是数据点,传数据
                        {
                            if (!TranData)
                            {
                                continue;
                            }
                            //暂时无法处理
                            if (currfrm is ITranslateableInterFace)//获得该界面的所有数据
                            {
                                UpdateData currframedata = (currfrm as ITranslateableInterFace).GetCurrFrameData();

                                if (currframedata.Items.ContainsKey(strPoint))//如果数据中包括要传送的数据点
                                {
                                    if (data.Items.ContainsKey(dtm.ToDataPoint))
                                    {
                                        data.Items[dtm.ToDataPoint].value = currframedata.Items[strPoint].value;
                                    }
                                    else
                                    {
                                        data.Items.Add(dtm.ToDataPoint, new UpdateItem(dtm.ToDataPoint, currframedata.Items[strPoint].value));
                                        //dtm.FromDataPoint  = currframedata.Items[dtm.FromDataPoint.Name].value;
                                    }
                                    dtm.FromDataPoint.Text = currframedata.Items[strPoint].value;
                                }
                            }
                            else//如果是顶层菜单传入,并且是系统的用户常量
                            {
                                if (GlobalShare.UserAppInfos.First().Value.appinfo.UserInfo.Items.ContainsKey(strPoint))
                                {
                                    UpdateData ud = GlobalShare.UserAppInfos.First().Value.appinfo.UserInfo;
                                    if (data.Items.ContainsKey(strPoint))
                                    {
                                        data.Items[dtm.ToDataPoint].value = ud.Items[strPoint].value;
                                    }
                                    else
                                    {
                                        data.Items.Add(dtm.ToDataPoint, new UpdateItem(strPoint, ud.Items[strPoint].value));
                                        //dtm.FromDataPoint  = currframedata.Items[dtm.FromDataPoint.Name].value;
                                    }
                                    dtm.FromDataPoint.Text = ud.Items[strPoint].value;
                                }
                            }
                        }
                        else//传常量
                        {
                            if (data.Items.ContainsKey(dtm.ToDataPoint))
                            {
                                data.Items[dtm.ToDataPoint].value = dtm.FromDataPoint.Text;
                            }
                            else
                            {
                                data.Items.Add(dtm.ToDataPoint, new UpdateItem(dtm.ToDataPoint, dtm.FromDataPoint.Name));
                            }
                        }
                    }
                }
            }
            #endregion
            if (!TranData)
            {
                return;
            }
            //关键字下传
            if (currfrm == null)
            {
                return;
            }
            if (data == null)
            {
                data = new UpdateData();
            }
            if (data.Items.ContainsKey(currfrm.strKey) && currfrm.strRowId != "")
            {
                data.Items[currfrm.strKey].value = currfrm.strRowId;
            }
            else
            {
                if (!data.Items.ContainsKey(currfrm.strKey))
                {
                    data.Items.Add(currfrm.strKey, new UpdateItem(currfrm.strKey, currfrm.strRowId));
                }
            }
        }
Example #14
0
 public static void FillTranData(IKeyForm currfrm, ITranslateableInterFace ifrm, ref CMenuItem mnu, ref UpdateData data)
 {
     FillTranData(currfrm, ifrm, ref mnu, ref data, true);
 }
Example #15
0
        public static bool ShowDialoger(IXPanel container, IKeyForm Link, CMenuItem mnu, ref UpdateData data, bool MultiSelected)
        {
            if (mnu == null)
            {
                return(false);
            }
            if (mnu.LinkValue == null || mnu.LinkValue.Trim().Length == 0)
            {
                return(false);
            }
            Type tFrm = Appasmb.GetType(string.Format(mnu.LinkValue, GlobalShare.SystemAppInfo.AssemName));

            if (mnu.linkType != LinkType.WebPage)
            {
                if (tFrm == null)
                {
                    MessageBox.Show(string.Format("未找到类{0}!", mnu.LinkValue));
                    return(false);
                }
            }

            switch (mnu.linkType)
            {
            case LinkType.WebPage:
            {
                if (container != null)        //support the tab frame
                {
                    ////WebBrowser wb = new WebBrowser();
                    ////wb.Url = new Uri(mnu.LinkValue);
                    ////container.ControlsAdd(wb);
                    ////wb.Dock = DockStyle.Fill;
                    break;
                }
                WebForm wbfrm = null;
                if (ShowWebForms.ContainsKey(mnu.MnuId))
                {
                    wbfrm = ShowWebForms[mnu.MnuId];
                }
                else
                {
                    wbfrm = new WebForm(mnu.MnuId, mnu.LinkValue);
                }
                wbfrm.ShowDialog(ParentForm);
                break;
            }

            case LinkType.Dialog:
            {
                Ifrm_Model objInst;
                if (mnu.Params == null || mnu.Params.Trim().Length == 0)
                {
                    objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model;
                }
                else
                {
                    objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model;
                }
                if (objInst == null)
                {
                    return(false);
                }
                objInst.FromMenu = mnu;
                objInst.SetDock(XPlatformDockStyle.Fill);
                objInst.strUid        = mnu.strUid;
                objInst.FromMenu      = mnu;
                objInst.lb_Title.Text = mnu.MnuName;
                objInst.GridSource    = mnu.GridSource;
                objInst.DetailSource  = mnu.DetailSrouce;
                if (mnu.Module.Trim().Length > 0)
                {
                    objInst.strModule = mnu.Module;
                }
                if (mnu.Screen.Trim().Length > 0)
                {
                    objInst.strScreen = mnu.Screen;
                }
                if (mnu.Target.Trim().Length > 0)
                {
                    objInst.strTarget = mnu.Target;
                }
                objInst.strKey = mnu.Key;
                objInst.Link   = Link;
                IXForm frm = CreateForm(objInst.ControlType);
                frm.InitForm(mnu, SystemIcon);
                //objInst.AllowClose = false;
                if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null))
                {
                    FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data);
                }
                objInst.TranData = mnu.TranDataMapping;
                objInst.FromMenu = mnu;
                if (objInst is ITranslateableInterFace)
                {
                    data.ReqType = DataRequestType.Update;
                    if (mnu.Params == null || mnu.Params.Trim().Length == 0)
                    {
                        data.ReqType = DataRequestType.Add;
                        data.Updated = true;
                    }
                    (objInst as ITranslateableInterFace).NeedUpdateData = data;
                }
                frm.Controls_Add(objInst);
                if (!frm.ShowIXDialog())
                {
                    return(false);
                }
                if (objInst is ITranslateableInterFace)
                {
                    data = (objInst as ITranslateableInterFace).NeedUpdateData;        //传出
                }
                break;
            }

            case LinkType.Select:
            {
                Dlg_CommModel objInst;
                if (mnu.Params == null || mnu.Params.Trim().Length == 0)
                {
                    objInst = Activator.CreateInstance(tFrm, null) as Dlg_CommModel;
                }
                else
                {
                    objInst = Activator.CreateInstance(tFrm, mnu.Params) as Dlg_CommModel;
                }
                if (objInst == null)
                {
                    return(false);
                }
                objInst.FromMenu = mnu;
                objInst.strUid   = mnu.strUid;
                //objInst.Dock = DockStyle.Fill;
                //objInst.lb_Title.Text = mnu.MnuName;
                objInst.MultiSelect  = MultiSelected;
                objInst.GridSource   = mnu.GridSource;
                objInst.DetailSource = mnu.DetailSrouce;
                if (mnu.Module.Trim().Length > 0)
                {
                    objInst.strModule = mnu.Module;
                }
                if (mnu.Screen.Trim().Length > 0)
                {
                    objInst.strScreen = mnu.Screen;
                }
                if (mnu.Target.Trim().Length > 0)
                {
                    objInst.strTarget = mnu.Target;
                }
                objInst.strKey = mnu.Key;
                objInst.Link   = Link;

                if (container != null)
                {
                    objInst.Icon = SystemIcon;
                }
                objInst.Text = mnu.Title;

                objInst.MaximizeBox     = false;
                objInst.MinimizeBox     = false;
                objInst.FormBorderStyle = FormBorderStyle.FixedDialog;
                objInst.StartPosition   = FormStartPosition.CenterParent;
                //objInst.AllowClose = false;
                //(objInst as Dlg_CommModel).ReturnData = data;//传入
                if (objInst is ITranslateableInterFace)
                {
                    FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data, false);
                }
                if (objInst.ShowDialog() != DialogResult.Yes)
                {
                    return(false);
                }
                if (objInst is ITranslateableInterFace && Link is IKeyForm)
                {
                    data = (objInst as ITranslateableInterFace).NeedUpdateData;        //传出
                }

                break;
            }

            case LinkType.Form:
            {
                Ifrm_Model objInst;
                if (mnu.Params == null || mnu.Params.Trim().Length == 0)
                {
                    objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model;
                }
                else
                {
                    objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model;
                }
                if (objInst == null)
                {
                    return(false);
                }
                objInst.FromMenu = mnu;
                objInst.strUid   = mnu.strUid;
                objInst.SetDock(XPlatformDockStyle.Fill);
                objInst.lb_Title.Text = mnu.MnuName;
                objInst.GridSource    = mnu.GridSource;
                objInst.DetailSource  = mnu.DetailSrouce;
                if (mnu.Module.Trim().Length > 0)
                {
                    objInst.strModule = mnu.Module;
                }
                if (mnu.Screen.Trim().Length > 0)
                {
                    objInst.strScreen = mnu.Screen;
                }
                if (mnu.Target.Trim().Length > 0)
                {
                    objInst.strTarget = mnu.Target;
                }
                objInst.strKey = mnu.Key;
                objInst.Link   = Link;
                IXForm frm = CreateForm(objInst.ControlType);
                frm.InitForm(mnu, SystemIcon);

                //objInst.AllowClose = false;
                if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null))
                {
                    FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data);
                    //(objInst as ITranslateableInterFace).NeedUpdateData = data;
                }
                frm.Controls_Add(objInst);
                frm.ShowIXDialog();
                if (objInst is ISaveableInterFace)
                {
                    data = (objInst as ISaveableInterFace).NeedUpdateData;        //传出
                }
                break;
            }

            case LinkType.UserControl:
            {
                container.Controls_Clear();        //清除所有控件
                Ifrm_Model objInst;
                if (mnu.Params == null || mnu.Params.Trim().Length == 0)
                {
                    objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model;
                }
                else
                {
                    objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model;
                }
                if (objInst == null)
                {
                    return(false);
                }
                objInst.FromMenu = mnu;
                objInst.strUid   = mnu.strUid;
                objInst.SetDock(XPlatformDockStyle.Fill);
                objInst.lb_Title.Text = mnu.MnuName;
                objInst.GridSource    = mnu.GridSource;
                objInst.DetailSource  = mnu.DetailSrouce;
                objInst.strKey        = mnu.Key;
                if (mnu.Module.Trim().Length > 0)
                {
                    objInst.strModule = mnu.Module;
                }
                if (mnu.Screen.Trim().Length > 0)
                {
                    objInst.strScreen = mnu.Screen;
                }
                if (mnu.Target.Trim().Length > 0)
                {
                    objInst.strTarget = mnu.Target;
                }
                objInst.strKey = mnu.Key;
                objInst.Link   = Link;
                if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null))
                {
                    FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data);
                }
                container.Controls_Add(objInst);
                objInst.ToTopLevel();
                //objInst.Focus();
                break;
            }

            default:
            {
                break;
            }
            }
            return(true);
        }
Example #16
0
 public static bool ShowDialoger(IXPanel container, IKeyForm Link, CMenuItem mnu, ref UpdateData data)
 {
     return(ShowDialoger(container, Link, mnu, ref data, false));
 }
Example #17
0
 public static void FillTranData(IKeyForm currfrm, ITranslateableInterFace ifrm, CMenuItem mnu, ref UpdateData data)
 {
     if (data == null)
     {
         data = new UpdateData();
     }
     ifrm.NeedUpdateData = data;//传入
     ifrm.TranData       = mnu.TranDataMapping;
     #region
     if (mnu.TranDataMapping != null)
     {
         for (int i = 0; i < mnu.TranDataMapping.Count; i++)
         {
             DataTranMapping dtm = mnu.TranDataMapping[i];
             if (currfrm != null && currfrm.strKey == dtm.FromDataPoint.Name)//如果匹配到关键字,传送到下一个界面
             {
                 //break;
             }
             else
             {
                 if (GlobalShare.DataPointMappings.ContainsKey(dtm.FromDataPoint.Name))//如果是数据点,传数据
                 {
                     //暂时无法处理
                     if (currfrm is ITranslateableInterFace)//获得该界面的所有数据
                     {
                         UpdateData currframedata = (currfrm as ITranslateableInterFace).GetCurrFrameData();
                         if (currframedata.Items.ContainsKey(dtm.FromDataPoint.Name))//如果数据中包括要传送的数据点
                         {
                             if (data.Items.ContainsKey(dtm.ToDataPoint))
                             {
                                 data.Items[dtm.ToDataPoint].value = currframedata.Items[dtm.FromDataPoint.Name].value;
                             }
                             else
                             {
                                 data.Items.Add(dtm.ToDataPoint, new UpdateItem(dtm.ToDataPoint, currframedata.Items[dtm.FromDataPoint.Name].value));
                             }
                         }
                     }
                 }
                 else//传常量
                 {
                     if (data.Items.ContainsKey(dtm.ToDataPoint))
                     {
                         data.Items[dtm.ToDataPoint].value = dtm.FromDataPoint.Text;
                     }
                     else
                     {
                         data.Items.Add(dtm.ToDataPoint, new UpdateItem(dtm.ToDataPoint, dtm.FromDataPoint.Text));
                     }
                 }
             }
         }
     }
     #endregion
     //关键字下传
     if (data == null)
     {
         data = new UpdateData();
     }
     if (data.Items.ContainsKey(currfrm.strKey) && currfrm.strRowId != "")
     {
         data.Items[currfrm.strKey].value = currfrm.strRowId;
     }
     else
     {
         data.Items.Add(currfrm.strKey, new UpdateItem(currfrm.strKey, currfrm.strRowId));
     }
 }