예제 #1
0
        //----------------------------------------------------------------
        public CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            int nNbKeys = m_dicSymbolesParType.Count();

            serializer.TraiteInt(ref nNbKeys);
            switch (serializer.Mode)
            {
            case ModeSerialisation.Ecriture:
                foreach (KeyValuePair <Type, CParametreRepresentationSymbole> kv in m_dicSymbolesParType)
                {
                    Type tp = kv.Key;
                    CParametreRepresentationSymbole parametre = kv.Value;
                    serializer.TraiteType(ref tp);
                    result = serializer.TraiteObject <CParametreRepresentationSymbole>(ref parametre);
                    if (!result)
                    {
                        return(result);
                    }
                }
                break;

            case ModeSerialisation.Lecture:
                Dictionary <Type, CParametreRepresentationSymbole> dic = new Dictionary <Type, CParametreRepresentationSymbole>();
                for (int nParametre = 0; nParametre < nNbKeys; nParametre++)
                {
                    Type tp = null;
                    CParametreRepresentationSymbole parametre = null;
                    serializer.TraiteType(ref tp);
                    result = serializer.TraiteObject <CParametreRepresentationSymbole>(ref parametre);
                    if (!result)
                    {
                        return(result);
                    }
                    if (parametre != null)
                    {
                        dic[tp] = parametre;
                    }
                }
                m_dicSymbolesParType = dic;
                break;
            }
            return(result);
        }
예제 #2
0
 //----------------------------------------------------------------
 public CParametreRepresentationSymbole this[Type tp]
 {
     get
     {
         CParametreRepresentationSymbole tmp = null;
         m_dicSymbolesParType.TryGetValue(tp, out tmp);
         return(tmp);
     }
     set
     {
         if (value == null && m_dicSymbolesParType.ContainsKey(tp))
         {
             m_dicSymbolesParType.Remove(tp);
         }
         else
         {
             m_dicSymbolesParType[tp] = value;
         }
     }
 }
예제 #3
0
        public bool AfterDrawElement(CContextDessinObjetGraphique ctx, C2iObjetGraphique objetGraphique)
        {
            C2iObjetDeSchema objetDessine = objetGraphique as C2iObjetDeSchema;

            if (objetDessine == null || objetDessine.ElementDeSchema == null)
            {
                return(true);
            }
            IElementDeSchemaReseau elementDeSchema = objetDessine.ElementDeSchema.ElementAssocie;

            if (elementDeSchema == null)
            {
                return(true);
            }
            Type tp = elementDeSchema.GetType();
            CParametreRepresentationSymbole parametre = this[tp];

            if (parametre == null)
            {
                return(true);
            }
            parametre.Draw(ctx, elementDeSchema, objetGraphique);
            return(true);
        }