// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: Principal.cs
//
// Original en: http://goo.gl/Tnad2Y
//
//
// Propósito: Diseñar la interfaz de usuario principal
// de la aplicación.
//
============================================================*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using N1_Encuesta.Modelo;
namespace N1_Encuesta.GUI
{
public partial class Principal : Form
{
#region Campos
///
/// Encuesta a realizar.
///
private Encuesta encuesta;
#endregion
#region Campos (componentes de interfaz)
///
/// Control de agregación de opiniones.
///
private ControlAgregarOpinion controlAgregarOpinion;
///
/// Control de visualización de resultados.
///
private ControlResultados controlResultados;
///
/// Control con puntos de extensión.
///
private ControlExtension controlExtension;
#endregion
#region Constructores
///
/// Crea el formulario.
///
public Principal()
{
InitializeComponent();
this.Icon = Properties.Resources.encuesta;
ConfiguracionComponentes();
encuesta = new Encuesta();
}
#endregion
#region Métodos
///
/// Configuración para los controles que componen la interfaz.
///
private void ConfiguracionComponentes()
{
controlAgregarOpinion = new ControlAgregarOpinion(this);
controlResultados = new ControlResultados(this);
controlResultados.Location = new Point(0, 145);
controlExtension = new ControlExtension(this);
controlExtension.Location = new Point(0, 278);
this.Controls.Add(controlAgregarOpinion);
this.Controls.Add(controlExtension);
this.Controls.Add(controlResultados);
}
///
/// Actualiza los resultados de la encuesta.
///
public void ActualizarResultados()
{
controlResultados.ActualizarResultados();
}
///
/// Agrega una opinión.
///
/// ID (1, 2, o 3) del rango de edades.
/// Estado civil del(/la) encuestado(a)
///
public void AgregarOpinion(int rango, EstadoCivil estadoCivil, int opinion)
{
encuesta.AgregarOpinion(rango, opinion, estadoCivil);
}
///
/// Calcula el número total de opiniones de los encuestados.
///
/// Total de opiniones.
public int CalcularNumeroTotalOpiniones()
{
return encuesta.NumeroTotalOpiniones;
}
///
/// Calcula el promedio total de opiniones sobre número de encuestados.
///
/// Promedio total.
public double CalcularPromedioTotal()
{
return encuesta.CalcularPromedio();
}
///
/// Calcula promedio parcial para un grupo específico.
///
/// ID (1, 2, ó 3) del rango.
/// Estado civil del encuestado.
/// Promedio parcial.
public double CalcularResultadosParciales(int idRango, EstadoCivil estadoCivil)
{
return encuesta.MostrarResultado(idRango, estadoCivil);
}
#endregion
#region Puntos de Extensión
///
/// Activa el punto de extensión no. 1.
///
public void PuntoExtension1()
{
MessageBox.Show(this, encuesta.Metodo1(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
///
/// Activa el punto de extensión no. 2.
///
public void PuntoExtension2()
{
MessageBox.Show(this, encuesta.Metodo2(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
}
}