Beispiel #1
0
        public Generalizacion5 ValidarGeneralizacion(Clase5 clase1, Clase5 clase2)
        {
            Generalizacion5 item = null;

            if (clase1 != null && clase2 != null)
            {
                Clase5 aux;
                if (clase1.puntoFinal.X > clase2.puntoFinal.X)
                {
                    aux    = clase1;
                    clase1 = clase2;
                    clase2 = aux;
                }
                Point puntoInicial = new Point(clase1.puntoFinal.X + 150, clase1.puntoFinal.Y);
                Point puntoFinal   = clase2.puntoFinal;
                Point ptMedio      = new Point(puntoInicial.X - (puntoFinal.X - puntoInicial.X), puntoFinal.Y);
                item = new Generalizacion5(puntoInicial, ptMedio, puntoFinal, clase1.nombre, clase2.nombre);
            }
            return(item);
        }
Beispiel #2
0
        private void AreaDraw_MouseUp(object sender, MouseEventArgs e)
        {
            switch (toolselec)
            {
            case ToolSelec.clase:
                #region

                if (objcla.puntoInicial != new Point(0, 0) && objcla.puntoFinal != new Point(0, 0))
                {
                    Fclase frm = new Fclase(this);
                    frm.ShowDialog();
                    if ("".Equals(nombre) || "".Equals(atributos) || "".Equals(metodos) || nombre == null || atributos == null || metodos == null || "Ingrese nombre de la clase".Equals(nombre) || "Ingrese los atributos de la clase".Equals(atributos) || "Ingrese los métodos de la clase".Equals(metodos))
                    {
                        MessageBox.Show("No ingreso algun parametro solicitado. Vuelva a interlo");
                    }
                    else if (va.ValidarNombre(nombre))
                    {
                        DialogResult seguro = MessageBox.Show("Una clase es un concepto por lo tanto no puede ser verbo ni plural, Intenta nuevamente", "HELP", MessageBoxButtons.OK, MessageBoxIcon.Question);
                    }
                    else
                    {
                        Clase5 aux = va.ExisteClase(Ccoleccion, nombre);
                        if (aux == null)
                        {
                            Ccoleccion.Add(new Clase5(rectangulosClase(), new Point(objcla.puntoFinal.X, objcla.puntoFinal.Y + 25), nombre, atributos, metodos));
                            lblNotificacion.Text = "Recuerda que todas las clases deben estar relacionadas";
                        }
                        else
                        {
                            MessageBox.Show("Ya existe clase con el nombre: " + nombre);
                        }
                    }

                    AreaDraw.Invalidate();
                }
                #endregion
                break;

            case ToolSelec.generalizacion:
                #region
                if (objcla.puntoInicial != new Point(0, 0) && objcla.puntoFinal != new Point(0, 0))
                {
                    nClase1 = "";


                    Fgeneralizacion frmg = new Fgeneralizacion(this);
                    frmg.ShowDialog();
                    Clase5 clase1, clase2;


                    MessageBox.Show("Recuerda que la clase hijo herada sus atributos y métodos de la clase padre");
                    clase1 = va.ExisteClase(Ccoleccion, nClase1);
                    if (clase1 != null)
                    {
                        Fclase frm = new Fclase(this);
                        frm.ShowDialog();
                        if ("".Equals(nombre) || "Ingrese nombre de la clase".Equals(nombre) || "Ingrese los atributos de la clase".Equals(atributos) || "Ingrese los métodos de la clase".Equals(metodos))
                        {
                            MessageBox.Show("No ingreso algun parametro solicitado. Vuelva a interlo");
                        }
                        else
                        {
                            String nombreHijo = "" + nombre + ":" + nClase1;
                            metodos   = " " + metodos + " " + clase1.metodos;
                            atributos = " " + atributos + " " + clase1.atributos;
                            Ccoleccion.Add(new Clase5(rectangulosClase(), new Point(objcla.puntoFinal.X, objcla.puntoFinal.Y + 25), nombreHijo, atributos, metodos));
                            clase2 = va.ExisteClase(Ccoleccion, nombreHijo);

                            Generalizacion5 aux  = va.ValidarGeneralizacion(clase1, clase2);
                            Asociacion5     aux1 = va.ValidarAsociacion(clase1, clase2);

                            if (aux != null)
                            {
                                Gcoleccion.Add(aux);
                                Acont.Add(aux1);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("No se encuentra la clase padre");
                    }



                    AreaDraw.Invalidate();
                }
                #endregion
                break;

            case ToolSelec.interfaz:
                #region

                if (objicla.puntoInicial != new Point(0, 0) && objicla.puntoFinal != new Point(0, 0))
                {
                    Fcinterfaz frm = new Fcinterfaz(this);
                    frm.ShowDialog();
                    if ("".Equals(nombre) || "".Equals(metodos) || nombre == null || metodos == null)
                    {
                        MessageBox.Show("No ingreso algun parametro solicitado. Vuelva a interla");
                    }
                    else
                    {
                        nClase1 = "<< " + nombre + " >>";
                        IcColeccion.Add(new ClaseInterface5(rectangulosInterfaz(), new Point(objicla.puntoFinal.X, objicla.puntoFinal.Y + 25), nClase1, metodos));
                        AreaDraw.Invalidate();
                    }
                }
                #endregion
                break;

            case ToolSelec.puntero:
                #region puntero
                if (Cselec != null)
                {
                    String nombre = Cselec.nombre;
                    Ccoleccion.Add(new Clase5(rectangulosClase(), new Point(objcla.puntoFinal.X, objcla.puntoFinal.Y + 25), Cselec.nombre, Cselec.atributos, Cselec.metodos));
                    Ccoleccion.Remove(Cselec);
                    AuxAcoleccion = new List <Asociacion5>();
                    AuxGcoleccion = new List <Generalizacion5>();
                    for (int i = 0; i < Gcoleccion.Count; i++)
                    {
                        if (Gcoleccion[i].nombre.Equals(Cselec.nombre))
                        {
                            nClase1 = Gcoleccion[i].nombre;
                            nClase2 = Gcoleccion[i].nombre2;
                            Clase5          clase1 = va.ExisteClase(Ccoleccion, nClase1);
                            Clase5          clase2 = va.ExisteClase(Ccoleccion, nClase2);
                            Generalizacion5 aux    = va.ValidarGeneralizacion(clase1, clase2);
                            if (aux != null)
                            {
                                AuxGcoleccion.Add(aux);
                            }
                        }
                        else if (Gcoleccion[i].nombre2.Equals(Cselec.nombre))
                        {
                            nClase1 = Gcoleccion[i].nombre;
                            nClase2 = Gcoleccion[i].nombre2;
                            Clase5          clase1 = va.ExisteClase(Ccoleccion, nClase1);
                            Clase5          clase2 = va.ExisteClase(Ccoleccion, nClase2);
                            Generalizacion5 aux    = va.ValidarGeneralizacion(clase1, clase2);
                            if (aux != null)
                            {
                                AuxGcoleccion.Add(aux);
                            }
                        }
                        else
                        {
                            nClase1 = Gcoleccion[i].nombre;
                            nClase2 = Gcoleccion[i].nombre2;
                            Clase5          clase1 = va.ExisteClase(Ccoleccion, nClase1);
                            Clase5          clase2 = va.ExisteClase(Ccoleccion, nClase2);
                            Generalizacion5 aux    = va.ValidarGeneralizacion(clase1, clase2);
                            if (aux != null)
                            {
                                AuxGcoleccion.Add(aux);
                            }
                        }
                    }
                    for (int i = 0; i < Acoleccion.Count; i++)
                    {
                        if (Acoleccion[i].nombre.Equals(Cselec.nombre))
                        {
                            nClase1 = Acoleccion[i].nombre;
                            nClase2 = Acoleccion[i].nombre2;
                            Clase5      clase1 = va.ExisteClase(Ccoleccion, nClase1);
                            Clase5      clase2 = va.ExisteClase(Ccoleccion, nClase2);
                            Asociacion5 aux    = va.ValidarAsociacion(clase1, clase2);
                            if (aux != null)
                            {
                                AuxAcoleccion.Add(aux);
                            }
                        }
                        else if (Acoleccion[i].nombre2.Equals(Cselec.nombre))
                        {
                            nClase1 = Acoleccion[i].nombre;
                            nClase2 = Acoleccion[i].nombre2;
                            Clase5      clase1 = va.ExisteClase(Ccoleccion, nClase1);
                            Clase5      clase2 = va.ExisteClase(Ccoleccion, nClase2);
                            Asociacion5 aux    = va.ValidarAsociacion(clase1, clase2);
                            if (aux != null)
                            {
                                AuxAcoleccion.Add(aux);
                            }
                        }
                        else
                        {
                            nClase1 = Acoleccion[i].nombre;
                            nClase2 = Acoleccion[i].nombre2;
                            Clase5      clase1 = va.ExisteClase(Ccoleccion, nClase1);
                            Clase5      clase2 = va.ExisteClase(Ccoleccion, nClase2);
                            Asociacion5 aux    = va.ValidarAsociacion(clase1, clase2);
                            if (aux != null)
                            {
                                AuxAcoleccion.Add(aux);
                            }
                        }

                        AreaDraw.Invalidate();
                    }
                    Acoleccion.Clear();
                    Gcoleccion.Clear();
                    foreach (Asociacion5 item in AuxAcoleccion)
                    {
                        Acoleccion.Add(item);
                    }
                    foreach (Generalizacion5 item in AuxGcoleccion)
                    {
                        Gcoleccion.Add(item);
                    }
                    AreaDraw.Invalidate();
                }
                if (Icselect != null)
                {
                    String nombre = Icselect.nombre;
                    IcColeccion.Add(new ClaseInterface5(rectangulosInterfaz(), new Point(objicla.puntoFinal.X, objicla.puntoFinal.Y + 25), Icselect.nombre, Icselect.metodos));
                    IcColeccion.Remove(Icselect);
                    AreaDraw.Invalidate();
                }



                break;
                #endregion
            }
            //reestrableciendo valores
            nombre                     = "";
            metodos                    = "";
            atributos                  = "";
            Aselec                     = null;
            Cselec                     = null;
            Icselect                   = null;
            clic                       = false;
            toolselec                  = ToolSelec.puntero;
            toolPuntero.Checked        = true;
            toolAsociacion.Checked     = false;
            toolGeneralizacion.Checked = false;
            toolInterfaz.Checked       = false;
            toolClase.Checked          = false;
        }