Ejemplo n.º 1
0
        //------------------------------------------------------------
        public C2iObjetDeSchema GetObjetElement2(ref bool bCreate)
        {
            if (ElementDeSchema == null || !ElementDeSchema.IsValide())
            {
                return(null);
            }
            CLienReseau lien = ElementDeSchema.LienReseau;

            if (lien == null)
            {
                return(null);
            }
            IElementDeSchemaReseau extremite = null;
            CCheminLienReseau      racine    = ElementDeSchema.RacineChemin2;

            if (racine != null)
            {
                extremite = racine.Etape as IElementDeSchemaReseau;
            }
            if (extremite == null)
            {
                extremite = lien.Element2 as IElementDeSchemaReseau;
            }

            return(GetObjetElement(extremite, ref bCreate));
        }
Ejemplo n.º 2
0
 public bool ContientChemin(CCheminLienReseau chemin)
 {
     if (chemin.SchemaReseauUtilise == null &&
         SchemaReseauUtilise != null)
     {
         return(true);
     }
     if (chemin.SchemaReseauUtilise.Id == SchemaReseauUtilise.Id)
     {
         if (chemin.CheminsFils.Count == 0)
         {
             return(true);
         }
         if (CheminsFils.Count == 0)//Il reste des chemins au testé, mais pas au contenant potentiel
         {
             return(false);
         }
         CCheminLienReseau cheminFilsThis = CheminsFils[0] as CCheminLienReseau;
         CCheminLienReseau cheminFilsTest = chemin.CheminsFils[0] as CCheminLienReseau;
         return(cheminFilsThis.ContientChemin(cheminFilsTest));
     }
     return(false);
 }
Ejemplo n.º 3
0
        private CCheminLienReseau CreateChemin(CSchemaReseau[] schemas, EExtremiteLienReseau extremite)
        {
            if (schemas.Length == 0)
            {
                return(null);
            }
            CCheminLienReseau chemin = new CCheminLienReseau(ContexteDonnee);

            chemin.CreateNewInCurrentContexte( );
            chemin.ElementDeSchemaConcerne  = this;
            chemin.SchemaReseauUtilise      = schemas[0];
            chemin.NumeroExtremiteConcernee = (int)extremite;
            List <CSchemaReseau> copie = new List <CSchemaReseau>(schemas);

            copie.RemoveAt(0);
            CCheminLienReseau cheminFils = CreateChemin(copie.ToArray(), extremite);

            if (cheminFils != null)
            {
                cheminFils.CheminParent = chemin;
            }
            return(chemin);
        }