Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        //--------------------------------------------------------------------------------------
        public static CDictionnaireTypeEditeTypeFormPrefere GetInstance()
        {
            if (m_dictionnaire == null)
            {
                // Lit le registre
                CDataBaseRegistrePourClient registre = new CDataBaseRegistrePourClient(CSc2iWin32DataClient.ContexteCourant.IdSession);
                if (registre != null)
                {
                    byte[] data = registre.GetValeurBlob(c_cleRegistre);
                    if (data != null)
                    {
                        MemoryStream           flux       = new MemoryStream(data);
                        BinaryReader           lecteur    = new BinaryReader(flux);
                        CSerializerReadBinaire serializer = new CSerializerReadBinaire(lecteur);
                        CResultAErreur         result     = serializer.TraiteObject <CDictionnaireTypeEditeTypeFormPrefere>(ref m_dictionnaire);
                        lecteur.Close();
                        flux.Close();

                        if (result)
                        {
                            return(m_dictionnaire);
                        }
                    }
                }
                m_dictionnaire = new CDictionnaireTypeEditeTypeFormPrefere();
            }
            return(m_dictionnaire);
        }
Ejemplo n.º 3
0
 public static void ResetInstance()
 {
     m_dictionnaire = null;
 }