public class ALS implements EntryPoint { ScrollPanel basePanel = new ScrollPanel(); DockLayoutPanel baseDockLayoutPanel = new DockLayoutPanel(Unit.PX); SimplePanel simpleContentPanel = new SimplePanel(); public void onModuleLoad() { RootLayoutPanel rootPanel = RootLayoutPanel.get(); rootPanel.add(basePanel); basePanel.add(baseDockLayoutPanel); baseDockLayoutPanel.setSize("1200", "800"); baseDockLayoutPanel.addNorth(CommonPanel.getHeaderPanel(), 20); baseDockLayoutPanel.addSouth(CommonPanel.getFooterPanel(), 40); FlowPanel leftSidePanel = CommonPanel.getLeftSidePanel(); FlowPanel menuPanel = new FlowPanel(); menuPanel.setWidth("150px"); menuPanel.addStyleName("menu"); menuPanel.add(buildTree()); leftSidePanel.add(menuPanel); baseDockLayoutPanel.addWest(leftSidePanel, 220); baseDockLayoutPanel.add(simpleContentPanel); baseDockLayoutPanel.setSize("1024", "800"); } Tree buildTree(){ Tree treeMenu = new Tree(); final TreeItem searchLogs = new TreeItem("Search Logs"); treeMenu.addItem(searchLogs); searchLogs.setState(true); treeMenu.addSelectionHandler(new SelectionHandler<TreeItem>(){ @Override public void onSelection(SelectionEvent<TreeItem> event) { if (event.getSelectedItem().equals(advancedSearchLogs)){ //System.out.println(splitLayoutPanel.getWidgetCount()); simpleContentPanel.remove(simpleContentPanel.getWidget()); simpleContentPanel.add(new AdvancedSearchLogsPanel()); advancedSearchLogsPanel.forceLayout(); baseDockLayoutPanel.forceLayout(); int width = advancedSearchLogsPanel.getOffsetWidth() + 220; int height = advancedSearchLogsPanel.getOffsetHeight()+ 60; // Problem here, getOffSetheight() return zero!! // AdvancedSearchLogsPanel is a docklayoutPanel baseDockLayoutPanel.setSize(String.valueOf(width), String.valueOf(height)); } }}); return treeMenu; } }