Here is the example code:
Code:
final Dialog testD = new Dialog()
{
{
this.setButtons( Dialog.OKCANCEL );
this.setHideOnButtonClick( true );
this.setWidth( 240 );
this.setHeight( 280 );
this.setHeading( "Test" );
}
@Override
protected void onRender( Element parent, int pos )
{
super.onRender( parent, pos );
this.setLayout( new FitLayout() );
LayoutContainer lc = new LayoutContainer();
lc.setLayout( new RowLayout() );
TabPanel tp = new TabPanel();
TabItem ti = new TabItem();
ti.setText( "Test Tab" );
tp.add(ti);
lc.add( new TextBox(), new RowData( 1, Style.DEFAULT ) );
lc.add( tp, new RowData( 1, 1 ) );
this.add( lc );
}
};
testD.show();
The dialog shows with content correctly sized but on resize the layout doesn't execute.
The following code fixes this particular issue but this is just a workaround for the problem:
Code:
testD.addListener( Events.Resize, new Listener<ComponentEvent>(){
public void handleEvent( ComponentEvent be ) {
testD.layout();
}
} );