Exemple #1
0
        //----------------------------------------------------------------------------------
        /// <summary>
        /// Retourne le type de form qui sait éditer le type demandé
        /// </summary>
        /// <param name="tp"></param>
        /// <returns></returns>
        public static CReferenceTypeForm GetRefFormToEdit(Type typeAEditer)
        {
            // Cherche dans le dictionnaire des Forms préférés
            CReferenceTypeForm refTypeForm = null;

            if (CDictionnaireTypeEditeTypeFormPrefere.GetInstance().TryGetValue(typeAEditer, out refTypeForm))
            {
                if (refTypeForm != null)
                {
                    return(refTypeForm);
                }
            }

            // Si pas de préféré, on prend le Form "système" (comme avant)
            foreach (System.Reflection.Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
            {
                foreach (Type tp in ass.GetExportedTypes())
                {
                    object[] attribs = tp.GetCustomAttributes(typeof(ObjectEditeur), true);
                    if (attribs != null && attribs.Length == 1)
                    {
                        ObjectEditeur objEdit = (ObjectEditeur)attribs[0];
                        if (objEdit.TypeEdite == typeAEditer)
                        {
                            CReferenceTypeFormBuiltIn tpFormSys = new CReferenceTypeFormBuiltIn();
                            tpFormSys.TypeForm = tp;
                            return(tpFormSys);
                        }
                    }
                }
            }

            return(null);
        }
Exemple #2
0
        //---------------------------------------------------------------------------
        private CFormEditionStandard NewCFormEdition(CObjetDonneeAIdNumeriqueAuto objet, CListeObjetsDonnees liste)
        {
            if (m_strProprieteObjetAEditer.Trim() != "")
            {
                objet = (CObjetDonneeAIdNumeriqueAuto)CInterpreteurTextePropriete.GetValue(objet, m_strProprieteObjetAEditer);
                liste = liste.GetDependances(m_strProprieteObjetAEditer);
            }
            CFormEditionStandard frm = null;

            // YK 20/02/09 : On utilise ici le nouveau CFormFinder
            if (m_referenceForm == null)
            {
                m_referenceForm = CFormFinder.GetRefFormToEdit(m_typeObjet);
            }
            if (m_referenceForm != null)
            {
                frm = (CFormEditionStandard)m_referenceForm.GetForm(objet, liste);
            }
            if (frm != null)
            {
                if (AfterCreateFormEdition != null)
                {
                    AfterCreateFormEdition(this, frm);
                }
                frm.AfterSuppression            += new ObjetDonneeEventHandler(OnSuppressionDansFormEdition);
                frm.AfterValideModification     += new ObjetDonneeEventHandler(OnValidationDansFormEdition);
                frm.AfterAnnulationModification += new ObjetDonneeEventHandler(OnAnnulationDansFormEdition);
            }
            return(frm);
        }
Exemple #3
0
 /// //////////////////////////////////////////////////////////////
 public CGestionnaireAjoutModifSuppObjetDonnee
 (
     Type typeObjets,
     CReferenceTypeForm referenceForm)
 {
     m_typeObjet     = typeObjets;
     m_referenceForm = referenceForm;
 }
Exemple #4
0
        //--------------------------------------------------------------------------
        public override Form GetForm(CObjetDonneeAIdNumeriqueAuto objetDonnee, CListeObjetsDonnees liste)
        {
            CReferenceTypeForm refType = GetFinalRefTypeForm(objetDonnee);

            if (refType != null)
            {
                return(refType.GetForm(objetDonnee, liste));
            }
            return(null);
        }
Exemple #5
0
        //-----------------------------------------------------------------------------------------
        public override Form GetForm()
        {
            CReferenceTypeForm refType = GetFinalRefTypeForm(null);

            if (refType != null)
            {
                return(refType.GetForm());
            }
            return(null);
        }
        //-----------------------------------
        private CReferenceTypeForm GetTypeFormToEdit(Type typeObjet)
        {
            CReferenceTypeForm refTypeForm = null;

            if (!m_dicTypeObjetToTypeFormEdition.TryGetValue(typeObjet, out refTypeForm))
            {
                refTypeForm = CFormFinder.GetRefFormToEdit(typeObjet);
                m_dicTypeObjetToTypeFormEdition[typeObjet] = refTypeForm;
            }
            return(refTypeForm);
        }
Exemple #7
0
 /// //////////////////////////////////////////////////////////////
 public CGestionnaireAjoutModifSuppObjetDonnee
 (
     Type typeObjets,
     CReferenceTypeForm referenceFormEdition,
     CObjetDonneeAIdNumeriqueAuto objetContainer,
     string strChampLienParent)
 {
     m_typeObjet          = typeObjets;
     m_referenceForm      = referenceFormEdition;
     m_objetContainer     = objetContainer;
     m_strChampLienParent = strChampLienParent;
 }
Exemple #8
0
        private void AfficheElement(IObjetHierarchiqueACodeHierarchique objet)
        {
            //Type typeForm = CFormFinder.GetTypeFormToEdit(objet.GetType());
            //if (typeForm == null || !typeForm.IsSubclassOf(typeof(CFormEditionStandard)))
            //    return;
            //CFormEditionStandard form = (CFormEditionStandard)Activator.CreateInstance(typeForm, new object[] { objet });
            //CTimosApp.Navigateur.AffichePage(form);
            CReferenceTypeForm refTypeForm = CFormFinder.GetRefFormToEdit(objet.GetType());

            if (refTypeForm != null)
            {
                CFormEditionStandard form = refTypeForm.GetForm((CObjetDonneeAIdNumeriqueAuto)objet) as CFormEditionStandard;
                if (form != null)
                {
                    CSc2iWin32DataNavigation.Navigateur.AffichePage(form);
                }
            }
        }
        //------------------------------------------------------------------
        private void m_linkControl_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
        {
            CObjetDonneeAIdNumeriqueAuto obj = this.SelectedObject as CObjetDonneeAIdNumeriqueAuto;

            if (obj == null)
            {
                return;
            }
            CReferenceTypeForm refTypeForm = GetTypeFormToEdit(obj.GetType());

            if (refTypeForm != null)
            {
                IFormNavigable frm = refTypeForm.GetForm(obj) as IFormNavigable;
                if (frm != null)
                {
                    CSc2iWin32DataNavigation.Navigateur.AffichePage(frm);
                }
            }
        }
        private CResultAErreur EditeElementInterne(CObjetDonnee objet, bool bInNewOnglet, string strCodeFormEdition)
        {
            CResultAErreur result = CResultAErreur.True;

            CReferenceTypeForm refTypeForm = null;

            if (strCodeFormEdition != string.Empty)
            {
                refTypeForm = sc2i.win32.data.navigation.CFormFinder.GetRefFormToEdit(objet.GetType(), strCodeFormEdition);
            }
            else
            {
                refTypeForm = sc2i.win32.data.navigation.CFormFinder.GetRefFormToEdit(objet.GetType());
            }

            if (refTypeForm == null)
            {
                result.EmpileErreur(I.T("The system is not able to edit elements of type '@1'|1076", objet.GetType().ToString()));
                return(result);
            }
            try
            {
                CFormEditionStandard form = refTypeForm.GetForm((CObjetDonneeAIdNumeriqueAuto)objet) as CFormEditionStandard;
                if (bInNewOnglet)
                {
                    AffichePageDansNouvelOnglet(form);
                }
                else
                {
                    AffichePage(form);
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
        //------------------------------------------------------------------
        private void m_linkControl_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
        {
            CObjetDonneeAIdNumeriqueAuto obj = this.ElementSelectionne as CObjetDonneeAIdNumeriqueAuto;

            if (obj == null)
            {
                return;
            }
            Type typeForm = m_typeFormEdition;

            //if ( typeForm == null && ElementSelectionne != null )
            //    typeForm = CFormFinder.GetRefFormToEdit ( ElementSelectionne.GetType() );
            if (ElementSelectionne != null)
            {
                CFormEditionStandard form;
                if (typeForm != null)
                {
                    form = (CFormEditionStandard)Activator.CreateInstance(
                        typeForm,
                        new object[] { obj });
                    CSc2iWin32DataNavigation.Navigateur.AffichePage(form);
                }
                else
                {
                    CReferenceTypeForm refTypeForm = CFormFinder.GetRefFormToEdit(ElementSelectionne.GetType());
                    if (refTypeForm != null)
                    {
                        form = refTypeForm.GetForm(obj) as CFormEditionStandard;
                        if (form != null)
                        {
                            CSc2iWin32DataNavigation.Navigateur.AffichePage(form);
                        }
                    }
                }
            }
        }