public synchronized void dispose() {
		if (root == null) {
			return;
		}

		rebuildUpdater.dispose();

		KeyboardFocusManager mgr = KeyboardFocusManager.getCurrentKeyboardFocusManager();
		mgr.removePropertyChangeListener("permanentFocusOwner", this);

		actionToGuiMapper.dispose();
		root.dispose();

		placeholderManager.disposePlaceholders();

		setNextFocusPlaceholder(null);
		removeInstance(this);
		root = null;
		lastActiveWindow = null;

		preferenceStateMap.clear();
	}
Releases all resources used by this docking window manager. Once the dispose method is
called, no other calls to this object should be made.
Ghidra/Framework/Docking/src/main/java/docking/DockingWindowManager.java