示例#1
0
        private void majPropriete(Forme_simple forme)
        {//Affiche les propriétes de la forme dans la partie DROITE de l'application
            if (forme != null)
            {
                textBox_nom.Text        = forme.Nom;                     //Nom
                panel_couleur.BackColor = Color.FromArgb(forme.Couleur); //Couleur
                //Groupe
                listBoxGroupesLiés.Items.Clear();
                listBoxGroupesLiés.Items.Add("Aucun");
                listBoxGroupesLiés.SetSelected(listBoxGroupesLiés.Items.IndexOf("Aucun"), true);
                //Groupe lié à la forme_active
                Forme_composee GroupeLiéDirectement = this.ListGroupes.Find(groupe => groupe.Id == this.forme_active.IdGroupe);
                if (GroupeLiéDirectement != null)
                {   //Recherche de tous les sous groupes liés directement ou indirectement au groupe forme_active.IdGroupe et les affiche dans listBoxGroupesLiés
                    this.chercheSousGroupes(GroupeLiéDirectement);

                    //Selectionne le groupe lié directement
                    listBoxGroupesLiés.SetSelected(listBoxGroupesLiés.Items.IndexOf(GroupeLiéDirectement.Nom), true);
                }



                //if (forme.IdGroupe == -1)//Groupe
                //{
                //    listBoxGroupesLiés.Items.Clear();
                //    listBoxGroupesLiés.Items.Add("Aucun");
                //    listBoxGroupesLiés.SetSelected(listBoxGroupesLiés.Items.IndexOf("Aucun"), true);
                //}
                //else
                //{
                //    listBoxGroupesLiés.Items.Add(this.ListGroupes.Find(item => item.Id == forme.IdGroupe).Nom);
                //    listBoxGroupesLiés.SetSelected(listBoxGroupesLiés.Items.IndexOf(this.ListGroupes.Find(item => item.Id == forme.IdGroupe).Nom), true);
                //}
            }
        }
示例#2
0
        private void chercheSousGroupes(Forme_composee GroupeBase)
        {
            //Les groupes liés directement
            List <Forme_composee> ListeSousGroupes = this.ListGroupes.FindAll(g => g.IdGroupe == GroupeBase.Id);

            foreach (Forme_composee groupe in ListeSousGroupes)
            {
                chercheSousGroupes(groupe);
            }
            listBoxGroupesLiés.Items.Add(GroupeBase.Nom);
        }
示例#3
0
        private void importerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                this.ListFormes.Clear();
                this.ListGroupes.Clear();

                this.clearTouteLappli();

                //PARTIE DONNEES
                //Formes Composees
                if (Fc.find() != null)   //gère cas où la BDD n'est pas disponible
                {
                    this.ListGroupes.AddRange(Fc.find());
                }

                //Formes Simples
                if (Fs1.find() != null)                   //gère cas où la BDD n'est pas disponible
                {
                    this.ListFormes.AddRange(Fs1.find()); //Rectangle
                }
                if (Fs2.find() != null)                   //gère cas où la BDD n'est pas disponible
                {
                    this.ListFormes.AddRange(Fs2.find()); //Segment
                }
                if (Fs3.find() != null)                   //gère cas où la BDD n'est pas disponible
                {
                    this.ListFormes.AddRange(Fs3.find()); //Ellipse
                }
                if (Fs4.find() != null)                   //gère cas où la BDD n'est pas disponible
                {
                    this.ListFormes.AddRange(Fs4.find()); //Triangle
                }
                if (Fs5.find() != null)                   //gère cas où la BDD n'est pas disponible
                {
                    this.ListFormes.AddRange(Fs5.find()); //Polygone
                }
                foreach (Forme_simple f in ListFormes)
                {
                    //si le groupe dont appartient à la fomre existe
                    if (this.ListGroupes.Any(item => item.Id == f.IdGroupe))
                    {
                        //alors on l'ajoute dans ListForme du groupe
                        this.ListGroupes.Find(item => item.Id == f.IdGroupe).Liste_formes.Add(f);
                    }
                }


                //Groupe de Groupe
                foreach (Forme_composee g in ListGroupes)
                {
                    //idGroupe de notre groupe
                    int IDG = g.IdGroupe;

                    //tant qu'un groupe est lié à un autre groupe existant
                    while (this.ListGroupes.Any(item => item.Id == IDG))
                    {
                        Forme_composee supergroupe = this.ListGroupes.Find(item => item.Id == IDG);

                        foreach (Forme_simple f in g.Liste_formes)
                        {//On ajoute toutes les formes non encore existant
                            //si la forme simple n'existe pas dans la liste_formes du super groupe, on l'ajoute
                            if (!supergroupe.Liste_formes.Any(item => item.Id == f.Id))
                            {
                                supergroupe.Liste_formes.Add(f);
                            }
                        }

                        //récupère l'idGroupe pour la prochaine boucle: le groupe père est il lié?
                        IDG = this.ListGroupes.Find(item => item.Id == IDG).IdGroupe;
                    }
                }



                //PARTIE VISUELLE
                majListeSupprGroupes();
                majListeAjoutGroupes();
                refreshPanel();

                this.id = this.ListGroupes.Count + this.ListFormes.Count + 1;
            }
            catch (InvalidOperationException)
            {
                Console.WriteLine("\nPour importer, la connexion doit être ouverte, ce n'est pas le cas.\n");
            }
        }
