protected void layout(Composite composite, boolean flushCache) {
			Rectangle clientArea = composite.getClientArea();

			Control[] ws = composite.getChildren();

			// Lay out the separator, the tool bar control, the cool bar
			// control, the status line, and the page composite.
			// The following code assumes that the page composite is the last
			// child, and that there are no unexpected other controls.

			for (int i = 0; i < ws.length; i++) {
				Control w = ws[i];

				if (w == seperator1) { // Separator
					Point e = w.computeSize(SWT.DEFAULT, SWT.DEFAULT,
							flushCache);
					w.setBounds(clientArea.x, clientArea.y, clientArea.width,
							e.y);
					clientArea.y += e.y;
					clientArea.height -= e.y;
				} else if (getToolBarControl() == w) {
					if (toolBarChildrenExist()) {
						Point e = w.computeSize(SWT.DEFAULT, SWT.DEFAULT,
								flushCache);
						w.setBounds(clientArea.x, clientArea.y,
								clientArea.width, e.y);
						clientArea.y += e.y + VGAP;
						clientArea.height -= e.y + VGAP;
					}
				} else if (getCoolBarControl() == w) {
					if (coolBarChildrenExist()) {
						Point e = w.computeSize(clientArea.width, SWT.DEFAULT,
								flushCache);
						w.setBounds(clientArea.x, clientArea.y,
								clientArea.width, e.y);
						clientArea.y += e.y + VGAP;
						clientArea.height -= e.y + VGAP;
					}
				} else if (statusLineManager != null
						&& statusLineManager.getControl() == w) {
					Point e = w.computeSize(SWT.DEFAULT, SWT.DEFAULT,
							flushCache);
					w.setBounds(clientArea.x, clientArea.y + clientArea.height
							- e.y, clientArea.width, e.y);
					clientArea.height -= e.y + VGAP;
				} else {
					w.setBounds(clientArea.x, clientArea.y + VGAP,
							clientArea.width, clientArea.height - VGAP);
				}
			}
		}