/// <summary>Pone la información del grupo en las etiquetas, el valor en los numeric de rubros y llena la lista de nombres</summary> private void personalizarVentana(int idMateria, int idGrupo) { string grupo, materia, numeroAlumnos, escuela; dbConection.getInfo(idMateria, idGrupo, out grupo, out materia, out numeroAlumnos, out escuela); lblGrupo.Text = grupo; lblMateria.Text = materia; lblDatosGrupo.Text = numeroAlumnos + lblDatosGrupo.Text + escuela; this.Text = grupo + " " + materia; decimal tareas, examenes, proyectos; dbConection.getPorcentages(idMateria, out tareas, out examenes, out proyectos); upDnTareas.Value = tareas; upDnExamenes.Value = examenes; upDnProyectos.Value = proyectos; lblTotal.Text = (tareas + examenes + proyectos).ToString(); lblTotal.ForeColor = tareas + examenes + proyectos != 10 ? Color.Red : Color.FromArgb(56, 164, 140); upDnTareas.AccessibleDescription = dbConection.tipoTarea.ToString(); upDnExamenes.AccessibleDescription = dbConection.tipoExam.ToString(); upDnProyectos.AccessibleDescription = dbConection.tipoProy.ToString(); upDnTareas.ValueChanged += rubroUpDn_ValueChanged; upDnExamenes.ValueChanged += rubroUpDn_ValueChanged; upDnProyectos.ValueChanged += rubroUpDn_ValueChanged; PersonalizacionComponentes.llenarPanelAlunos(flPanelAlumnos, alumnos); }
/// <summary> Obtiene de BD todos los alumnos y los muestra en la lista de asistencia </summary> private void cargarAlumnos() { alumnosGrupo = dbConection.alumnosGrupo(idGrupo); if (alumnosGrupo.Count != 0) { lblInfoAlumnos.Dispose(); lblArrowAlumno.Dispose(); PersonalizacionComponentes.llenarPanelAlunos(flPanelAlumnos, alumnosGrupo); System.Collections.IEnumerator labelsAlumnos = flPanelAlumnos.Controls.GetEnumerator(); while (labelsAlumnos.MoveNext()) { string idAlumno = ((Label)labelsAlumnos.Current).Name; MenuItem[] menu = { new MenuItem("Editar", editarAlumno_Click), new MenuItem("Borrar", borrarAlumno_Click) }; menu[0].Name = idAlumno; menu[1].Name = idAlumno; ((Label)labelsAlumnos.Current).ContextMenu = new ContextMenu(menu); } } flPanelAlumnos.MouseWheel += FlPanelAlumnos_MouseWheel; }
public void recibirGrupoNuevo(Grupo newGrupo) { removeLblInfo(); grupos.Add(newGrupo); contenedorGrupos.Controls.Add(PersonalizacionComponentes.hacerConternedorGrupo(newGrupo, color)); color++; }
/// <summary>Usado para recibir toda la información (incluido el id) de la materia nueva que se acaba de registrar</summary> public void recibirMateria(Materia newMateria) { lblArrowMateria.Dispose(); lblInfoMaterias.Dispose(); materias.Add(newMateria); flPanelMaterias.Controls.Add(PersonalizacionComponentes.hacerBotonMateria(newMateria, color)); color++; }
/// <summary>/// Usado para recibir de FormAgregarAlumno la información del alumno agregado</summary> public void recibirAlumno(Alumno nuevo) { lblInfoAlumnos.Dispose(); lblArrowAlumno.Dispose(); //agregar alumno al array alumnosGrupo.Add(nuevo); //hacer el label Label nombre = PersonalizacionComponentes.hacerLabelAlumno(nuevo); //agregar el menú contextual MenuItem[] menu = { new MenuItem("Editar", editarAlumno_Click), new MenuItem("Borrar", borrarAlumno_Click) }; menu[0].Name = nuevo.getId() + ""; menu[1].Name = nuevo.getId() + ""; nombre.ContextMenu = new ContextMenu(menu); flPanelAlumnos.Controls.Add(nombre); //Para evitar que desacomode los días nuevos para este nuevo alumno System.Collections.IEnumerator fechas = flPanelFechas.Controls.GetEnumerator(); List <DiaClase> daysNewAlum = new List <DiaClase>(); while (fechas.MoveNext()) { string[] actualDay = ((tiltLabel)fechas.Current).Text.Split('/'); daysNewAlum.Add(new DiaClase(new DateTime(Convert.ToInt32(actualDay[2]), Convert.ToInt32(actualDay[1]), Convert.ToInt32(actualDay[0])), nuevo.getId())); } //Asistencias //DiaClase[] diasClase = dbConection.getDiasClase(idGrupo); FlowLayoutPanel asistencias = PersonalizacionComponentes.hacerPanelAsistencias(nuevo.getId(), daysNewAlum.ToArray()); asistencias.Name = nuevo.getId().ToString(); //Quitar el label de control si es que está quitarLabelControl(); flPanelAsistencias.Controls.Add(asistencias); Console.WriteLine(flPanelFechas.Controls.Count + " dias "); if (flPanelFechas.Controls.Count <= 10) { agregarLabelControl(); } }
///<sumary> limpia el contenedor y carga todas las materias como botones nuevos </sumary> public void cargarMaterias() { materias = dbConection.materiasAsociadasCon(idGrupo); if (materias.Count != 0) { lblInfoMaterias.Dispose(); lblArrowMateria.Dispose(); color = 0; foreach (Materia materia in materias) { Button boton = PersonalizacionComponentes.hacerBotonMateria(materia, color); flPanelMaterias.Controls.Add(boton); color++; } } }
// ***************************** metodos ******************************************************* ///<sumary> limpia el contenedor y carga todos los grupos como botones nuevos </sumary> public bool cargarBotones() { grupos = dbConection.GruposAsociadosCon(idMaestro); contenedorGrupos.Controls.Clear(); color = 0; Panel contenedor; foreach (Grupo grp in grupos) { contenedor = PersonalizacionComponentes.hacerConternedorGrupo(grp, color); contenedorGrupos.Controls.Add(contenedor); color++; } return(grupos.Count > 0); }
/// <summary> llena la lista de asistencias </summary> private void cargarAsistencias() { DiaClase[] diasClase = dbConection.getDiasClase(idGrupo, mostrandoTodosDias); if (diasClase.Length != 0) { flPanelAsistencias.Controls.Clear(); flPanelFechas.Controls.Clear(); lblArrowDia.Dispose(); foreach (DiaClase diaClase in diasClase) { tiltLabel labelFecha = new tiltLabel(diaClase); MenuItem[] menu = { new MenuItem("Borrar", borrarFecha_Click) }; menu[0].Name = diaClase.dia.ToString("dd'/'MM'/'yy"); labelFecha.ContextMenu = new ContextMenu(menu); flPanelFechas.Controls.Add(labelFecha); } foreach (Alumno alumno in alumnosGrupo) { FlowLayoutPanel asistencias = PersonalizacionComponentes.hacerPanelAsistencias(alumno.getId(), diasClase); asistencias.Name = alumno.getId().ToString(); flPanelAsistencias.Controls.Add(asistencias); } /*Cuando el número de días no es diez no aparece la barra ed scroll horizontal por lo que hay que hacer la validación y * en este caso agregar un label con el tamaño de un scroll y que no desalinea los nombres con los días de asistencia */ if (diasClase.Length <= 10) { agregarLabelControl(); } } //Evento de Scroll con el scroll del mouse flPanelAsistencias.MouseWheel += flPanelAsistencias_MouseScroll; flPanelFechas.MouseWheel += FlPanelFechas_MouseWheel; }
/// <summary> muestra la ventana tareas </summary> private void btnTareas_Click(object sender, EventArgs e) { desactivarPanelActivo((int)Entregas.TAREAS); btnAgregar.Visible = true; panelActivo = Entregas.TAREAS; grpBxModulo.Text = "Tareas"; if (instancesPaneles[(int)Entregas.TAREAS]) { //Si ya se instanció mostrará ese panel de tareas y el de los títulos de las tareas //Las filas representan los títulos de ese panel y siempre van en la fila 1 flPanelEntregas[0, (int)Entregas.TAREAS].Show(); flPanelEntregas[1, (int)Entregas.TAREAS].Show(); } else { instancesPaneles[(int)Entregas.TAREAS] = true; flPanelEntregas[0, (int)Entregas.TAREAS] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelTareas"); flPanelEntregas[1, (int)Entregas.TAREAS] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosTareas"); grpBxModulo.AccessibleDescription = dbConection.tipoTarea.ToString(); //Se creó el panel de tareas y se agrega al contenedor en la columna 1, los títulos en la fila 0 y los entregables en la fila 1 tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.TAREAS], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.TAREAS], 1, 0); flPanelEntregas[0, (int)Entregas.TAREAS].Show(); flPanelEntregas[1, (int)Entregas.TAREAS].Show(); Tarea[] listTareas = dbConection.getTareas(idMateria); foreach (Tarea tarea in listTareas) { tiltLabel nombreTarea = new tiltLabel(tarea.nombre); nombreTarea.Name = tarea.id.ToString(); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = tarea.id.ToString(); nombreTarea.ContextMenu = new ContextMenu(menu); //Se van agregando los títulos de las entregas al contenedor de titulos de tareas flPanelEntregas[1, (int)Entregas.TAREAS].Controls.Add(nombreTarea); } foreach (Alumno alumno in alumnos) { FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelTareas(alumno.getId(), listTareas, idMateria); flPanelEntregas[0, (int)Entregas.TAREAS].Controls.Add(entregas); } if (listTareas.Length <= 10) { agregarLabelControl(); } //ScrollEvents Tareas flPanelEntregas[0, (int)Entregas.TAREAS].Scroll += flPanelTareas_Scroll; flPanelEntregas[0, (int)Entregas.TAREAS].MouseWheel += flPanelTareas_MouseScroll; flPanelEntregas[1, (int)Entregas.TAREAS].MouseWheel += flPanelTareasTitulos_MouseWheel; } }
/// <summary> muestra la ventana tareas </summary> private void btnCalificaciones_Click(object sender, EventArgs e) { if (instancesPaneles[(int)Entregas.CALIFICACIONES]) { grpBxModulo.Text = "Calificaciones"; btnAgregar.Visible = false; desactivarPanelActivo((int)Entregas.CALIFICACIONES); panelActivo = Entregas.CALIFICACIONES; //Si ya se instanció mostrará ese panel de calificaciones y el de los títulos de las calificaciones flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Show(); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Show(); } else { if (MessageBox.Show("Estás a punto de ver las calificaciones calculadas con los siguientes valores en los rubros" + System.Environment.NewLine + "Tareas: " + upDnTareas.Value + System.Environment.NewLine + "Proyectos: " + upDnProyectos.Value + System.Environment.NewLine + "Exámenes: " + upDnExamenes.Value, "Confirmación ver calificaciones", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { //Si es visible pero falso es que ya estaba creado es porque se cambió el valor de algún nuUpRubro if (flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Visible) { //Cuando se actualice uno de los rubros y ya se haya cargado el panel de calificaciones entrerá en esta opción para limpiar el panel y volver a cargarlo flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Controls.Clear(); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Controls.Clear(); tlPanel.Controls.RemoveByKey("flPanelCalificaciones"); tlPanel.Controls.RemoveByKey("flPanelTitulosCalificaciones"); } grpBxModulo.Text = "Calificaciones"; btnAgregar.Visible = false; desactivarPanelActivo((int)Entregas.CALIFICACIONES); panelActivo = Entregas.CALIFICACIONES; instancesPaneles[(int)Entregas.CALIFICACIONES] = true; flPanelEntregas[0, (int)Entregas.CALIFICACIONES] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelCalificaciones"); flPanelEntregas[1, (int)Entregas.CALIFICACIONES] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosCalificaciones"); tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.CALIFICACIONES], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.CALIFICACIONES], 1, 0); flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Show(); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Show(); tiltLabel[] titulos = new tiltLabel[4]; titulos[0] = new tiltLabel("Tareas"); titulos[1] = new tiltLabel("Poyectos"); titulos[2] = new tiltLabel("Exámenes"); titulos[3] = new tiltLabel("Promedio"); titulos[0].Name = "Tareas"; titulos[1].Name = "Proyectos"; titulos[2].Name = "Exámenes"; titulos[3].Name = "Promedio"; titulos[0].Margin = new Padding(0, 0, 50, 0); titulos[1].Margin = new Padding(0, 0, 50, 0); titulos[2].Margin = new Padding(0, 0, 50, 0); titulos[3].Margin = new Padding(0, 0, 50, 0); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Controls.AddRange(titulos); PersonalizacionComponentes.decorarPanelesCalificaciones(alumnos, idMateria, upDnTareas.Value, upDnProyectos.Value, upDnExamenes.Value, ref flPanelEntregas[0, (int)Entregas.CALIFICACIONES], this); agregarLabelControl(); //ScrollEvents Calificaciones flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Scroll += flPanelCalificaciones_Scroll; flPanelEntregas[0, (int)Entregas.CALIFICACIONES].MouseWheel += flPanelCalificaciones_MouseScroll; flPanelEntregas[1, (int)Entregas.CALIFICACIONES].MouseWheel += flPanelCalificacionesTitulos_MouseWheel; } } }
/// <summary> muestra la ventana examenes </summary> private void btnExamenes_Click(object sender, EventArgs e) { desactivarPanelActivo((int)Entregas.EXAMENES); btnAgregar.Visible = true; grpBxModulo.Text = "Exámenes"; panelActivo = Entregas.EXAMENES; if (instancesPaneles[(int)Entregas.EXAMENES]) { //Si ya se instanció mostrará ese panel de tareas y el de los títulos de las tareas flPanelEntregas[0, (int)Entregas.EXAMENES].Show(); flPanelEntregas[1, (int)Entregas.EXAMENES].Show(); } else { //Le dice que ya se instanció para que la siguiente vez que se entre en est opción no cargue todo el panel de nuevo instancesPaneles[(int)Entregas.EXAMENES] = true; flPanelEntregas[0, (int)Entregas.EXAMENES] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelExamenes"); flPanelEntregas[1, (int)Entregas.EXAMENES] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosExamenes"); grpBxModulo.AccessibleDescription = dbConection.tipoExam.ToString(); tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.EXAMENES], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.EXAMENES], 1, 0); flPanelEntregas[0, (int)Entregas.EXAMENES].Show(); flPanelEntregas[1, (int)Entregas.EXAMENES].Show(); Examen[] listExamenes = dbConection.getExamenes(idMateria); foreach (Examen exam in listExamenes) { tiltLabel nombreEntrega = new tiltLabel(exam.nombre); nombreEntrega.Name = exam.id.ToString(); //Sólo aquí cuando se van a mostrar NumericUpDown tenemos que dejar más espacio entre uno y otro porque sino se ve todo amontonado nombreEntrega.Margin = new Padding(0, 0, 50, 0); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = exam.id.ToString(); nombreEntrega.ContextMenu = new ContextMenu(menu); flPanelEntregas[1, (int)Entregas.EXAMENES].Controls.Add(nombreEntrega); } foreach (Alumno alumno in alumnos) { FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelExamenes(alumno.getId(), listExamenes); entregas.Margin = new Padding(0, 0, 0, 0); flPanelEntregas[0, (int)Entregas.EXAMENES].Controls.Add(entregas); } if (listExamenes.Length <= 5) { agregarLabelControl(); } //ScrollEvents Exámenes flPanelEntregas[0, (int)Entregas.EXAMENES].Scroll += flPanelExamenes_Scroll; flPanelEntregas[0, (int)Entregas.EXAMENES].MouseWheel += flPanelExamenes_MouseScroll; flPanelEntregas[1, (int)Entregas.EXAMENES].MouseWheel += flPanelExamenesTitulos_MouseWheel; } }
/// <summary> muestra la ventana proyectos </summary> private void btnProyectos_Click(object sender, EventArgs e) { desactivarPanelActivo((int)Entregas.PROYECTOS); panelActivo = Entregas.PROYECTOS; grpBxModulo.Text = "Proyectos"; btnAgregar.Visible = true; if (instancesPaneles[(int)Entregas.PROYECTOS]) { flPanelEntregas[0, (int)Entregas.PROYECTOS].Show(); flPanelEntregas[1, (int)Entregas.PROYECTOS].Show(); } else { instancesPaneles[(int)Entregas.PROYECTOS] = true; flPanelEntregas[0, (int)Entregas.PROYECTOS] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelProyectos"); flPanelEntregas[1, (int)Entregas.PROYECTOS] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosProyectos"); grpBxModulo.AccessibleDescription = dbConection.tipoProy.ToString(); tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.PROYECTOS], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.PROYECTOS], 1, 0); flPanelEntregas[0, (int)Entregas.PROYECTOS].Show(); flPanelEntregas[1, (int)Entregas.PROYECTOS].Show(); Proyecto[] listProyectos = dbConection.getProyectos(idMateria); foreach (Proyecto proyecto in listProyectos) { tiltLabel nombreEntrega = new tiltLabel(proyecto.nombre); nombreEntrega.Name = proyecto.id.ToString(); //Sólo aquí cuando se van a mostrar NumericUpDown tenemos que dejar más espacio entre uno y otro porque sino se ve todo amontonado nombreEntrega.Margin = new Padding(0, 0, 50, 0); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = proyecto.id.ToString(); nombreEntrega.ContextMenu = new ContextMenu(menu); flPanelEntregas[1, (int)Entregas.PROYECTOS].Controls.Add(nombreEntrega); } foreach (Alumno alumno in alumnos) { FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelProyectos(alumno.getId(), listProyectos); entregas.Margin = new Padding(0, 0, 0, 0); flPanelEntregas[0, (int)Entregas.PROYECTOS].Controls.Add(entregas); } if (listProyectos.Length <= 5) { agregarLabelControl(); } //ScrollEvents Proyectos flPanelEntregas[0, (int)Entregas.PROYECTOS].Scroll += flPanelProyectos_Scroll; flPanelEntregas[0, (int)Entregas.PROYECTOS].MouseWheel += flPanelProyectos_MouseScroll; flPanelEntregas[1, (int)Entregas.PROYECTOS].MouseWheel += flPanelProyectosTitulos_MouseWheel; } }