rubensa.eu.org algo en qué pensar...
El contenido de este sitio es de libre distribución, siempre que se cite la fuente original. No está permitido su uso comercial sin previo aviso y si lo modifica o distribuye debe mantener esta licencia.
Inicio de sesión de usuario
7. ContentPanes, SplitPanes, y WindowPanes
Mar, 27/03/2007 - 17:23 — rubensa
Los componentes que se expanden para rellenar completamente una región de la pantalla (tanto horizontal como verticalmente) se conocen como componentes panel. Un componente panel se diferencia por el hecho de que implementa el interfaz Pane. Los componentes Pane tienen unos requisitos especiales tales como determinar cómo son añadidos en la gerarquía. El componente padre de un componente pane debe ser otro componente pane o un Window. De modo más específico, el padre de una componente pane debe implementar la interfaz PaneContainer.
Existen tres compoenentes pane por defecto proporcionados por Echo2: ContentPane, SplitPane, y WindowPane.
ContentPanes (paneles de contenido)
El ContentPane es el más sencillo de todos los componentes pane. Es un simple contenedor que se expande para llenar una región completa. Cada aplicación Echo2 usará al menos un ContentPane, ya que el componente Window de Echo2 necesita que se le configure un ContentPane como su único hijo.
Generalmente un ContentPane está limitado a un Component hijo. Generalmente este hijo será otro componente pane tal como un SplitPane o un componente contenedor de layout como un Column, Row o Grid. Virtualmente cualquier componente es aceptable.
Existe una excepción a la política de un solo Component hijo de ContentPane: a un ContentPane se le pueden añadir múltiples componentes de ventana flotantes, como WindowPanes. Dichos Components "floating pane" (panel flotante) deben implementar la interfaz marcadora FloatingPane.
Concretando, la regla es que un ContentPane puede tener un número ilimitado de hijos que implementen la interfaz FloatingPane y como mucho uno que no.
SplitPanes (paneles divisores)
Un SplitPane se usa para dividir una región en dos regiones más pequeñas tanto vertical como horizontalmente. Opcionalmente pueden pintar una barra separadora entre ambas regiones, que el desarrollador puede configurar para que sea desplazable por el usuario para ajustar los tamaños relativos de las regiones.
Generalmente se usan SplitPanes anidados para estructurar las interfaces de usuario que ocuparán complentamente una ventana del navegador.
La aplicación de Ejemplo de Correo con separadores SplitPane remarcados en colores brillantes:

LayoutData: Los componentes hijos de un SplitPane pueden proporcionar objetos SplitPaneLayoutData para describir cómo serán configurados dentro del SplitPane. El uso de SplitPaneLayoutData permite la configuración de los tamaños mínimo y máximo de cada panel, su comportamiento de desplazamiento (scrolling), colores e imagenes de fondo, márgenes interiores, y alineación.
WindowPanes (paneles de ventana)
El componente WindowPane pinta ventanas movibles que se superponen a una aplicación. Los WindowPanes solamente se pueden añadir a un ContentPane. Un WindowPane es en sí mismo un PaneContainer, lo que posibilita que se le añadan componentes como ContentPanes y SplitPanes.
Desplazamiento y Redimensionado: El desarrollador configura si un WindowPane se puede mover o redimensionar usando los métodos setMovable() y setResizable() respectivamente.
Ventanas Modales: Un WindowPane se puede hacer modal invocando a su método setModal(). Cuando se fija el estado modal de un WindowPane, la aplicación desabilitará todos los componentes que no son hijos del WindowPane.
Ventanas Cerrables: Por defecto, un WindowPane se pintará con un botón de cierre en su esquina superior derecha. Esta característica se puede deshabilitar fijando la propiedad Closeable (cerrable) del WindowPane a false.
Operaciones de Cierre por Defecto: Cuando un usuario pulsa el botón de cierre de un WindowPane, la "operación de cierre por defecto" se invocará automáticamente. Un WindowPane se puede configurar con una de las tres operaciones de cierre por defecto: cerrar automáticamente la ventana, ocultar automáticamente la venta, o no hacer nada (por defecto).
WindowEvents (eventos de ventana): Se pueden registrar WindowListeners con un WindowPane para que reciban notificaciones cuando un usuario le pide que se cierre.
FillImageBorders (borde de imagen de relleno): El borde de un WindowPane se define usando un tipo especial de objeto de propiedad borde: un FillImageBorder. El objeto de propiedad FillImageBorder es capaz de dibujar un borde gráfico tematizado al rededor de un WindowPane usando una serie de ocho FillImages. Se usan cuatro imágenes para describir las esquinas del borde, con cuatro más para pintar los laterales. Los FillImageBorders proporcionan la capacidad de crear bordes con sombras semitransparentes, como se ve en la Aplicación de Ejemplo del Correo. Si solo se quiere un borde solido de un color plano, se puede configurar un FillImageBorder con opciones de color pero sin ninguna imagen.
Un WindowPane con un FillImageBorder personalizado con imágenes PNG parcialmente transparentes:
Existen tres compoenentes pane por defecto proporcionados por Echo2: ContentPane, SplitPane, y WindowPane.
ContentPanes (paneles de contenido)
El ContentPane es el más sencillo de todos los componentes pane. Es un simple contenedor que se expande para llenar una región completa. Cada aplicación Echo2 usará al menos un ContentPane, ya que el componente Window de Echo2 necesita que se le configure un ContentPane como su único hijo.Generalmente un ContentPane está limitado a un Component hijo. Generalmente este hijo será otro componente pane tal como un SplitPane o un componente contenedor de layout como un Column, Row o Grid. Virtualmente cualquier componente es aceptable.
Existe una excepción a la política de un solo Component hijo de ContentPane: a un ContentPane se le pueden añadir múltiples componentes de ventana flotantes, como WindowPanes. Dichos Components "floating pane" (panel flotante) deben implementar la interfaz marcadora FloatingPane.
Concretando, la regla es que un ContentPane puede tener un número ilimitado de hijos que implementen la interfaz FloatingPane y como mucho uno que no.
SplitPanes (paneles divisores)
Un SplitPane se usa para dividir una región en dos regiones más pequeñas tanto vertical como horizontalmente. Opcionalmente pueden pintar una barra separadora entre ambas regiones, que el desarrollador puede configurar para que sea desplazable por el usuario para ajustar los tamaños relativos de las regiones.Generalmente se usan SplitPanes anidados para estructurar las interfaces de usuario que ocuparán complentamente una ventana del navegador.
La aplicación de Ejemplo de Correo con separadores SplitPane remarcados en colores brillantes:

