Advertisement
Fhernd

Principal.cs

Sep 3rd, 2014
1,064
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.44 KB | None | 0 0
  1. // ===++===
  2. //
  3. //    OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: Principal.cs
  9. //
  10. // Propósito: Componener interfaz principal de la aplicación.
  11. //
  12. ============================================================*/
  13. using System;
  14. using System.Collections.Generic;
  15. using System.ComponentModel;
  16. using System.Data;
  17. using System.Drawing;
  18. using System.Linq;
  19. using System.Text;
  20. using System.Threading.Tasks;
  21. using System.Windows.Forms;
  22. using N1_EleccionesCupi2.Modelo;
  23.  
  24. namespace N1_EleccionesCupi2.GUI
  25. {
  26.     /// <summary>
  27.     /// Formulario con la interfaz principal de la aplicación.
  28.     /// </summary>
  29.     public partial class Principal : Form
  30.     {
  31.         #region Campos
  32.         /// <summary>
  33.         /// Urna sobre la que se hará el proceso de votación.
  34.         /// </summary>
  35.         private Urna urna;
  36.         /// <summary>
  37.         /// Medio publicitario de la votación.
  38.         /// </summary>
  39.         private MedioPublicitario medioPublicitario;
  40.         #endregion
  41.         #region Campos (Interfaz)
  42.         /// <summary>
  43.         /// Control con la información de los candidatos.
  44.         /// </summary>
  45.         private ControlCandidato[] controlCandidatos;
  46.         /// <summary>
  47.         /// Control para los métodos de extensión y el reinicio de la campaña.
  48.         /// </summary>
  49.         private ControlExtension controlExtension;
  50.         /// <summary>
  51.         /// Control con la imagen de la aplicación.
  52.         /// </summary>
  53.         private ControlImagen controlImagen;
  54.         /// <summary>
  55.         /// Control para la visualización de los datos de la urna.
  56.         /// </summary>
  57.         private ControlUrna controlUrna;
  58.         #endregion
  59.  
  60.         #region Propiedades
  61.         /// <summary>
  62.         /// Establece y obtiene el medio de publicitario.
  63.         /// </summary>
  64.         public MedioPublicitario Medio
  65.         {
  66.             get
  67.             {
  68.                 return medioPublicitario;
  69.             }
  70.             set
  71.             {
  72.                 medioPublicitario = value;
  73.             }
  74.         }
  75.         #endregion
  76.  
  77.         #region Constructores
  78.         /// <summary>
  79.         /// Crea una instancia del formulario principal.
  80.         /// </summary>
  81.         public Principal()
  82.         {
  83.             InitializeComponent();
  84.             urna = new Urna();
  85.             ConfiguracionComponentes();
  86.             Actualizar();
  87.         }
  88.         #endregion
  89.  
  90.         #region Métodos
  91.         /// <summary>
  92.         /// Actualización la información de los candidatos y de la urna.
  93.         /// </summary>
  94.         private void Actualizar()
  95.         {
  96.             controlCandidatos[0].Actualizar(urna.ObtenerCandidato(1));
  97.             controlCandidatos[1].Actualizar(urna.ObtenerCandidato(2));
  98.             controlCandidatos[2].Actualizar(urna.ObtenerCandidato(3));
  99.             controlUrna.Actualizar(urna);
  100.         }
  101.         /// <summary>
  102.         /// Calcula los votos totales hasta el momento.
  103.         /// </summary>
  104.         /// <returns></returns>
  105.         public int CalcularVotosUrna()
  106.         {
  107.             return urna.CalcularTotalVotos();
  108.         }
  109.         /// <summary>
  110.         /// Configura los componentes integrales de la interfaz.
  111.         /// </summary>
  112.         private void ConfiguracionComponentes()
  113.         {
  114.             controlCandidatos = new ControlCandidato[3];
  115.  
  116.             // Agrega tres candidatos a `controlCandidatos`:
  117.             controlCandidatos[0] = new ControlCandidato(1, this);
  118.             controlCandidatos[0].Location = new Point(2,119);
  119.             controlCandidatos[1] = new ControlCandidato(2, this);
  120.             controlCandidatos[1].Location = new Point(267,119);
  121.             controlCandidatos[2] = new ControlCandidato(3, this);
  122.             controlCandidatos[2].Location = new Point(532, 119);
  123.  
  124.             // Instancia de `ControlExtension`:
  125.             controlExtension = new ControlExtension(this);
  126.             controlExtension.Location = new Point(2, 546);
  127.  
  128.             // Instancia de `ControlUrna`:
  129.             controlUrna = new ControlUrna();
  130.             controlUrna.Location = new Point(2, 452);
  131.  
  132.             controlImagen = new ControlImagen();
  133.  
  134.             this.Icon = Properties.Resources.elecciones;
  135.  
  136.             this.Controls.Add(controlCandidatos[0]);
  137.             this.Controls.Add(controlCandidatos[1]);
  138.             this.Controls.Add(controlCandidatos[2]);
  139.             this.Controls.Add(controlExtension);
  140.             this.Controls.Add(controlImagen);
  141.             this.Controls.Add(controlUrna);
  142.         }
  143.         /// <summary>
  144.         /// Ingresa un voto para un determinado candidato.
  145.         /// </summary>
  146.         /// <param name="numeroCandidato">ID (1, 2, o 3) del candidato.</param>
  147.         public void IngresarVotoCandidato(int numeroCandidato)
  148.         {
  149.             DialogoMedioPublicitario dmp = new DialogoMedioPublicitario(this);
  150.             dmp.ShowDialog(this);
  151.  
  152.             if (Medio != 0)
  153.             {
  154.                 urna.IngresarVoto(numeroCandidato, Medio);
  155.                 Actualizar();
  156.             }
  157.         }
  158.         /// <summary>
  159.         /// Muestra el porcentaje de votos de un determiando candidato.
  160.         /// </summary>
  161.         /// <param name="numeroCandidato">ID (1, 2, o 3) del candidato.</param>
  162.         internal void MostrarPorcentajeVotos(int numeroCandidato)
  163.         {
  164.             MessageBox.Show(this, String.Format("Porcentaje de votos: {0:N2}%",urna.CalcularPorcentajeVotos(numeroCandidato)), String.Format("Candidato {0}", numeroCandidato.ToString()), MessageBoxButtons.OK, MessageBoxIcon.Information);
  165.         }
  166.         /// <summary>
  167.         /// Vacia la urna.
  168.         /// </summary>
  169.         internal void VaciarUrna()
  170.         {
  171.             urna.VaciarUrna();
  172.             Actualizar();
  173.         }
  174.         #endregion
  175.  
  176.         #region Métodos de extensión
  177.         /// <summary>
  178.         /// Método de extensión no. 1.
  179.         /// </summary>
  180.         public void MetodoExtension1()
  181.         {
  182.             MessageBox.Show(this, urna.MetodoExtension1(), "Método Extensión 1", MessageBoxButtons.OK, MessageBoxIcon.Information);
  183.         }
  184.         /// <summary>
  185.         /// Método de extensión no. 2.
  186.         /// </summary>
  187.         public void MetodoExtension2()
  188.         {
  189.             MessageBox.Show(this, urna.MetodoExtension2(), "Método Extensión 2", MessageBoxButtons.OK, MessageBoxIcon.Information);
  190.         }
  191.         #endregion
  192.     }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement