Cafeína Libre

Cafeína Libre

Libre y Recafeinado XD

¡Sigue los granos! Cafeína Libre
  • Inicio
  • Sobre

[ExtJS 4] El Viewport y el Border Layout

Escrito en ExtJS, Programación por yyeshua
23 May 2011

Llega un momento en el que las aplicaciones requieren de una interfaz gráfica compleja y dinámica.
ExtJS facilita la creación de estas interfaces gráficas.

Primero hay que pensar en una interfaz gráfica compleja: Muchos contenedores (paneles), formularios, gráficos, grillas, menúes, cajas de texto, etc.

¿Por donde empezar?
Anteriormente había indicado que los paneles son la base de construcción de la interfaz gráfica. Pero esos paneles deben ubicarse de forma coherente para que el usuario pueda usar la aplicación lo más eficientemente posible. Para ello, se utilizan dos clases: «Viewport» y algún «Layout».

Una instancia de «Viewport» representa el área visible de la aplicación. Se le configura un «Layout» para indicar como debe comportarse y como debe ser la disposición de elementos dentro del mismo. Esto constituye la primer base coherente para construir una gran interfaz gráfica, es la raíz de toda la GUI y todo lo que se construya gráficamente irá dentro del «Viewport».

La disposición de los elementos a mostrar depende de un «Layout» (diseño). Hay varios tipos de «Layouts», pero me concentraré en el Border Layout.

El Border Layout da a un contenedor (no sólo al «Viewport», sino también a otros contenedores, como los paneles) la posibilidad de ordenar elementos en cinco regiones y según los puntos cardinales: Norte, sur, este y oeste, además una región central. Cuando se utiliza un layout de tipo «border», entonces, uno de sus ítems (o el único cuando así sea) siempre debe indicar en un atributo llamado oportunamente «region» que su región es la central («center»). Si no se indica a un elemento como región central, la construcción del contenedor devolverá un error y se detendrá la ejecución del script.

Los otros cuatro puntos cardinales son opcionales, pudiendo utilizar sólo aquellos que se requiera según la situación de la aplicación.

Una de las grandes ventajas de utilizar un «Viewport» junto con un «Layout» tipo «border» es el ajuste automático en caso de redimensión, es decir, si el usuario cambia el tamaño de la ventana, el «Vireport» se ajustará al nuevo tamaño automáticamente, y sus componentes internos, o childs (hijos) lo harán también y mantendrán un aspecto coherente dentro de lo razonable.

Algo muy valorado de este mecanismo es la capacidad de cambiar dinámicamente el tamaño de una región. Por defecto se ofrece un tamaño de región predeterminado, pero el usuario tiene a disposición la posibilidad de hacer más grande, o más pequeña, incluso ocultar, una región en particular (o todas) si así lo quiere.

Hay más opciones, pero las mencionadas son las más comunes. Entonces, ¿cómo construir un Viewport con un border layout?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Ext.onReady(function(){
 
    Ext.create('Ext.Viewport', {
        layout: {
            type: 'border'
        },
        defaults: {
            split: true
        },
        items: [{
            region: 'north',
            collapsible: true,
            title: 'Norte',
            split: true,
            height: 100,
            html: 'Norte'
        },{
            region: 'west',
            collapsible: true,
            title: 'Oeste Ancho al 30%',
            split: true,
            width: '30%',
            html: 'Oeste'
        },{
            title: 'Centro',
            region: 'center',
            border: false,
            html: 'Cento'
        },{
            region: 'east',
            collapsible: true,
            floatable: true,
            split: true,
            width: 200,
            title: 'Este',
            html: 'Este'
        },{
            region: 'south',
            collapsible: true,
            split: true,
            height: 200,
            title: 'Sur',
            html: 'Sur'
        }]
    });
 
});

El resultado sería como este:

layout

Examinando el Código
Lo primero es crear una instancia de «Viewport». Esta instancia prepara el área del navegador como área visible de la aplicación. A la instancia se le definen tres cosas: Un objeto «layout», un objeto «defaults» y un arreglo de «items».

A el objeto «layout» únicamente se le define el tipo: «border». Esto es lo que permite que los elementos del «Viewport» se ordenen en regiones.

El objeto «defaults» es para definir propiedad por defecto para todos los elementos del «Viewport». En este caso una sola propiedad: «split», con valor verdadero. Esto es lo que permite redimensionar cada región por medio de los bordes divisorios.

Finalmente, se define un arreglo de «items», cada uno es la definición de un objeto que implícitamente es un «Panel», y por tanto puede ser cualquier instancia de cualquier clase que herede de «Panel», como formularios y grillas.

Hasta aquí por el momento, pero podéis dar un vistazo a las entradas anteriores:

  • Panel,
  • Formulario,
  • Grilla

Saludos

Etiquetas: extjs4, layout, viewport

[ExtJS 4] El panel.Panel

Escrito en ExtJS, Programación por yyeshua
17 May 2011

Ya he hablado brevemente sobre los dos componentes clásicos para el manejo de información con ExtJS: El Form y el Grid. Recordando, que ambos son herencia de la clase «Panel». En este artículo presento una breve introducción a la construcción de Paneles con ExtJS 4.

¿Qué es un Panel?.
Es el bloque de construcción básico para las interfaces gráficas. Es un contenedor, y por tanto la herramienta perfecta para organizar los elementos de la interfaz gráfica.
(more…)

¡Sé el primero en comentar! »
Etiquetas: extjs4, panel.Panel

[ExtJS 4] El grid.Panel

Escrito en ExtJS, Programación por yyeshua
14 May 2011

¿Cómo mostrar datos al usuario?. Hay muchas maneras, una de las más comunes es la utilización de grillas (grids).
ExtJS 4 cuenta con un sistemas de grillas muy avanzado. Se pueden construir grillas muy complejas, con muchas funcionalidades, y que a la vez son bien estructuradas y fáciles de entender.

Las grillas se crean como instancias de la clase «Panel» que está dentro del espacio de nombres «Ext.grid», esta hereda de la clase «Table» que está en el espacio de nombres «Ext.panel», y «Table» a su vez hereda de la clase «Panel» del mismo espacio de nombre, por tanto es un contenedor. (more…)

¡Sé el primero en comentar! »
Etiquetas: extjs4, grid, grilla

[ExtJS 4] El Form.Panel

Escrito en ExtJS, Programación por yyeshua
30 Apr 2011

A mi criterio, este es el primer panel a conocer. Después de todo, la mayoría de información que se quiere captar de los usuarios es ingresada por medio de los formularios.
Para quien esté acostumbrad@ a trabajar con los típicos formularios HTML, la manera a «lo ExtJS» puede resultar un poco extraña, pero sin duda resultará cómoda y se tomará mucho aprecio por la potencia y versatilidad que poseen. Para quienes estén más familiarizados con la creación de formularios en aplicaciones de escritorio seguramente se sentirán como en casa, con ciertas diferencias, tal como debe esperarse.
(more…)

¡Sé el primero en comentar! »
Etiquetas: extjs4, form.panel

[ExtJS 4] Recién lanzado y Como incluírlo

Escrito en Desarrollo Web, ExtJS, Programación por yyeshua
27 Apr 2011

Hoy fue el lanzamiento oficial de ExtJS 4, lo cual hace que mis planes de escritura cambien un poco.
Tan pronto como me enteré del lanzamiento lo descargué y he estado jugando un poco con esta nueva versión.

Esta versión tiene una arquitectura un tanto diferente de la versión anterior, pero la esencia permanece.

Una de las cosas que cambian es la forma de incluirlo en el HTML para poder hacer uso del mismo.
(more…)

5 Comentarios »
Etiquetas: extjs4

[Reseña] Linux Mint XFCE 201104

Escrito en Linux, Linux MInt por yyeshua
16 Apr 2011

Hace un par de semanas que los amigos de Linux Mint nos pusieron a disposición la nueva versión de la distribución con escritorio XCFE.

Me lo bajé, y hace una semana que lo estoy usando.
XFCE con Menta
La primer característica a destacar es que esta versión está basada en Debian Testing y no en Ubutnu (lo que realmente simboliza el paso por el cual me decidí a volver a probar la Menta después de varios años de pura observación). Aunque se trata de la testing de Debian, la verdad es que a mi me da una sensación de mayor estabilidad que la de ubutnu, y sin duda resulta ser más rápida y menos pesada que la archireconocida distro de canonical.
(more…)

2 Comentarios »
Etiquetas: xfce

[Symfony & ExtJS] Como instalar ExtJS en Symfony

Escrito en Desarrollo Web, ExtJS, Programación, Symfony por yyeshua
07 Apr 2011

Con un par de borradores en la bandeja, y mientras trato de hacer entender a mi mente algunas cosas, he decido escribir un tip rápido sobre como instalar esta excelente librería Javascript en nuestro framework PHP favorito.

Asumo que el lector tiene instalado y preparado un proyecto de Symfony, y que la versión de Symfony a la que nos referimos es de la rama 1.x.
En tanto, la versión de ExtJS utilizada es la 3.3, empero, en cuanto la 4 dé su debut actualizaré este texto para mantener la congruencia. (De todas formas no creo que lleve mucho trabajo XD).
(more…)

¡Sé el primero en comentar! »
Etiquetas: RIA, tips

Vistas en Symfony con Doctrine

Escrito en Programación, Symfony por yyeshua
11 Mar 2011

¿Vistas o no vistas?. ¡He allí el dilema!.

La gracia del ORM es ser independiente de la Base de Datos. Pero en mi caso el sistema está casado con la Base de Datos (PostgreSQL 8.4) y el DBA se ha encargado de facilitar algunas cosas gracias a las Vistas.

Dejaré la discusión del  dilema para otro día y pasaré directamente a hablar de como implementar una vista.

Primero que nada: La vista se comporta como una tabla de consultas. ¡Pero no es una tabla!. Su principal ventaja es que podemos obtener datos de la base de datos de manera sencilla. Datos que en una consulta normal podría ser compleja, y que en el caso de usar el DQL del ORM podría llegar a ser pesado, complicado y tedioso. Pensemos por ejemplo en consultas con varios «Joins», tanto internos como a la derecha, a la izquierda y que además incluya tablas no relacionadas. Una vista se escribe una vez y luego obtener sus datos resulta muy fácil. (more…)

3 Comentarios »
Etiquetas: doctrine, orm, sf

RIA – QooxDoo una alternativa a ExtJS

Escrito en Desarrollo Web, Programación, Software Libre por yyeshua
23 Jan 2011

Comenzaré hablando brevemente sobre popularidad. Si os digo que penséis en JavaScript y popularidad, ¿Qué se os viene a la mente?. A mi dos cosas: ExtJS y jQuery. ExtJS es un framework genial, es popular, con mucha documentación, una interfaz para navegar entre su API que complace mucho, y es GPL. Puras ventajas la verdad, pero no todo es ventaja en esta librería, quizá lo que menos gusta es que siendo una librería sea GPL y se entra en un eterno debate de que es y que no es una obra derivada.

Últimamente he estado estudiando una librería muy interesante, con algo más de camino recorrido que ExtJs pero menos popular, me pregunto el porqué, pero ese será tema para otra entrada. Hoy lo importante es que hay una alternativa a ExtJS y desde mi perspectiva, las alternativas nunca están demás.

QooxDoo es una librería que al igual que ExtJS se ofrece con doble licencia, con la salvedad de que ambas licencias de QooxDoo son de código abierto: la LGPL y la EPL. Esoja la que mas le convenga.

QooxDoo tiene mucho para ofrecer, y lo que ofrece es formidable, quizá en este punto lo que más nos interesa es los widgets: Botones, Etiquetas, Ventanas, CheckBox, ComboBox, SelectBox, etc etc. (more…)

¡Sé el primero en comentar! »
Etiquetas: extjs, qooxdoo

[Tip] Yo, Mandriva y Compiz

Escrito en Linux, Mandriva por yyeshua
09 Jan 2011

Estaba comenzando mis menesteres en la PC de casa, donde tengo instalado Mandriva 2010.2 y en el cual tengo activado el Compiz. No había hecho mucho en esta máquina, pero hoy mientras trabajaba me doy cuenta que algo no funcionaba: La tecla para capturar la pantalla. WTF!

Probablemente algunas otras cosas tampoco funcionen, en mi caso esta fue la única que detecté y lo solventé en un par de minutos. Si alguna combinación de teclas u otra funcionalidad típica de gnome no va bien y uno tiene instalado el Compiz, para corregirlo, debería bastar el instalar el paquete «compiz-fusion-icon», lanzarlo y en el Adminstrador de Opciones, en la solapa «General», marcar la casilla «Compatibilidad de Gnome». Recargar el administrador de ventanas y listo.

Saludos.

¡Sé el primero en comentar! »
Etiquetas: tips
Next page »

Categorías

  • Desarrollo Web
  • ExtJS
  • Granos de Opinión
  • Granos Varios
  • Juegos
  • Linux
  • Linux MInt
  • Mandriva
  • Programación
  • Software Libre
  • Symfony

Etiquetas

canon doctrine extjs extjs4 form.panel grid grilla hib ideas layout orm panel.Panel qooxdoo RIA sf tips viewport xfce

Últimos Granos

  • [ExtJS 4] El Viewport y el Border Layout
  • [ExtJS 4] El panel.Panel
  • [ExtJS 4] El grid.Panel
  • [ExtJS 4] El Form.Panel
  • [ExtJS 4] Recién lanzado y Como incluírlo
Powered by WordPress | “Blend” from Spectacu.la WP Themes Club