/// //////////////////////////////////////////////////////// private static void SerializeObjetAIdAuto( int nVersion, Type typeObjet, ref IObjetDonneeAIdNumeriqueAuto valeur, C2iSerializer serializer, CContexteDonnee contexte) { int nId = -1; if (valeur is CObjetDonnee && ((CObjetDonnee)valeur).Row.RowState != DataRowState.Deleted && ((CObjetDonnee)valeur).Row.RowState != DataRowState.Detached) { nId = valeur.Id; } serializer.TraiteInt(ref nId); if (nVersion >= 8 && nId >= 0) { serializer.TraiteType(ref typeObjet); } if (nId != -1 && serializer.Mode == ModeSerialisation.Lecture) { valeur = (IObjetDonneeAIdNumeriqueAuto)Activator.CreateInstance(typeObjet, new object[] { contexte }); if (!valeur.ReadIfExists(nId)) { valeur = null; } } }
/// /////////////////////////////////////////////////// private void CreateControles(Crownwood.Magic.Controls.TabPage page) { if (m_tableCreateurs[page] != null || 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.SuspendLayout(); CCreateur2iFormulaire createur; IObjetDonneeAIdNumeriqueAuto objetDonnee = ElementEdite as IObjetDonneeAIdNumeriqueAuto; if (objetDonnee != null) { createur = new CCreateur2iFormulaire(objetDonnee.ContexteDonnee.IdSession, ElementEdite, page); } else { createur = new CCreateur2iFormulaire(CSessionClient.GetSessionUnique().IdSession, ElementEdite, page); } createur.CreateChilds(panel, wnd, m_champTooltip); panel.ResumeLayout(); panel.Size = page.ClientSize; m_tableCreateurs[page] = createur; page.ResumeLayout(); panel.Dock = DockStyle.Fill; }
/// //////////////////////////////////////////////////////// internal static CResultAErreur SerializeValeurVariable( ref object valeur, CVariableDynamique variable, C2iSerializer serializer, CContexteDonnee contexteDonnee, bool bAvecCompatibiliteSurVersionQuiTravaillaitDirectementDansCProcess) { int nVersion = GetNumVersion(); CResultAErreur result = CResultAErreur.True; if (!bAvecCompatibiliteSurVersionQuiTravaillaitDirectementDansCProcess) { result = serializer.TraiteVersion(ref nVersion); } if (!result) { return(result); } if (variable is CVariableDynamiqueSaisie || variable is CVariableDynamiqueSelectionObjetDonnee) { result = serializer.TraiteObjetSimple(ref valeur); } if (variable is CVariableProcessTypeComplexe) { Type tp = variable.TypeDonnee.TypeDotNetNatif; if (tp == typeof(int) || tp == typeof(double) || tp == typeof(string) || tp == typeof(DateTime) || tp == typeof(bool)) { if (nVersion >= 5) { serializer.TraiteObjetSimple(ref valeur); } } else if (typeof(IObjetDonneeAIdNumeriqueAuto).IsAssignableFrom(tp)) #region ObjetAIdNumerique AUTO { if (!variable.TypeDonnee.IsArrayOfTypeNatif) { IObjetDonneeAIdNumeriqueAuto objet = (IObjetDonneeAIdNumeriqueAuto)valeur; SerializeObjetAIdAuto(nVersion, objet == null ? tp : objet.GetType(), ref objet, serializer, contexteDonnee); valeur = objet; } else { int nNb = 0; if (valeur != null) { nNb = ((IList)valeur).Count; } serializer.TraiteInt(ref nNb); switch (serializer.Mode) { case ModeSerialisation.Ecriture: if (valeur != null) { foreach (IObjetDonneeAIdNumeriqueAuto objet in (IList)valeur) { IObjetDonneeAIdNumeriqueAuto objetForRef = objet; SerializeObjetAIdAuto(nVersion, objetForRef == null ? tp : objetForRef.GetType(), ref objetForRef, serializer, contexteDonnee); } } break; case ModeSerialisation.Lecture: ArrayList lst = new ArrayList(); for (int nElt = 0; nElt < nNb; nElt++) { IObjetDonneeAIdNumeriqueAuto element = null; SerializeObjetAIdAuto(nVersion, tp, ref element, serializer, contexteDonnee); if (element != null) { lst.Add(element); } } valeur = (IObjetDonneeAIdNumeriqueAuto[])lst.ToArray(typeof(IObjetDonneeAIdNumeriqueAuto)); break; } } } #endregion } return(result); }
public void UpdateOnglets() { if (!LockEdition) { //valide les modifs car on va tout supprimer MAJ_Champs(); } m_bIsInitializing = true; Hashtable tablePagesToHide = new Hashtable(); foreach (Crownwood.Magic.Controls.TabPage page in TabPages) { m_tablePagesInit[page] = false; tablePagesToHide[page] = true; } 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; IObjetDonneeAIdNumeriqueAuto objetDonnee = m_elementEdite as IObjetDonneeAIdNumeriqueAuto; if (objetDonnee != null) { session = CSessionClient.GetSessionForIdSession(objetDonnee.ContexteDonnee.IdSession); } else { session = CSessionClient.GetSessionUnique(); } ArrayList lstFormulaires = new ArrayList(m_elementEdite.GetFormulaires()); 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) { CRestrictionUtilisateurSurType restriction = new CRestrictionUtilisateurSurType(m_elementEdite.GetType()); if (session.GetInfoUtilisateur() != null) { int?nIdVersion = null; IObjetAContexteDonnee objetAContexte = m_elementEdite as IObjetAContexteDonnee; if (objetAContexte != null) { nIdVersion = objetAContexte.ContexteDonnee.IdVersionDeTravail; } restriction = session.GetInfoUtilisateur().GetRestrictionsSurObjet(m_elementEdite, nIdVersion); } ERestriction restrictionFormulaire = restriction.GetRestriction(formulaire.CleRestriction); if ((restrictionFormulaire & ERestriction.Hide) != ERestriction.Hide) { Crownwood.Magic.Controls.TabPage page = (Crownwood.Magic.Controls.TabPage)m_tableIdFormulaireToTabPage[formulaire.Id]; CCreateur2iFormulaire createur = null; if (page == null) { C2iWndFenetre wnd = formulaire.Formulaire; if (wnd != null) { page = new Crownwood.Magic.Controls.TabPage(wnd.Text); page.SuspendLayout(); if (wnd.Text == "") { page.Title = formulaire.Libelle; } TabPages.Add(page); m_tableCreateurs[page] = null; m_tablePageTo2iWnd[page] = wnd; m_tableIdFormulaireToTabPage[formulaire.Id] = page; } } else { createur = (CCreateur2iFormulaire)m_tableCreateurs[page]; } if (page != null) { m_tablePageToRestriction[page] = restrictionFormulaire; 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) { 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 (SelectedTab != null) { InitPageWithObjetCourant(SelectedTab); } m_bIsInitializing = false; }
static int s_nIdNegatif = -1; // Utile pour les carac template vides public CCaracteristique(DataSet ds, IObjetDonneeAIdNumeriqueAuto objetEdite, Type typeObjetEdite, string strParentElementType, int nParentElementId, int nOrdre, int nIdGroupe, bool isTemplate) { m_objetEdite = objetEdite; // Cela peut être une caractéristique, mais pas frocément DataTable dt = ds.Tables[c_nomTable]; if (dt == null) { return; } DataRow row = dt.NewRow(); string strId = ""; string strLibelle = "Nouvel élément"; int nTimosId = s_nIdNegatif--; string strTypeElement = ""; if (typeObjetEdite != null) { strTypeElement = typeObjetEdite.ToString(); } int nIdMetaType = -1; if (objetEdite != null) { if (!isTemplate) { nTimosId = objetEdite.Id; } strTypeElement = objetEdite.GetType().ToString(); int nLastPoint = strTypeElement.LastIndexOf("."); strId = strTypeElement.Substring(nLastPoint + 1, strTypeElement.Length - nLastPoint - 1) + nTimosId; strLibelle = objetEdite.DescriptionElement; if (objetEdite is CCaracteristiqueEntite) { CCaracteristiqueEntite carac = objetEdite as CCaracteristiqueEntite; strLibelle = carac.Libelle; if (strLibelle == "") { strLibelle = carac.TypeCaracteristique.Libelle; } if (carac.TypeCaracteristique != null) { nIdMetaType = carac.TypeCaracteristique.Id; } } else if (objetEdite is CDossierSuivi) { CDossierSuivi workbook = objetEdite as CDossierSuivi; strLibelle = workbook.Libelle; if (workbook.TypeDossier != null) { nIdMetaType = workbook.TypeDossier.Id; } } else if (objetEdite is CSite) { CSite site = objetEdite as CSite; strLibelle = site.Libelle; if (site.TypeSite != null) { nIdMetaType = site.TypeSite.Id; } } } row[c_champId] = strId; row[c_champTimosId] = nTimosId; row[c_champElementType] = strTypeElement; row[c_champTitre] = strLibelle; row[c_champOrdreAffichage] = nOrdre; row[c_champIdGroupeChamps] = nIdGroupe; row[c_champIsTemplate] = isTemplate; row[c_champIdMetaType] = nIdMetaType; row[c_champParentElementType] = strParentElementType; row[c_champParentElementId] = nParentElementId; m_row = row; dt.Rows.Add(row); }