public void split(Component newComp, Component child, DockingConstants.Split position) {

		SplitContainer split;
		if(position == DockingConstants.SPLIT_TOP || position == DockingConstants.SPLIT_BOTTOM) {
			split = new SplitContainer(JSplitPane.VERTICAL_SPLIT);
		} else /*if (position == DockingConstants.SPLIT_LEFT
				|| position == DockingConstants.SPLIT_RIGHT)*/{
			split = new SplitContainer(JSplitPane.HORIZONTAL_SPLIT);
		}

		if(getLeftComponent() == child) {
			remove(child);
			setLeftComponent(split);
			if(position == DockingConstants.SPLIT_TOP || position == DockingConstants.SPLIT_LEFT) {
				split.setLeftComponent(newComp); // for splitpane, left == top
				split.setRightComponent(child);
			} else {
				split.setLeftComponent(child); // for splitpane, left == top
				split.setRightComponent(newComp);
			}
		} else {
			remove(child);
			setRightComponent(split);
			if(position == DockingConstants.SPLIT_TOP || position == DockingConstants.SPLIT_LEFT) {
				split.setLeftComponent(newComp); // for splitpane, left == top
				split.setRightComponent(child);
			} else {
				split.setLeftComponent(child); // for splitpane, left == top
				split.setRightComponent(newComp);
			}
		}
	}