示例#4
0
        private void majPropriete(Forme_composee forme)
        {//Affiche les propriétes du groupe dans la partie DROITE de l'application
            textBox_nom.Text = "GROUPE " + forme.Nom;

            //labelNomGroupeActif.Text = forme.Nom;
        }
示例#5
0
        static void test()
        {
            DAOFormeSimple Fs1 = new DAORectangle();
            DAOFormeSimple Fs2 = new DAOSegment();
            DAOFormeSimple Fs3 = new DAOEllipse();
            DAOFormeSimple Fs4 = new DAOTriangle();
            DAOFormeSimple Fs5 = new DAOPolygone();

            Fs1.SetSuccessor(Fs2);
            Fs2.SetSuccessor(Fs3);
            Fs3.SetSuccessor(Fs4);
            Fs4.SetSuccessor(Fs5);

            //test ellipse

            string nom_ellipse = "elipse1";

            int couleur_ellipse = 55555;

            Point point1 = new Point(12, 13);
            int longueur_ell = 12;
            int largeur_ell = 10;

            Forme_simple ellipse1 = new Ellipse(0, nom_ellipse, couleur_ellipse, point1, longueur_ell, largeur_ell, -1);

            //test polygone

            string nom_polygone = "polygone1";

            int couleur_polygone = 15464;

            Point point3 = new Point(16, 17);
            Point point4 = new Point(18, 19);
            Point point5 = new Point(20, 21);

            Point []tableau_points = new Point[3]{point3, point4, point5};

            Polygone polygone1 = new Polygone(1, nom_polygone, couleur_polygone, tableau_points, -1);

            //test triangle

            string nom_triangle = "triangle1";

            int couleur_triangle = 15464;

            Point point7 = new Point(16, 17);
            Point point8 = new Point(18, 19);
            Point point9 = new Point(20, 21);

            Point[] tableau_points2 = new Point[3] { point3, point4, point5 };

            Triangle triangle1 = new Triangle(3, nom_triangle, couleur_triangle, tableau_points2, -1);

            //test rectangle

            string nom_rectangle = "rectangle1";

            int couleur_rectangle = 4646;

            Point point6 = new Point(22, 23);
            int longueur_rect = 12;
            int largeur_rect = 10;

            Rectangle rectangle1 = new Rectangle(2, nom_rectangle, couleur_rectangle, point6, longueur_rect, largeur_rect, -1);

            //test segment

            string nom_segment = "segment1";

            int couleur_segment = 4646;

            Point point10 = new Point(22, 23);
            Point point11 = new Point(24, 25);

            Segment segment1 = new Segment(4, nom_segment, couleur_segment, point10, point11, -1);

            //test groupe

            string nom_groupe = "groupe1";

            List<Forme_simple> liste_formes2 = new List<Forme_simple>();

            List<Forme> liste_formes = new List<Forme>();
            liste_formes.Add(ellipse1);
            liste_formes.Add(polygone1);
            liste_formes.Add(rectangle1);
            liste_formes.Add(segment1);
            liste_formes.Add(triangle1);

            Forme_composee groupe1 = new Forme_composee(5, nom_groupe, -1, liste_formes);

            foreach (Forme_simple list1 in liste_formes)
            {
                Fs1.create(list1);
            }

            //foreach(Forme_simple list in liste_formes)
            //{
            //       forme = Fs1.find();
            //       forme.Write();
            //       //liste_formes2.Add(forme);
            //}

            /*foreach (Forme_simple list2 in liste_formes2)
            {
                Console.WriteLine(list2.Id);
            }*/

            Console.ReadLine();
        }
