/// /////////////////////////////////////////////////// public CResultAErreur MAJ_Champs() { CResultAErreur result = CResultAErreur.True; if (m_bIsLock) { return(result); } foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, CCreateur2iFormulaireObjetDonnee> kv in m_tableCreateurs) { CCreateur2iFormulaireObjetDonnee createur = kv.Value; Crownwood.Magic.Controls.TabPage page = kv.Key; if (m_tablePagesInit.ContainsKey(page) && m_tablePagesInit[page]) { result = createur.MAJ_Champs(); if (!result) { return(result); } } } return(result); }
//----------------------------------------------------------- private static void GetCreateurForObject(object obj, ref CCreateur2iFormulaireV2 createurCree) { IObjetDonneeAIdNumerique oai = obj as IObjetDonneeAIdNumerique; if (oai != null) { createurCree = new CCreateur2iFormulaireObjetDonnee(oai.ContexteDonnee.IdSession); } }
/// /////////////////////////////////////////////////// private void OnMyChangeLockEdition() { foreach (Crownwood.Magic.Controls.TabPage page in TabPages) { CCreateur2iFormulaireObjetDonnee createur = null; if (m_tableCreateurs.TryGetValue(page, out createur)) { createur.LockEdition = LockEdition; } } if (OnChangeLockEdition != null) { OnChangeLockEdition(this, new EventArgs()); } }
/// /////////////////////////////////////////////////// private void CreateControles(Crownwood.Magic.Controls.TabPage page) { if (m_tableCreateurs.ContainsKey(page) || ElementEdite == null) { return; } C2iWnd wnd = m_tablePageTo2iWnd[page]; Panel panel = new Panel(); panel.BackColor = wnd.BackColor; panel.ForeColor = wnd.ForeColor; panel.Font = wnd.Font; panel.Location = new Point(0, 0); panel.Size = wnd.Size; panel.AutoScroll = true; page.Controls.Add(panel); panel.SuspendDrawing(); CCreateur2iFormulaireObjetDonnee createur; IObjetDonneeAIdNumerique objetDonnee = ElementEdite as IObjetDonneeAIdNumerique; if (objetDonnee != null) { createur = new CCreateur2iFormulaireObjetDonnee(objetDonnee.ContexteDonnee.IdSession); } else { createur = new CCreateur2iFormulaireObjetDonnee(CSessionClient.GetSessionUnique().IdSession); } createur.CreateControlePrincipalEtChilds(panel, wnd, new CFournisseurPropDynStd(true)); panel.ResumeDrawing(); panel.Size = page.ClientSize; m_tableCreateurs[page] = createur; page.ResumeDrawing(); panel.Dock = DockStyle.Fill; }
/// /////////////////////////////////////////////////// private void InitPageWithObjetCourant(Crownwood.Magic.Controls.TabPage page) { if (m_tablePagesInit.ContainsKey(page) && m_tablePagesInit[page]) { return; } if (!m_tableCreateurs.ContainsKey(page)) { CreateControles(page); } CCreateur2iFormulaireObjetDonnee createur = null; m_tableCreateurs.TryGetValue(page, out createur); createur.LockEdition = m_bIsLock; if (createur != null) { createur.ElementEdite = m_elementEdite; } m_tablePagesInit[page] = true; AppliqueRestrictions(m_listeRestrictions, m_gestionnaireReadOnly); }
/// /////////////////////////////////////////////////// public void AppliqueRestrictions(CListeRestrictionsUtilisateurSurType restrictions, IGestionnaireReadOnlySysteme gestionnaireReadOnly) { if (restrictions == null || gestionnaireReadOnly == null) { return; } m_listeRestrictions = restrictions.Clone() as CListeRestrictionsUtilisateurSurType; m_gestionnaireReadOnly = gestionnaireReadOnly; //Gère la visibilité des formulaires if (m_elementEdite != null) { CRestrictionUtilisateurSurType rest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType()); rest.ApplyToObjet(m_elementEdite); if (rest.HasRestrictions) { foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, int> kv in m_tablePageToIdFormulaire) { CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee); if (formulaire.ReadIfExists(kv.Value)) { ERestriction r = rest.GetRestriction(formulaire.CleRestriction); if ((r & ERestriction.Hide) == ERestriction.Hide) { if (TabPages.Contains(kv.Key)) { TabPages.Remove(kv.Key); m_tablePagesInit[kv.Key] = false; } } } } } } //Update les pages initialisées foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, bool> kv in m_tablePagesInit) { if (kv.Value) { CCreateur2iFormulaireObjetDonnee createur = null; if (m_tableCreateurs.TryGetValue(kv.Key, out createur)) { CRestrictionUtilisateurSurType oldRest = null; if (m_elementEdite != null) { CRestrictionUtilisateurSurType restriction = m_listeRestrictions.GetRestriction(m_elementEdite.GetType()); oldRest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType()); restriction.ApplyToObjet(m_elementEdite); int nIdFormulaire; if (m_tablePageToIdFormulaire.TryGetValue(kv.Key, out nIdFormulaire)) { CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee); if (formulaire.ReadIfExists(nIdFormulaire)) { ERestriction rest = restriction.GetRestriction(formulaire.CleRestriction); if ((rest & ERestriction.ReadOnly) == ERestriction.ReadOnly) { restriction.AddRestrictionsHorsPriorite(new CRestrictionUtilisateurSurType(restriction.TypeAssocie, ERestriction.ReadOnly)); //force readonly sur tous les contrôles restriction.RestrictionUtilisateur = ERestriction.ReadOnly; m_listeRestrictions.SetRestriction(restriction); } } } } createur.AppliqueRestrictions(m_listeRestrictions, m_gestionnaireReadOnly); if (oldRest != null) { m_listeRestrictions.SetRestriction(oldRest); } } } } }
public void UpdateOnglets() { this.SuspendDrawing(); try { /*if (!LockEdition) * { * //valide les modifs car on va tout supprimer * MAJ_Champs(); * }*/ Crownwood.Magic.Controls.TabPage pageSelect = this.SelectedTab; m_bIsInitializing = true; Hashtable tablePagesToHide = new Hashtable(); ArrayList pages = new ArrayList(TabPages); foreach (Crownwood.Magic.Controls.TabPage page in pages) { m_tablePagesInit[page] = false; tablePagesToHide[page] = true; TabPages.Remove(page); } if (m_elementEdite == null) { return; } /* YK : On obtient la session de l'objet en cours d'édition au lieur de la session par défaut */ CSessionClient session = null; IObjetDonneeAIdNumerique objetDonnee = m_elementEdite as IObjetDonneeAIdNumerique; if (objetDonnee != null) { session = CSessionClient.GetSessionForIdSession(objetDonnee.ContexteDonnee.IdSession); } else { session = CSessionClient.GetSessionUnique(); } ArrayList lstFormulaires = new ArrayList(m_listeFormulaires); lstFormulaires.Sort(new CSorterFormulaires()); //Lit les champs liés et leurs valeurs StringBuilder bl = new StringBuilder(); foreach (CFormulaire formulaire in lstFormulaires) { bl.Append(formulaire.Id); bl.Append(","); } if (bl.Length > 0) { bl.Remove(bl.Length - 1, 1); CListeObjetsDonnees lst = new CListeObjetsDonnees(((CFormulaire)lstFormulaires[0]).ContexteDonnee, typeof(CFormulaire)); lst.Filtre = new CFiltreData(CFormulaire.c_champId + " in (" + bl.ToString() + ")"); lst.AssureLectureFaite(); lst.ReadDependances("RelationsChamps", "RelationsChamps.Champ", "RelationsChamps.Champ.ListeValeurs"); } foreach (CFormulaire formulaire in lstFormulaires) { Crownwood.Magic.Controls.TabPage page = null; m_tableIdFormulaireToTabPage.TryGetValue(formulaire.Id, out page); CCreateur2iFormulaireObjetDonnee createur = null; if (page == null) { C2iWndFenetre wnd = formulaire.Formulaire; if (wnd != null) { page = new Crownwood.Magic.Controls.TabPage(wnd.Text); page.Name = formulaire.IdUniversel; if (wnd.Text == "") { page.Title = formulaire.Libelle; } TabPages.Add(page); if (m_tableCreateurs.ContainsKey(page)) { m_tableCreateurs.Remove(page); } m_tablePageTo2iWnd[page] = wnd; m_tableIdFormulaireToTabPage[formulaire.Id] = page; m_tablePageToIdFormulaire[page] = formulaire.Id; } } else { m_tableCreateurs.TryGetValue(page, out createur); } if (page != null) { if (!TabPages.Contains(page)) { TabPages.Add(page); } tablePagesToHide.Remove(page); } } /*CChampCustom[] champs = ElementEdite.GetChampsHorsFormulaire(); * if ( champs.Length != 0 ) * { * UpdatePageChamps( nRest ); * if ( m_pageGrid != null ) * tablePagesToHide.Remove(m_pageGrid); * }*/ foreach (Crownwood.Magic.Controls.TabPage pageToDel in tablePagesToHide.Keys) { if (TabPages.Contains(pageToDel)) { TabPages.Remove(pageToDel); } } if (TabPages.Count == 1) { this.HideTabsMode = Crownwood.Magic.Controls.TabControl.HideTabsModes.HideAlways; } else { this.HideTabsMode = Crownwood.Magic.Controls.TabControl.HideTabsModes.ShowAlways; } if (TabPages.Contains(pageSelect)) { SelectedTab = pageSelect; } if (SelectedTab != null) { InitPageWithObjetCourant(SelectedTab); } } finally { this.ResumeDrawing(); } m_bIsInitializing = false; }