LayoutData: Los componentes hijos de un SplitPane pueden proporcionar objetos SplitPaneLayoutData para describir cómo serán configurados dentro del SplitPane. El uso de SplitPaneLayoutData permite la configuración de los tamaños mínimo y máximo de cada panel, su comportamiento de desplazamiento (scrolling), colores e imagenes de fondo, márgenes interiores, y alineación.
WindowPanes (paneles de ventana)
El componente WindowPane pinta ventanas movibles que se superponen a una aplicación. Los WindowPanes solamente se pueden añadir a un ContentPane. Un WindowPane es en sí mismo un PaneContainer, lo que posibilita que se le añadan componentes como ContentPanes y SplitPanes.Desplazamiento y Redimensionado: El desarrollador configura si un WindowPane se puede mover o redimensionar usando los métodos setMovable() y setResizable() respectivamente.
Ventanas Modales: Un WindowPane se puede hacer modal invocando a su método setModal(). Cuando se fija el estado modal de un WindowPane, la aplicación desabilitará todos los componentes que no son hijos del WindowPane.
Ventanas Cerrables: Por defecto, un WindowPane se pintará con un botón de cierre en su esquina superior derecha. Esta característica se puede deshabilitar fijando la propiedad Closeable (cerrable) del WindowPane a false.
Operaciones de Cierre por Defecto: Cuando un usuario pulsa el botón de cierre de un WindowPane, la "operación de cierre por defecto" se invocará automáticamente. Un WindowPane se puede configurar con una de las tres operaciones de cierre por defecto: cerrar automáticamente la ventana, ocultar automáticamente la venta, o no hacer nada (por defecto).
WindowEvents (eventos de ventana): Se pueden registrar WindowListeners con un WindowPane para que reciban notificaciones cuando un usuario le pide que se cierre.
FillImageBorders (borde de imagen de relleno): El borde de un WindowPane se define usando un tipo especial de objeto de propiedad borde: un FillImageBorder. El objeto de propiedad FillImageBorder es capaz de dibujar un borde gráfico tematizado al rededor de un WindowPane usando una serie de ocho FillImages. Se usan cuatro imágenes para describir las esquinas del borde, con cuatro más para pintar los laterales. Los FillImageBorders proporcionan la capacidad de crear bordes con sombras semitransparentes, como se ve en la Aplicación de Ejemplo del Correo. Si solo se quiere un borde solido de un color plano, se puede configurar un FillImageBorder con opciones de color pero sin ninguna imagen.
Un WindowPane con un FillImageBorder personalizado con imágenes PNG parcialmente transparentes:
- Inicie sesión para enviar comentarios