示例#6
0
        private void majPropriete(Forme_composee forme)
        {
            //Affiche les propriétes du groupe dans la partie DROITE de l'application
            textBox_nom.Text = "GROUPE " + forme.Nom;

            //labelNomGroupeActif.Text = forme.Nom;
        }
示例#7
0
 private void chercheSousGroupes(Forme_composee GroupeBase)
 {
     //Les groupes liés directement
     List<Forme_composee> ListeSousGroupes = this.ListGroupes.FindAll(g => g.IdGroupe == GroupeBase.Id);
     foreach (Forme_composee groupe in ListeSousGroupes)
     {
         chercheSousGroupes(groupe);
     }
     listBoxGroupesLiés.Items.Add(GroupeBase.Nom);
 }
示例#8
0
        static void test()
        {
            DAOFormeSimple Fs1 = new DAORectangle();
            DAOFormeSimple Fs2 = new DAOSegment();
            DAOFormeSimple Fs3 = new DAOEllipse();
            DAOFormeSimple Fs4 = new DAOTriangle();
            DAOFormeSimple Fs5 = new DAOPolygone();

            Fs1.SetSuccessor(Fs2);
            Fs2.SetSuccessor(Fs3);
            Fs3.SetSuccessor(Fs4);
            Fs4.SetSuccessor(Fs5);

            //test ellipse

            string nom_ellipse = "elipse1";

            int couleur_ellipse = 55555;

            Point point1       = new Point(12, 13);
            int   longueur_ell = 12;
            int   largeur_ell  = 10;


            Forme_simple ellipse1 = new Ellipse(0, nom_ellipse, couleur_ellipse, point1, longueur_ell, largeur_ell, -1);

            //test polygone

            string nom_polygone = "polygone1";

            int couleur_polygone = 15464;

            Point point3 = new Point(16, 17);
            Point point4 = new Point(18, 19);
            Point point5 = new Point(20, 21);

            Point [] tableau_points = new Point[3] {
                point3, point4, point5
            };

            Polygone polygone1 = new Polygone(1, nom_polygone, couleur_polygone, tableau_points, -1);

            //test triangle

            string nom_triangle = "triangle1";

            int couleur_triangle = 15464;

            Point point7 = new Point(16, 17);
            Point point8 = new Point(18, 19);
            Point point9 = new Point(20, 21);

            Point[] tableau_points2 = new Point[3] {
                point3, point4, point5
            };

            Triangle triangle1 = new Triangle(3, nom_triangle, couleur_triangle, tableau_points2, -1);

            //test rectangle

            string nom_rectangle = "rectangle1";

            int couleur_rectangle = 4646;

            Point point6        = new Point(22, 23);
            int   longueur_rect = 12;
            int   largeur_rect  = 10;

            Rectangle rectangle1 = new Rectangle(2, nom_rectangle, couleur_rectangle, point6, longueur_rect, largeur_rect, -1);

            //test segment

            string nom_segment = "segment1";

            int couleur_segment = 4646;

            Point point10 = new Point(22, 23);
            Point point11 = new Point(24, 25);

            Segment segment1 = new Segment(4, nom_segment, couleur_segment, point10, point11, -1);

            //test groupe

            string nom_groupe = "groupe1";

            List <Forme_simple> liste_formes2 = new List <Forme_simple>();

            List <Forme> liste_formes = new List <Forme>();

            liste_formes.Add(ellipse1);
            liste_formes.Add(polygone1);
            liste_formes.Add(rectangle1);
            liste_formes.Add(segment1);
            liste_formes.Add(triangle1);

            Forme_composee groupe1 = new Forme_composee(5, nom_groupe, -1, liste_formes);


            foreach (Forme_simple list1 in liste_formes)
            {
                Fs1.create(list1);
            }

            //foreach(Forme_simple list in liste_formes)
            //{
            //       forme = Fs1.find();
            //       forme.Write();
            //       //liste_formes2.Add(forme);
            //}

            /*foreach (Forme_simple list2 in liste_formes2)
             * {
             *  Console.WriteLine(list2.Id);
             * }*/

            Console.ReadLine();
        }