///<summary> /// Feladata MezoControlInfoCollection eloallitasa, ez MezoControlInfo-kbol all. /// Egy MezoControlInfo egy input Control szukseges informacioit tartalmazza. /// Alkalmazasi programokbol altalaban ezt hivjuk. /// </summary> /// <param name="hivo"> /// a UserControl, amely szamara a collection-t eloallitjuk /// </param> /// <param name="cont"> /// Azon Control(-ok) tombje, mely(ek)ben az input Control-(oka)t felvettuk. Altalaban GroupBox-ok tombje /// </param> /// <param name="aktivpage"> /// Az a TabPage, melyben a UserControl fut (vagy null, ha nem ) /// </param> /// <param name="aktivmenuitem"> /// Az ToolStripMenuItem, mely (vagy melynek valamely dropiteme) a UserControl-t aktivizalja (vagy null) /// </param> /// <param name="aktivdropdownitem"> /// Az aktivizalo dropitem (vagy null) /// </param> /// <returns> /// A letrehozott collection /// </returns> public MezoControlCollection ControlTagokTolt(Base hivo, Control[] cont, TabPage aktivpage, ToolStripMenuItem aktivmenuitem, ToolStripMenuItem aktivdropdownitem) { Tablainfo tabinfo; ArrayList tabinfoar = new ArrayList(); MezoControlCollection coll = new MezoControlCollection(); char[] vesszo = new char[] { Convert.ToChar(",") }; foreach (Control egycont in cont) { bool vesszopoz = egycont.Tag.ToString().Contains(","); if (vesszopoz) { string[] split = egycont.Tag.ToString().Split(vesszo); tabinfo = _tablainfok.GetBySzintPluszTablanev(split[0], split[1]); } else tabinfo = _tablainfok.GetByAzontip(egycont.Tag.ToString()); egycont.Tag = tabinfo; if (tabinfoar.IndexOf(tabinfo) == -1) tabinfoar.Add(tabinfo); MezoControlInfo egyinfo = ControlTagokTolt(hivo, egycont, ref tabinfo, aktivpage, aktivmenuitem, aktivdropdownitem); egyinfo.ParentControl = egycont; coll.Add(ControlTagokTolt(hivo, egycont, ref tabinfo, aktivpage, aktivmenuitem, aktivdropdownitem)); } foreach (Tablainfo egytabinfo in tabinfoar) { egytabinfo.AktualControlInfo = coll[egytabinfo]; } return coll; }
/// <summary> /// inicializalas /// </summary> /// <param name="param"> /// objectumtomb /// ezzel hivja meg az Ujterkepez metodust (leiras ott), /// majd tovabbi inicializalasokat vegez /// </param> public virtual void AlapinfoInit(object[] param) { AktivPage = Vezerles.AktivPage; AktivMenuItem = Vezerles.AktivMenuItem; AktivDropDownItem = Vezerles.AktivDropDownItem; Ujterkepez(param); ArrayList ar = new ArrayList(); ArrayList tabinfoar = new ArrayList(); foreach(Controltipus egycont in ControltipusCollection) { if (egycont.GridGroupBox != null) { ar.Add(egycont.GridGroupBox); if (egycont.InputGroupBox == null) tabinfoar.Add(egycont.GridGroupBox); } if (egycont.InputGroupBox != null) { ar.Add(egycont.InputGroupBox); tabinfoar.Add(egycont.InputGroupBox); } } GroupBoxok = (GroupBox[])ar.ToArray(typeof(GroupBox)); AktContInfo = FakUserInterface.ControlTagokTolt(this, GroupBoxok, AktivPage, AktivMenuItem, AktivDropDownItem); Aktualtablainfo = new Tablainfo[ControltipusCollection.Count]; MezoControlInfok = new MezoControlInfo[ControltipusCollection.Count]; for (int i = 0; i < tabinfoar.Count; i++) { GroupBox egygr = (GroupBox)tabinfoar[i]; MezoControlInfo egycontinfo = AktContInfo[egygr.Name]; int j = AktContInfo.IndexOf(egycontinfo); Tablainfo tabinfo = AktContInfo[j].Tabinfo; tabinfo.Hivo = Hivo; Base.HozferJogosultsag hozferjog = tabinfo.Azonositok.Jogszintek[(int)KezeloiSzint]; Controltipus egytip = ControltipusCollection[i]; egytip.SetTablainfo(ref AktContInfo[j].Tabinfo, hozferjog);// = Controlti(Tablainfo)egygr.Tag; egytip.MezoControlInfo = AktContInfo[j]; MezoControlInfok[i] = AktContInfo[j]; Aktualtablainfo[i] = tabinfo; MezoControlInfok[i].UserControlInfo = UserControlInfo; } savind = new int[Aktualtablainfo.Length]; SetEgyediValid(); UserControlInfo = FakUserInterface.Attach(this, Vezerles, ref Aktualtablainfo, AktivPage, AktivMenuItem, AktivDropDownItem); }