}
private void initializeDockingGroups(RootWindow rootWindow) {
// position the docks at the lower part of the sidebar
SplitWindow lowerSidebarSplit = new SplitWindow(false, 0.5f, new TabWindow(), new TabWindow());
docks.put(DockArea.EAST,
new DockContainer(new SplitWindowDispatcher(lowerSidebarSplit, true)));
docks.put(DockArea.SOUTH_EAST,
new DockContainer(new SplitWindowDispatcher(lowerSidebarSplit, false)));
// position the dock window at the top of the sidebar
SplitWindow northSouthSidebarSplit = new SplitWindow(false, 0.33f, new TabWindow(), lowerSidebarSplit);
docks.put(DockArea.NORTH_EAST,
new DockContainer(new SplitWindowDispatcher(northSouthSidebarSplit, true)));
// position the main window of the entire window
SplitWindow mainWindowSidebarSplit = new SplitWindow(true, 0.8f, new TabWindow(), northSouthSidebarSplit);
docks.put(DockArea.CENTER,
new DockContainer(new SplitWindowDispatcher(mainWindowSidebarSplit, true)));
// position the bottom bar of the entire window
SplitWindow mainWindowBottomBarSplit = new SplitWindow(false, 0.8f, mainWindowSidebarSplit, new TabWindow());
docks.put(DockArea.SOUTH,
new DockContainer(new SplitWindowDispatcher(mainWindowBottomBarSplit, false)));
rootWindow.setWindow(mainWindowBottomBarSplit);
}