public static CObjetDonnee SelectObjectQuickSearch( CFormListeStandard formListe, CObjetDonnee objetPreSelectionnee, string strTextQuick, string strContexteUtilisation, OnNewObjetDonneeEventHandler onNewObjetDonnee) { if (strTextQuick != null) { formListe.ModeQuickSearch = true; formListe.QuickSearchText = strTextQuick; } CObjetDonnee objetUnique = formListe.GetObjetQuickSearchSiUnique(); /*CObjetDonnee objetUnique = CPanelFiltreRapide.GetObjetSiUnique( * formListe.ListeObjets, * formListe.FiltreRapide, * strTextQuick);*/ if (objetUnique != null) { formListe.Dispose(); return(objetUnique); } formListe.ContexteUtilisation = strContexteUtilisation; CFormNavigateur oldNavigateur = CSc2iWin32DataNavigation.Navigateur; CFormNavigateurPopupListe navigateur = new CFormNavigateurPopupListe(formListe); CSc2iWin32DataNavigation.PushNavigateur(navigateur); formListe.ModeSelection = true; formListe.OnObjetDoubleClicked += new EventHandler(navigateur.OnDoubleClickFormList); formListe.AfterValideCreationObjet += new ObjetDonneeEventHandler(navigateur.AfterValideCreationObjet); formListe.OnNewObjetDonnee += onNewObjetDonnee; DialogResult result = navigateur.ShowDialog(); CObjetDonnee objetSelectionne = null; if (result == DialogResult.OK) { objetSelectionne = navigateur.m_objetSelectionne; } CSc2iWin32DataNavigation.PopNavigateur(); return(objetSelectionne); }
//--------------------------------------------------------------------------- public static void Show(IFormNavigable frm, Type typeNavigateur, System.Windows.Forms.FormWindowState windowState, IWin32Window owner) { CFormNavigateur oldNavigateur = CSc2iWin32DataNavigation.Navigateur; CFormNavigateurPopup navigateur = (CFormNavigateurPopup)Activator.CreateInstance(typeNavigateur, new object[] { frm }); CSc2iWin32DataNavigation.PushNavigateur(navigateur); try { navigateur.WindowState = windowState; //LE 5/10/2007, stef //Il y avait ici : navigateur.TopMost = true, mais ça pose des problèmes, //parce que quand un navigateur popup ouvre un navigateur popup, ils se //passent les uns sous les autres. //tentative avec bringtofront navigateur.BringToFront(); CFormEditionStandard formEdition = frm as CFormEditionStandard; if (formEdition != null) { if (formEdition.IsEnEditionPourNouvelElement) { formEdition.AfterAnnulationModification += new ObjetDonneeEventHandler(CloseOnAnnuleOuValideModification); formEdition.AfterValideModification += new ObjetDonneeEventHandler(CloseOnAnnuleOuValideModification); } } if (navigateur.m_contexteDonneePushedAsCurrent != null) { CSc2iWin32DataClient.PushContexteCourant(navigateur.m_contexteDonneePushedAsCurrent); } try { DialogResult result = navigateur.ShowDialog(owner); } finally { if (navigateur.m_contexteDonneePushedAsCurrent != null) { CSc2iWin32DataClient.PopContexteCourant(navigateur.m_contexteDonneePushedAsCurrent); } } } catch { } finally { CSc2iWin32DataNavigation.PopNavigateur(); } }
/// ////////////////////////////////////////////////////////////// public CResultAErreur Modifier( CObjetDonneeAIdNumeriqueAuto objet, CListeObjetsDonnees listePourFormEdition, IEnumerable <CAffectationsProprietes> affectations ) { CResultAErreur result = CResultAErreur.True; if (BeforeAfficheForm != null) { BeforeAfficheForm(null, null); } IFormNavigable form = (IFormNavigable)NewCFormEdition(objet, listePourFormEdition); if (form == null) { result.EmpileErreur(I.T("Impossible to modify the element|30033")); return(result); } CFormEditionStandard frmStd = form as CFormEditionStandard; if (frmStd != null) { frmStd.AffectationsPourNouvelElement = affectations; } if (!Navigateur.IsHandleCreated) { Navigateur.CreateControl(); } Navigateur.AffichePage(form); if (!Navigateur.Visible) { CSc2iWin32DataNavigation.PushNavigateur(Navigateur); Navigateur.ShowDialog(); CSc2iWin32DataNavigation.PopNavigateur(); } return(result); }
/// ////////////////////////////////////////////////////////////// public CResultAErreur Ajouter(CListeObjetsDonnees listePourFormEdition, IEnumerable <CAffectationsProprietes> affectations) { CResultAErreur result = CResultAErreur.True; CContexteDonnee ctx = null; if (ObjetContainer != null) { ctx = ObjetContainer.ContexteDonnee; } else { ctx = CSc2iWin32DataClient.ContexteCourant; } CObjetDonneeAIdNumeriqueAuto objet = (CObjetDonneeAIdNumeriqueAuto)Activator.CreateInstance(m_typeObjet, new object[] { ctx }); objet.CreateNew(); if (ObjetContainer != null) { PropertyInfo prop = objet.GetType().GetProperty(m_strChampLienParent); if (prop == null) { throw new Exception(I.T("The property @1 has not been found in the class @2 |30025", m_strChampLienParent, objet.GetType().ToString())); } //throw new Exception("La propriété '"+m_strChampLienParent+"' n'a pas"+ // " été trouvée dans la classe "+objet.GetType()); MethodInfo method = prop.GetSetMethod(); object[] container = { ObjetContainer }; method.Invoke(objet, container); } bool bCancel = false; if (OnNewObjetDonnee != null) { OnNewObjetDonnee(this, objet, ref bCancel); } if (bCancel) { objet.CancelCreate(); result.EmpileErreur(I.T("Creation canceled|20007")); return(result); } if (BeforeAfficheForm != null) { BeforeAfficheForm(null, null); } IFormNavigable frm = (IFormNavigable)NewCFormEdition(objet, listePourFormEdition); if (frm == null) { result.EmpileErreur(I.T("Impossible to add an element|30026")); return(result); } if (frm is CFormEditionStandard) { ((CFormEditionStandard)frm).AfterValideModification += new ObjetDonneeEventHandler(frm_AfterValideCreateObjetDonnee); ((CFormEditionStandard)frm).AffectationsPourNouvelElement = affectations; } Navigateur.AffichePage(frm); if (!Navigateur.Visible) { CSc2iWin32DataNavigation.PushNavigateur(Navigateur); Navigateur.ShowDialog(); CSc2iWin32DataNavigation.PopNavigateur(); } return(result); }