private void showProgram(Program p, ProgramLocator locator, final int state) {
		if (p == null || p.isClosed()) {
			throw new AssertException("Opened program required");
		}

		Runnable r = () -> {
			programMgr.addProgram(p, locator, state);
			if (state == ProgramManager.OPEN_CURRENT) {
				programMgr.saveLocation();
			}
			contextChanged();
		};
		Swing.runNow(r);
	}
This method notifies listening plugins that a programs has been added to the program manager.
This is not used for actually opening a program from the database and will act strangely if
given a closed Program object.

@see ghidra.app.services.ProgramManager#openProgram(ghidra.program.model.listing.Program)
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/ProgramManagerPlugin.java