Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: ControlJuegos.cs
- //
- // Original en: http://goo.gl/ba8gJ0
- //
- // Propósito: Panel de visualización de los juegos que
- // se venden en la empresa.
- //
- ============================================================*/
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Drawing;
- using System.Windows.Forms;
- using JuegosCelulares.Modelo;
- namespace JuegosCelulares.GUI
- {
- /// <summary>
- /// Control para los controles de compra y venta de juegos.
- /// </summary>
- public partial class ControlJuegos : UserControl
- {
- #region Campos (componentes)
- /// <summary>
- /// Representa el formulario padre de este control.
- /// </summary>
- private Principal ventanaPrincipal;
- #endregion
- #region Campos
- /// <summary>
- /// Valor centinela para determinar cuando disparar el
- /// evento de modificación de índice del control ComboBox.
- /// </summary>
- private bool cbxInicializado;
- /// <summary>
- /// Cantidad del juego a comprar/vender.
- /// </summary>
- private int cantidad;
- #endregion
- #region Propiedades
- /// <summary>
- /// Obtiene y modifica la cantidad del juego a comprar o vender.
- /// </summary>
- public int Cantidad
- {
- get
- {
- return cantidad;
- }
- set
- {
- cantidad = value;
- }
- }
- #endregion
- #region Constructores
- /// <summary>
- /// Crea un nuevo control para la visualizaicón de la información
- /// de los juegos.
- /// </summary>
- /// <param name="principal">Formulario padre.</param>
- /// <param name="nombresJuegos">Nombres de los juegos.</param>
- public ControlJuegos(Principal principal, ArrayList nombresJuegos)
- {
- InitializeComponent();
- ventanaPrincipal = principal;
- cantidad = 0;
- foreach (string nombreJuego in nombresJuegos)
- {
- cbxJuegos.Items.Add(nombreJuego);
- }
- cbxInicializado = true;
- cbxJuegos.SelectedIndex = 0;
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Actualiza la información del juego.
- /// </summary>
- /// <param name="juego">Contendedor de la información del juego.</param>
- public void CambiarJuego(Juego juego)
- {
- if (juego != null)
- {
- if (juego.Nombre.Equals("Car Racer 2"))
- {
- pbxImagen.Image = Properties.Resources.CarRacer2;
- }
- else if (juego.Nombre.Equals("Air Attack"))
- {
- pbxImagen.Image = Properties.Resources.AirAttack;
- }
- else if (juego.Nombre.Equals("Mini Golf 2"))
- {
- pbxImagen.Image = Properties.Resources.MiniGolf2;
- }
- else if (juego.Nombre.Equals("Aztec Warrior"))
- {
- pbxImagen.Image = Properties.Resources.AztecWarrior;
- }
- txtNombre.Text = juego.Nombre;
- txtCategoria.Text = juego.Categoria.ToString();
- txtTamagnioKb.Text = juego.TamanioKB.ToString();
- txtPrecio.Text = juego.Precio.ToString("C");
- txtDisponibles.Text = juego.CantidadActual.ToString("##.#");
- btnVender.Enabled = true;
- }
- else
- {
- Image imagenPrevia = null;
- txtNombre.Text = (string)cbxJuegos.SelectedItem;
- if (txtNombre.Text.Equals("Car Racer 2"))
- {
- imagenPrevia = Properties.Resources.CarRacer2;
- }
- else if (txtNombre.Text.Equals("Air Attack"))
- {
- imagenPrevia = Properties.Resources.AirAttack;
- }
- else if (txtNombre.Text.Equals("Mini Golf 2"))
- {
- imagenPrevia = Properties.Resources.MiniGolf2;
- }
- else if (txtNombre.Text.Equals("Aztec Warrior"))
- {
- imagenPrevia = Properties.Resources.AztecWarrior;
- }
- pbxImagen.Image = ConvertirImagenAEscalaDeGrisis(imagenPrevia);
- txtCategoria.Text = "No Disponible";
- txtTamagnioKb.Text = "No Disponible";
- txtPrecio.Text = "No Disponible";
- txtDisponibles.Text = "No Disponible";
- btnVender.Enabled = false;
- }
- }
- /// <summary>
- /// Aplica el efecto de escala de grises a una imagen del juego.
- /// </summary>
- /// <param name="imagenFuente">Imagen a aplicar el efecto de escala de grises.</param>
- /// <returns>Imagen en escala de grises.</returns>
- private Bitmap ConvertirImagenAEscalaDeGrisis(Image imagenFuente)
- {
- Bitmap imagenNueva = new Bitmap(imagenFuente);
- int gris;
- for (int x = 0; x < imagenNueva.Width; ++x )
- {
- for (int y = 0; y < imagenNueva.Height; ++y)
- {
- gris = (Convert.ToInt32(imagenNueva.GetPixel(x, y).R) + imagenNueva.GetPixel(x, y).G + imagenNueva.GetPixel(x, y).B) / 3;
- imagenNueva.SetPixel(x, y, Color.FromArgb(gris, gris, gris));
- }
- }
- return imagenNueva;
- }
- #endregion
- #region Eventos
- /// <summary>
- /// Actualiza la información de los controles de acuerdo al
- /// juego seleccionado de la lista.
- /// </summary>
- /// <param name="sender">Generador del evento.</param>
- /// <param name="e">Argumentos del evento.</param>
- private void cbxJuegos_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (!cbxInicializado)
- {
- switch (cbxJuegos.SelectedIndex)
- {
- case 0:
- pbxImagen.Image = Properties.Resources.CarRacer2;
- break;
- case 1:
- pbxImagen.Image = Properties.Resources.AirAttack;
- break;
- case 2:
- pbxImagen.Image = Properties.Resources.MiniGolf2;
- break;
- case 3:
- pbxImagen.Image = Properties.Resources.AztecWarrior;
- break;
- }
- string nombreJuego = (string)cbxJuegos.SelectedItem;
- ventanaPrincipal.CambiarJuegoSeleccionado(nombreJuego);
- }
- else
- {
- cbxInicializado = false;
- }
- }
- /// <summary>
- /// Activa la operación de compra.
- /// </summary>
- /// <param name="sender">Generador del evento.</param>
- /// <param name="e">Argumentos del evento.</param>
- private void btnComprar_Click(object sender, EventArgs e)
- {
- DialogoCompra dc = new DialogoCompra(this);
- if (dc.ShowDialog(this) == DialogResult.OK)
- {
- ventanaPrincipal.ComprarJuego(txtNombre.Text, cantidad);
- }
- }
- /// <summary>
- /// Activa la operación de venta.
- /// </summary>
- /// <param name="sender">Generador del evento.</param>
- /// <param name="e">Argumentos del evento.</param>
- private void btnVender_Click(object sender, EventArgs e)
- {
- DialogoVenta dv = new DialogoVenta(this);
- if (dv.ShowDialog(this) == DialogResult.OK)
- {
- if (!ventanaPrincipal.VenderJuego(txtNombre.Text, cantidad))
- {
- MessageBox.Show(this, "No se cuenta con inventario para este producto.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- }
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement