private void positionInRelativeGroup(ComponentPlaceholder newPlaceholder,
			ComponentPlaceholder relativePlaceholder) {

		// use the relative placeholder and the 'intra' group information for placement
		ComponentNode node = relativePlaceholder.getNode();
		ComponentProvider provider = newPlaceholder.getProvider();
		WindowPosition windowPosition = provider.getDefaultWindowPosition();
		WindowPosition intraGroupPosition = provider.getIntraGroupPosition();
		if (windowPosition == WindowPosition.WINDOW) {
			// always honor 'window' when we are not in the exact same group (note: at the time
			// of writing this, I could not think of a use case to contradict this decision).
			node.split(newPlaceholder, intraGroupPosition);
			return;
		}

		if (intraGroupPosition == WindowPosition.STACK) {
			node.add(newPlaceholder);
		}
		else {
			node.split(newPlaceholder, intraGroupPosition);
		}
	}
Finds or creates a component placeholder object for the given provider.
@param provider the provider for which to get an placeholder object.
@param defaultPlaceholder the placeholder to use if an existing one cannot be found
@return a component placeholder object that will be used to manager the providers component.
Ghidra/Framework/Docking/src/main/java/docking/PlaceholderManager.java