package fr.lteconsulting.hexa.client.ui; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.ProvidesResize; import com.google.gwt.user.client.ui.RequiresResize; import com.google.gwt.user.client.ui.SimpleLayoutPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; public class FullHeightLayoutPanel extends Composite implements RequiresResize, ProvidesResize { VerticalPanel panel = new VerticalPanel(); public FullHeightLayoutPanel() { SimpleLayoutPanel s = new SimpleLayoutPanel(); s.add( panel ); panel.setWidth( "100%" ); panel.setHeight( "100%" ); initWidget( s ); } public void add(Widget widget) { panel.add( widget ); } public void addFull(Widget widget) { panel.add( widget ); widget.setWidth( "100%" ); widget.setHeight( "100%" ); widget.getElement().getParentElement().getParentElement().getStyle().setHeight( 100, Unit.PCT ); } @Override public void onResize() { int nb = panel.getWidgetCount(); for( int i=0; i<nb; i++ ) { Widget child = panel.getWidget( i ); if( child instanceof RequiresResize ) ((RequiresResize)child).onResize(); } } }