Advertisement
Fhernd

ControlJuegos.cs

Jul 16th, 2014
1,451
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.41 KB | None | 0 0
  1. // ===++===
  2. //
  3. //  OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: ControlJuegos.cs
  9. //
  10. //  Original en: http://goo.gl/ba8gJ0
  11. //
  12. // Propósito: Panel de visualización de los juegos que
  13. // se venden en la empresa.
  14. //
  15. ============================================================*/
  16.  
  17. using System;
  18. using System.Collections;
  19. using System.ComponentModel;
  20. using System.Drawing;
  21. using System.Windows.Forms;
  22. using JuegosCelulares.Modelo;
  23.  
  24. namespace JuegosCelulares.GUI
  25. {
  26.     /// <summary>
  27.     /// Control para los controles de compra y venta de juegos.
  28.     /// </summary>
  29.     public partial class ControlJuegos : UserControl
  30.     {
  31.         #region Campos (componentes)
  32.         /// <summary>
  33.         /// Representa el formulario padre de este control.
  34.         /// </summary>
  35.         private Principal ventanaPrincipal;
  36.         #endregion
  37.  
  38.         #region Campos
  39.         /// <summary>
  40.         /// Valor centinela para determinar cuando disparar el
  41.         /// evento de modificación de índice del control ComboBox.
  42.         /// </summary>
  43.         private bool cbxInicializado;
  44.         /// <summary>
  45.         /// Cantidad del juego a comprar/vender.
  46.         /// </summary>
  47.         private int cantidad;
  48.         #endregion
  49.  
  50.         #region Propiedades
  51.         /// <summary>
  52.         /// Obtiene y modifica la cantidad del juego a comprar o vender.
  53.         /// </summary>
  54.         public int Cantidad
  55.         {
  56.             get
  57.             {
  58.                 return cantidad;
  59.             }
  60.             set
  61.             {
  62.                 cantidad = value;
  63.             }
  64.         }
  65.         #endregion
  66.  
  67.         #region Constructores
  68.         /// <summary>
  69.         /// Crea un nuevo control para la visualizaicón de la información
  70.         /// de los juegos.
  71.         /// </summary>
  72.         /// <param name="principal">Formulario padre.</param>
  73.         /// <param name="nombresJuegos">Nombres de los juegos.</param>
  74.         public ControlJuegos(Principal principal, ArrayList nombresJuegos)
  75.         {
  76.             InitializeComponent();
  77.  
  78.             ventanaPrincipal = principal;
  79.             cantidad = 0;
  80.  
  81.             foreach (string nombreJuego in nombresJuegos)
  82.             {
  83.                 cbxJuegos.Items.Add(nombreJuego);
  84.             }
  85.  
  86.             cbxInicializado = true;
  87.             cbxJuegos.SelectedIndex = 0;
  88.         }
  89.         #endregion
  90.        
  91.         #region Métodos
  92.         /// <summary>
  93.         /// Actualiza la información del juego.
  94.         /// </summary>
  95.         /// <param name="juego">Contendedor de la información del juego.</param>
  96.         public void CambiarJuego(Juego juego)
  97.         {
  98.             if (juego != null)
  99.             {
  100.                 if (juego.Nombre.Equals("Car Racer 2"))
  101.                 {
  102.                     pbxImagen.Image = Properties.Resources.CarRacer2;
  103.                 }
  104.                 else if (juego.Nombre.Equals("Air Attack"))
  105.                 {
  106.                     pbxImagen.Image = Properties.Resources.AirAttack;
  107.                 }
  108.                 else if (juego.Nombre.Equals("Mini Golf 2"))
  109.                 {
  110.                     pbxImagen.Image = Properties.Resources.MiniGolf2;
  111.                 }
  112.                 else if (juego.Nombre.Equals("Aztec Warrior"))
  113.                 {
  114.                     pbxImagen.Image = Properties.Resources.AztecWarrior;
  115.                 }
  116.  
  117.                 txtNombre.Text = juego.Nombre;
  118.                 txtCategoria.Text = juego.Categoria.ToString();
  119.                 txtTamagnioKb.Text = juego.TamanioKB.ToString();
  120.                 txtPrecio.Text = juego.Precio.ToString("C");
  121.                 txtDisponibles.Text = juego.CantidadActual.ToString("##.#");
  122.                 btnVender.Enabled = true;
  123.             }
  124.             else
  125.             {
  126.                 Image imagenPrevia = null;
  127.                 txtNombre.Text = (string)cbxJuegos.SelectedItem;
  128.  
  129.                 if (txtNombre.Text.Equals("Car Racer 2"))
  130.                 {
  131.                     imagenPrevia = Properties.Resources.CarRacer2;
  132.                 }
  133.                 else if (txtNombre.Text.Equals("Air Attack"))
  134.                 {
  135.                     imagenPrevia = Properties.Resources.AirAttack;
  136.                 }
  137.                 else if (txtNombre.Text.Equals("Mini Golf 2"))
  138.                 {
  139.                     imagenPrevia = Properties.Resources.MiniGolf2;
  140.                 }
  141.                 else if (txtNombre.Text.Equals("Aztec Warrior"))
  142.                 {
  143.                     imagenPrevia = Properties.Resources.AztecWarrior;
  144.                 }
  145.  
  146.                 pbxImagen.Image = ConvertirImagenAEscalaDeGrisis(imagenPrevia);
  147.  
  148.                 txtCategoria.Text = "No Disponible";
  149.                 txtTamagnioKb.Text = "No Disponible";
  150.                 txtPrecio.Text = "No Disponible";
  151.                 txtDisponibles.Text = "No Disponible";
  152.                 btnVender.Enabled = false;
  153.             }
  154.         }
  155.         /// <summary>
  156.         /// Aplica el efecto de escala de grises a una imagen del juego.
  157.         /// </summary>
  158.         /// <param name="imagenFuente">Imagen a aplicar el efecto de escala de grises.</param>
  159.         /// <returns>Imagen en escala de grises.</returns>
  160.         private Bitmap ConvertirImagenAEscalaDeGrisis(Image imagenFuente)
  161.         {
  162.             Bitmap imagenNueva = new Bitmap(imagenFuente);
  163.             int gris;
  164.  
  165.             for (int x = 0; x < imagenNueva.Width; ++x )
  166.             {
  167.                 for (int y = 0; y < imagenNueva.Height; ++y)
  168.                 {
  169.                     gris = (Convert.ToInt32(imagenNueva.GetPixel(x, y).R) + imagenNueva.GetPixel(x, y).G + imagenNueva.GetPixel(x, y).B) / 3;
  170.                     imagenNueva.SetPixel(x, y, Color.FromArgb(gris, gris, gris));
  171.                 }
  172.             }
  173.  
  174.             return imagenNueva;
  175.         }
  176.         #endregion
  177.  
  178.         #region Eventos
  179.         /// <summary>
  180.         /// Actualiza la información de los controles de acuerdo al
  181.         /// juego seleccionado de la lista.
  182.         /// </summary>
  183.         /// <param name="sender">Generador del evento.</param>
  184.         /// <param name="e">Argumentos del evento.</param>
  185.         private void cbxJuegos_SelectedIndexChanged(object sender, EventArgs e)
  186.         {
  187.             if (!cbxInicializado)
  188.             {
  189.                 switch (cbxJuegos.SelectedIndex)
  190.                 {
  191.                     case 0:
  192.                         pbxImagen.Image = Properties.Resources.CarRacer2;
  193.                         break;
  194.                     case 1:
  195.                         pbxImagen.Image = Properties.Resources.AirAttack;
  196.                         break;
  197.                     case 2:
  198.                         pbxImagen.Image = Properties.Resources.MiniGolf2;
  199.                         break;
  200.                     case 3:
  201.                         pbxImagen.Image = Properties.Resources.AztecWarrior;
  202.                         break;
  203.                 }
  204.  
  205.                 string nombreJuego = (string)cbxJuegos.SelectedItem;
  206.  
  207.                 ventanaPrincipal.CambiarJuegoSeleccionado(nombreJuego);
  208.             }
  209.             else
  210.             {
  211.                 cbxInicializado = false;
  212.             }
  213.         }
  214.         /// <summary>
  215.         /// Activa la operación de compra.
  216.         /// </summary>
  217.         /// <param name="sender">Generador del evento.</param>
  218.         /// <param name="e">Argumentos del evento.</param>
  219.         private void btnComprar_Click(object sender, EventArgs e)
  220.         {
  221.             DialogoCompra dc = new DialogoCompra(this);
  222.  
  223.             if (dc.ShowDialog(this) == DialogResult.OK)
  224.             {
  225.                 ventanaPrincipal.ComprarJuego(txtNombre.Text, cantidad);
  226.             }
  227.         }
  228.         /// <summary>
  229.         /// Activa la operación de venta.
  230.         /// </summary>
  231.         /// <param name="sender">Generador del evento.</param>
  232.         /// <param name="e">Argumentos del evento.</param>
  233.         private void btnVender_Click(object sender, EventArgs e)
  234.         {
  235.             DialogoVenta dv = new DialogoVenta(this);
  236.            
  237.             if (dv.ShowDialog(this) == DialogResult.OK)
  238.             {
  239.                 if (!ventanaPrincipal.VenderJuego(txtNombre.Text, cantidad))
  240.                 {
  241.                     MessageBox.Show(this, "No se cuenta con inventario para este producto.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  242.                 }
  243.             }
  244.         }
  245.         #endregion
  246.     }
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement