Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // 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
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement