TestDirector::TestDirector
	(
	JXDirector*		supervisor,
	const JBoolean	isMaster,
	const JBoolean	startIconic,
	const JBoolean	bufferTestWidget,
	const JBoolean	testWidgetIsImage,
	const JBoolean	snoopWindow
	)
	:
	JXWindowDirector(supervisor)
{
	itsIsMasterFlag = isMaster;
	itsPSPrinter    = NULL;
	itsEPSPrinter   = NULL;

	itsCSF = new TestChooseSaveFile;
	assert( itsCSF != NULL );

	BuildWindow(isMaster, bufferTestWidget, testWidgetIsImage);

	JXWindow* window = GetWindow();
	if (snoopWindow)
		{
		itsWindowSnooper = new JBroadcastSnooper(window);
		assert( itsWindowSnooper != NULL );
		}
	else
		{
		itsWindowSnooper = NULL;
		}

	if (isMaster && JFileExists(kWindowGeomFileName))
		{
		ifstream input(kWindowGeomFileName);
		window->ReadGeometry(input);
		}

	if (startIconic)
		{
		window->Iconify();
		}

	// GetDisplay() only works after SetWindow()

	itsPSPrinter = new JXPSPrinter(GetDisplay());
	assert( itsPSPrinter != NULL );
	ListenTo(itsPSPrinter);

	itsEPSPrinter = new JXEPSPrinter(GetDisplay());
	assert( itsEPSPrinter != NULL );
	ListenTo(itsEPSPrinter);
}