Last active
August 29, 2015 14:02
-
-
Save Fhernd/6adc2ce531111dccb945 to your computer and use it in GitHub Desktop.
Formulario 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. | |
// | |
// 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 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment