Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        //---------------------------------------------------------------------------
        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();
            }
        }
Ejemplo n.º 3
0
        /// //////////////////////////////////////////////////////////////
        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);
        }
Ejemplo n.º 4
0
        /// //////////////////////////////////////////////////////////////
        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);
        }