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;
	}
}