Esempio n. 1
0
        public void pintarBloques()
        {
            //limpiar la lista de columnas y las columnas que contiene el bloque para evitar repetidos
            listaColumnas.Clear();
            contenedor.Controls.Clear();

            //se rellena la lista de columnas desde base de datos para posteriormente recorrerla
            listaColumnas = BDColumnas.buscarColumnas(bloque_id.Text);

            if (listaColumnas != null)
            {
                foreach (ClaseColumna ocolumna in listaColumnas)
                {
                    //se crea la columna, aparte de funciones necesarias para el correcto funcionamiento
                    Panel panel1 = new Panel();

                    //Propiedades que tendra la columna al ser creada
                    panel1.BorderStyle = BorderStyle.FixedSingle;
                    panel1.Name        = "columna" + contador;
                    panel1.Size        = new Size(ocolumna.ancho, ocolumna.alto);

                    if (ocolumna.ancho + ocolumna.espacio_izquierda > 1260)
                    {
                        int espacioNuevo = 1260 - ocolumna.ancho;
                        panel1.Left = espacioNuevo;
                        BDColumnas.actualizarPosicion(espacioNuevo, ocolumna.espacio_arriba, ocolumna.titulo);
                    }
                    else
                    {
                        panel1.Left = ocolumna.espacio_izquierda;
                    }

                    panel1.Top         = ocolumna.espacio_arriba;
                    panel1.MaximumSize = new Size(1260, 570);
                    panel1.MinimumSize = new Size(200, 100);
                    panel1.BackColor   = Color.Transparent;

                    //caja de texto donde se guarda el nombre de la columna
                    Label nombre = new Label();
                    nombre.Text     = ocolumna.titulo;
                    nombre.AutoSize = true;
                    nombre.Font     = new Font("Arial", 22, FontStyle.Bold);
                    nombre.Location = new Point(30, 30);
                    nombre.Visible  = false;

                    panel1.Controls.Add(nombre);

                    this.Controls.Add(panel1);

                    contenedor.Controls.Add(panel1);

                    contador++;

                    //rellena la lista de elementos desde base de datos para posteriormente recorrela
                    Columna.listaElementos = BDElementos.buscarElementos(ocolumna.id.ToString());
                    if (Columna.listaElementos != null)
                    {
                        foreach (ClaseElemento oelemento in Columna.listaElementos)
                        {
                            string tipo = oelemento.tipo;

                            switch (tipo)
                            {
                            case "img":

                                PictureBox imagen = new PictureBox();
                                imagen.Image = Image.FromFile(@"..\..\ImagenesBD\\" + oelemento.contenido);

                                Bitmap img = new Bitmap(Image.FromFile(@"..\..\ImagenesBD\\" + oelemento.contenido));

                                var imageHeight = img.Height;
                                var imageWidth  = img.Width;

                                //propiedades de la imagen
                                imagen.Top      = oelemento.espacio_arriba;
                                imagen.Left     = oelemento.espacio_izquierda;
                                imagen.Name     = oelemento.id.ToString();
                                imagen.Size     = new Size(imageWidth, imageHeight);
                                imagen.SizeMode = PictureBoxSizeMode.StretchImage;
                                imagen.Width    = oelemento.ancho;
                                imagen.Height   = oelemento.alto;
                                imagen.Enabled  = false;

                                panel1.Controls.Add(imagen);
                                break;

                            case "video":
                                PictureBox video = new PictureBox();
                                video.Image = Image.FromFile(@"..\..\Imagenes\play.png");

                                //propiedades del video
                                video.Top         = oelemento.espacio_arriba;
                                video.Left        = oelemento.espacio_izquierda;
                                video.Name        = oelemento.id.ToString();
                                video.BorderStyle = BorderStyle.FixedSingle;
                                video.SizeMode    = PictureBoxSizeMode.CenterImage;
                                video.Width       = oelemento.ancho;
                                video.Height      = oelemento.alto;
                                video.Enabled     = false;

                                panel1.Controls.Add(video);
                                break;

                            case "p":
                                Label parrafo = new Label();
                                parrafo.Text = oelemento.contenido;

                                //propiedades del parrafo
                                parrafo.Top     = oelemento.espacio_arriba;
                                parrafo.Left    = oelemento.espacio_izquierda;
                                parrafo.Name    = oelemento.id.ToString();
                                parrafo.Font    = new Font("Arial", 9);
                                parrafo.Width   = oelemento.ancho;
                                parrafo.Height  = oelemento.alto;
                                parrafo.Enabled = false;

                                panel1.Controls.Add(parrafo);
                                break;

                            case "title":
                                Label titulo = new Label();
                                titulo.Text = oelemento.contenido;

                                //propiedades del titulo
                                titulo.Top     = oelemento.espacio_arriba;
                                titulo.Left    = oelemento.espacio_izquierda;
                                titulo.Name    = oelemento.id.ToString();
                                titulo.Font    = new Font("Arial", 16);
                                titulo.Width   = oelemento.ancho;
                                titulo.Height  = oelemento.alto;
                                titulo.Enabled = false;

                                panel1.Controls.Add(titulo);
                                break;
                            }
                        }
                        Columna.listaElementos.Clear();
                    }
                    else
                    {
                        Columna.listaElementos = new ArrayList();
                    }
                    panel1.MinimumSize = new Size(200, panel1.Height);
                    panel1.BringToFront();

                    //añade un evento cuando se hace click sobre una columna
                    panel1.DoubleClick += delegate(object send, EventArgs ea) { Controlador.mostrarColumna(send, ea, ocolumna.titulo, panel1.Width, panel1.Height); Hide(); };
                    panel1.MouseEnter  += delegate(object send, EventArgs ea) { panel1.Cursor = Cursors.SizeAll; };
                    panel1.MouseLeave  += delegate(object send, EventArgs ea) { panel1.Cursor = Cursors.Default; };
                    controlMovible(panel1);
                }
                listaColumnas.Clear();
            }
            else
            {
                listaColumnas = new ArrayList();
            }
        }