private void toolAsociacion_Click(object sender, EventArgs e) { nClase1 = ""; nClase2 = ""; if (Ccoleccion.Count == 0) { MessageBox.Show("No existen clases para asociar"); } else if (Ccoleccion.Count == 1) { MessageBox.Show("Necesita una clase más para crear asociación"); } else { Fasociacion frm = new Fasociacion(this); va = new Validar(); frm.ShowDialog(); Clase5 clase1, clase2; clase1 = va.ExisteClase(Ccoleccion, nClase1); clase2 = va.ExisteClase(Ccoleccion, nClase2); Asociacion5 aux = va.ValidarAsociacion(clase1, clase2); if (aux != null) { Acoleccion.Add(aux); Acoleccion.Add(aux); } else { MessageBox.Show("Ingrese nombres de clases existentes"); } AreaDraw.Invalidate(); } Aselec = null; Cselec = null; clic = false; toolselec = ToolSelec.puntero; toolPuntero.Checked = true; toolAsociacion.Checked = false; toolGeneralizacion.Checked = false; toolInterfaz.Checked = false; toolClase.Checked = false; }
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; }