void add(ComponentPlaceholder placeholder, WindowPosition initialPosition) {
		if (initialPosition == WindowPosition.WINDOW) {
			addToNewWindow(placeholder);
			return;
		}
		ComponentNode node = new ComponentNode(winMgr);
		placeholder.setNode(node);
		if (child == null) {
			node.parent = this;
			child = node;
		}
		else {
			switch (initialPosition) {
				case TOP:
					child = new SplitNode(winMgr, node, child, false);
					break;
				case BOTTOM:
					child = new SplitNode(winMgr, child, node, false);
					break;
				case LEFT:
					child = new SplitNode(winMgr, node, child, true);
					break;
				default: // default to the right
					child = new SplitNode(winMgr, child, node, true);
					break;
			}
			child.parent = this;
		}
		placeholder.getNode().add(placeholder);
	}
Creates a new sub-window for the given component a positions it at the given location.

@param placeholder the component to be put in its own window.
@param loc the location for the new window.
Ghidra/Framework/Docking/src/main/java/docking/RootNode.java