Dudas sobre Layout

Buenas a todos

Estoy comenzando a utilizar vaadin y hay cosas que desconosco y por lo demas tengo 2 preguntas.

en base a esta imagen

http://imgur.com/Jxh7rny

Estoy tratando de hacer una aplicacion tipo web la cual contenga cabecera, menu lateral, cuerpo y pie de pagina.
En HTML esto lo logro con los Iframe, pero hasta el momento no he encontrado nada parecido para vaadin, mi duda es de que forma puedo lograr esto, ya que de momento estoy trabajando con Layouts, especificamente VerticalLayout y HorizontalLayout.

y esto me lleva a mi segunda pregunta

http://imgur.com/mUb3skv

al agregar una funcionalidad por ejemplo a un layout mas pequeño este se sale de los margenes establecidos, como puedo hacer para que quede solo dentro del espacio designado y en caso de que el componente sea mas grande al layout le aparesca automaticamente Scroll?

de ante mano muchas gracias.

que componentes quieres en el menu ? parece que el header lo tienes bien… puedes incluso diseña mejor el layout completo como lo quieres y subes la imagen aqui…

he utilizado el libro de

Alejandro Duarte

y explica eso bastante bienn…

utilizando correctamente el setExpandRatio(); + HorizontalSplitPanel… y otros queda bastante bien…

por ejemplo el menu y contenido ambos siendo verticales. los introduces dentro de un HorozontalSplitPanel() … con su respectivo setSplitPosition(anchoMenu);


22620.png

Muchas gracias por tu respuesta, estube viendo el HorizontalSplitPanel y me surgio una duda ahora, como ya habia mencionado la forma enque tengo mi Main page es solo con vertical y horizontal layouts, por lo que me dices estoy asumiendo que me recomiendas dentro de esas divisiones agregar panels y trabajar todos mis componentes dentro de panels verdad?

ahora reitero mi otra consulta en base a esta imagen

http://imgur.com/mUb3skv

como puedo solucionar eso que mis layout no hagan un “auto resize” si no que se agreguen scrolls de forma automatica.

de ante mano muchisimas gracias.

mas o menos te copio…recuerda primero diseñar bien tu framework Layout. tu esqueleto básico para trabajar en el …separando bien las clases cosas que aprendo aun. no soy experto…si solo tienes vertical y horizontal, recuerda que esto se trata de layouts dentro de layouts y eso debes tenerlo muy claro te pondré un ejemplo con la misma de arriba

cuando agregues la foto usa Add Attachment… “abres” la foto en otra pestaña del navegador y copias el link que te genera el uploader de vaadin, reEdita tu post insertando esa imagen con su URL la visualizas directo aquí [emoticon]

Fíjate lo que hice para lograr esto… este es el código del panel dentro del creo un label con un String…esto me prácticamente lo enseño

Alejandro Duarte

así mismo lo digo, pero el panel cuando se agrega en el contentLayout que es VERTICAL y su parent Layout es el HorizontalSplitPanel [emoticon]
,

“SIN” el panel ese label no se viera asi porque no me genera Scroll tampoco…aun no lo c cosa que debo mejorar…
fiejate en el return, retorna un objeto de tipo panel que es un (Component c), ese metodo lo invoco para que se cree en el contenLayout :smiley:

public Panel getPanel() {
        
        String someNumbers = "";
        for( int i=0; i<2000; i++ ) {
            someNumbers += " " +i;
        }
        
        Label content = new Label(someNumbers);
        Panel p = new Panel(content);
        p.setSizeFull();
        p.setScrollTop(3000); // pixels from top
        
        return p;
    }

22632.png

Muchisimas gracias por el consjo, ahora otra consulta si bien en html con los Iframe pones target=“iframeName” para cambiar al contenido de content, como se haria con los splitPanel, deberia volverlos static para llamarlos desde cualquier lado de la aplicacion y poder cambiar el contenido, o como seria?

ajaa exacto… recuerda estos metodos :smiley:

contentLayout.removeAllComponents();
contentLayout.addComponent(component);

eso que dices no lo estoy haciendo para generar nuevos componentes en el contentLayout,solo he usado los metodos que te menciona arriba.

estoy casi seguro que tienes que hacer un pequeño refactor en los layout…

otra cosa sabes com pintar los bordes con css en vaadin? desde tu @theme…eso te ayuda en algo.

pon esto en tu thema, y ejecuta,
vaadin:compile-theme

.borde {
border: 1px solid blue;
background-color: #BFC0C1;
}
luego al componente… que le quieres dar el borde



tuLayout.addStyleName(“borde”);

Si, eso lo sabia, bueno de esa forma no pero algo parecido, en base a eso esque te pude mandar en las imagenes los bordes de como estaban compuestos cada layout.

Los antiguos layouts los cambie por vertical/HorizontalSplitPanels, me ayudaron muchisimo mas que los layouts muchas gracias por la recomendacion.