Created
June 8, 2014 22:51
-
-
Save Fhernd/a88f04305421d1cc6d2d to your computer and use it in GitHub Desktop.
Formulario con la interfaz principal de la aplicación.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ===++=== | |
// | |
// OrtizOL | |
// | |
// ===--=== | |
/*============================================================ | |
// | |
// Clase: Principal.cs | |
// | |
// Propósito: Componener interfaz 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_EleccionesCupi2.Modelo; | |
namespace N1_EleccionesCupi2.GUI | |
{ | |
/// <summary> | |
/// Formulario con la interfaz principal de la aplicación. | |
/// </summary> | |
public partial class Principal : Form | |
{ | |
#region Campos | |
/// <summary> | |
/// Urna sobre la que se hará el proceso de votación. | |
/// </summary> | |
private Urna urna; | |
/// <summary> | |
/// Medio publicitario de la votación. | |
/// </summary> | |
private MedioPublicitario medioPublicitario; | |
#endregion | |
#region Campos (Interfaz) | |
/// <summary> | |
/// Control con la información de los candidatos. | |
/// </summary> | |
private ControlCandidato[] controlCandidatos; | |
/// <summary> | |
/// Control para los métodos de extensión y el reinicio de la campaña. | |
/// </summary> | |
private ControlExtension controlExtension; | |
/// <summary> | |
/// Control con la imagen de la aplicación. | |
/// </summary> | |
private ControlImagen controlImagen; | |
/// <summary> | |
/// Control para la visualización de los datos de la urna. | |
/// </summary> | |
private ControlUrna controlUrna; | |
#endregion | |
#region Propiedades | |
/// <summary> | |
/// Establece y obtiene el medio de publicitario. | |
/// </summary> | |
public MedioPublicitario Medio | |
{ | |
get | |
{ | |
return medioPublicitario; | |
} | |
set | |
{ | |
medioPublicitario = value; | |
} | |
} | |
#endregion | |
#region Constructores | |
/// <summary> | |
/// Crea una instancia del formulario principal. | |
/// </summary> | |
public Principal() | |
{ | |
InitializeComponent(); | |
urna = new Urna(); | |
ConfiguracionComponentes(); | |
Actualizar(); | |
} | |
#endregion | |
#region Métodos | |
/// <summary> | |
/// Actualización la información de los candidatos y de la urna. | |
/// </summary> | |
private void Actualizar() | |
{ | |
controlCandidatos[0].Actualizar(urna.ObtenerCandidato(1)); | |
controlCandidatos[1].Actualizar(urna.ObtenerCandidato(2)); | |
controlCandidatos[2].Actualizar(urna.ObtenerCandidato(3)); | |
controlUrna.Actualizar(urna); | |
} | |
/// <summary> | |
/// Calcula los votos totales hasta el momento. | |
/// </summary> | |
/// <returns></returns> | |
public int CalcularVotosUrna() | |
{ | |
return urna.CalcularTotalVotos(); | |
} | |
/// <summary> | |
/// Configura los componentes integrales de la interfaz. | |
/// </summary> | |
private void ConfiguracionComponentes() | |
{ | |
controlCandidatos = new ControlCandidato[3]; | |
// Agrega tres candidatos a `controlCandidatos`: | |
controlCandidatos[0] = new ControlCandidato(1, this); | |
controlCandidatos[0].Location = new Point(2,119); | |
controlCandidatos[1] = new ControlCandidato(2, this); | |
controlCandidatos[1].Location = new Point(267,119); | |
controlCandidatos[2] = new ControlCandidato(3, this); | |
controlCandidatos[2].Location = new Point(532, 119); | |
// Instancia de `ControlExtension`: | |
controlExtension = new ControlExtension(this); | |
controlExtension.Location = new Point(2, 546); | |
// Instancia de `ControlUrna`: | |
controlUrna = new ControlUrna(); | |
controlUrna.Location = new Point(2, 452); | |
controlImagen = new ControlImagen(); | |
this.Icon = Properties.Resources.elecciones; | |
this.Controls.Add(controlCandidatos[0]); | |
this.Controls.Add(controlCandidatos[1]); | |
this.Controls.Add(controlCandidatos[2]); | |
this.Controls.Add(controlExtension); | |
this.Controls.Add(controlImagen); | |
this.Controls.Add(controlUrna); | |
} | |
/// <summary> | |
/// Ingresa un voto para un determinado candidato. | |
/// </summary> | |
/// <param name="numeroCandidato">ID (1, 2, o 3) del candidato.</param> | |
public void IngresarVotoCandidato(int numeroCandidato) | |
{ | |
DialogoMedioPublicitario dmp = new DialogoMedioPublicitario(this); | |
dmp.ShowDialog(this); | |
if (Medio != 0) | |
{ | |
urna.IngresarVoto(numeroCandidato, Medio); | |
Actualizar(); | |
} | |
} | |
/// <summary> | |
/// Muestra el porcentaje de votos de un determiando candidato. | |
/// </summary> | |
/// <param name="numeroCandidato">ID (1, 2, o 3) del candidato.</param> | |
internal void MostrarPorcentajeVotos(int numeroCandidato) | |
{ | |
MessageBox.Show(this, String.Format("Porcentaje de votos: {0:N2}%",urna.CalcularPorcentajeVotos(numeroCandidato)), String.Format("Candidato {0}", numeroCandidato.ToString()), MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
/// <summary> | |
/// Vacia la urna. | |
/// </summary> | |
internal void VaciarUrna() | |
{ | |
urna.VaciarUrna(); | |
Actualizar(); | |
} | |
#endregion | |
#region Métodos de extensión | |
/// <summary> | |
/// Método de extensión no. 1. | |
/// </summary> | |
public void MetodoExtension1() | |
{ | |
MessageBox.Show(this, urna.MetodoExtension1(), "Método Extensión 1", MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
/// <summary> | |
/// Método de extensión no. 2. | |
/// </summary> | |
public void MetodoExtension2() | |
{ | |
MessageBox.Show(this, urna.MetodoExtension2(), "Método Extensión 2", MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment