Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: Principal.
- //
- // Original en: http://goo.gl/rjMjUp
- //
- // Propósito: Formulario 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 Alcancia.Modelo;
- namespace Alcancia.GUI
- {
- /// <summary>
- /// Formulario principal de la apolicación.
- /// </summary>
- public partial class Principal : Form
- {
- #region Campos (instancia)
- /// <summary>
- /// Representacion de la alcancía.
- /// </summary>
- private Alcancia.Modelo.Alcancia alcancia;
- #endregion
- #region Campos (componentes de interfaz gráfica)
- /// <summary>
- /// Control con las monedas.
- /// </summary>
- private ControlMonedas controlMonedas;
- /// <summary>
- /// Control para dibujar la alcancía.
- /// </summary>
- private ControlAlcancia controlAlcancia;
- /// <summary>
- /// Control para los botones de acciones sobre la alcancía.
- /// </summary>
- private ControlBotones controlBotones;
- #endregion
- #region Constructores
- /// <summary>
- /// Crea una instancia del formulario principal.
- /// </summary>
- public Principal()
- {
- InitializeComponent();
- ConfiguracionComponentes();
- alcancia = new Modelo.Alcancia();
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Agrega una nueva moneda a la alcancía.
- /// </summary>
- /// <param name="denominacion">Denominación (20, 50, 100, 200, 500) de la moneda.</param>
- public void AgregarMoneda(Moneda denominacion)
- {
- if (!alcancia.EstadoAlcancia)
- {
- alcancia.AgregarMoneda(denominacion);
- controlMonedas.CambiarCantidad(denominacion, alcancia.ContarMonedas(denominacion));
- controlAlcancia.CambiarMensaje(String.Format("Se agregaron {0} pesos a la alcancía.\nEn la alcancía hay {1} pesos",
- ((int)denominacion).ToString(), alcancia.CalcularTotalDinero().ToString("C")));
- }
- else
- {
- MessageBox.Show(this, "No se puede agregar monedas a una alcancía rota.", "Alcancía Rota", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- }
- /// <summary>
- /// Crea la configuración para los controles integrales de la interfaz.
- /// </summary>
- private void ConfiguracionComponentes()
- {
- this.Icon = Properties.Resources.alcancia_icono;
- controlMonedas = new ControlMonedas(this);
- controlAlcancia = new ControlAlcancia();
- controlAlcancia.Location = new Point(0, 105);
- controlBotones = new ControlBotones(this);
- controlBotones.Location = new Point(401, 146);
- this.Controls.Add(controlBotones);
- this.Controls.Add(controlMonedas);
- this.Controls.Add(controlAlcancia);
- }
- /// <summary>
- /// Crea una nueva alcancía.
- /// </summary>
- public void CrearAlcancia()
- {
- controlAlcancia.CambiarEstadoAlcancia(false, alcancia.CalcularTotalDinero());
- controlAlcancia.CambiarMensaje("Alcancía Vacía");
- alcancia = new Modelo.Alcancia();
- controlMonedas.CambiarCantidad(0);
- }
- /// <summary>
- /// Rompe la alcancía.
- /// </summary>
- public void RomperAlcancia()
- {
- alcancia.RomperAlcancia();
- String mensaje = String.Format("La alcancía tenía {0} moneda{1} de 20, {2} moneda{3} de 50, {4} moneda{5} de 100, {6} moneda{7} de 200, y {8} moneda{9} de 500.",
- alcancia.ContarMonedas(Moneda.Veinte), (alcancia.ContarMonedas(Moneda.Veinte) == 1 ? String.Empty : "s"),
- alcancia.ContarMonedas(Moneda.Cincuenta), (alcancia.ContarMonedas(Moneda.Cincuenta) == 1 ? String.Empty : "s"),
- alcancia.ContarMonedas(Moneda.Cien), (alcancia.ContarMonedas(Moneda.Cien) == 1 ? String.Empty : "s"),
- alcancia.ContarMonedas(Moneda.Doscientos), (alcancia.ContarMonedas(Moneda.Doscientos) == 1 ? String.Empty : "s"),
- alcancia.ContarMonedas(Moneda.Quinientos), (alcancia.ContarMonedas(Moneda.Quinientos) == 1 ? String.Empty : "s"));
- controlAlcancia.CambiarMensaje(mensaje);
- controlAlcancia.CambiarEstadoAlcancia(true, alcancia.CalcularTotalDinero());
- }
- #endregion
- #region Métodos de extensión
- /// <summary>
- /// Método de extensión no. 1.
- /// </summary>
- public void MetodoExtension1()
- {
- MessageBox.Show(this, alcancia.MetodoExtension1(), "Método de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- /// <summary>
- /// Método de extensión no. 2.
- /// </summary>
- public void MetodoExtension2()
- {
- MessageBox.Show(this, alcancia.MetodoExtension2(), "Método de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement