CMArray2DTable::CMArray2DTable
	(
	CMCommandDirector*	cmdDir,
	CMArray2DDir*		arrayDir,
	JXMenuBar*			menuBar,
	JStringTableData*	data,
	JXScrollbarSet*		scrollbarSet,
	JXContainer*		enclosure,
	const HSizingOption	hSizing,
	const VSizingOption	vSizing,
	const JCoordinate	x,
	const JCoordinate	y,
	const JCoordinate	w,
	const JCoordinate	h
	)
	:
	JXStringTable(data, scrollbarSet, enclosure, hSizing,vSizing, x,y, w,h),
	itsCmdDir(cmdDir),
	itsArrayDir(arrayDir)
{
	SetSelectionBehavior(kJFalse, kJFalse);

	JXTEBase* te = GetEditMenuHandler();
	itsEditMenu  = te->AppendEditMenu(menuBar);
	ListenTo(itsEditMenu);
}
SVNListBase::SVNListBase
	(
	SVNMainDirector*	director,
	JXTextMenu*			editMenu,
	const JString&		cmd,
	const JBoolean		refreshRepo,
	const JBoolean		refreshStatus,
	const JBoolean		reload,
	const JBoolean		enableContextMenu,
	JXScrollbarSet*		scrollbarSet,
	JXContainer*		enclosure,
	const HSizingOption hSizing,
	const VSizingOption vSizing,
	const JCoordinate	x,
	const JCoordinate	y,
	const JCoordinate	w,
	const JCoordinate	h
	)
	:
	JXStringList(scrollbarSet, enclosure, hSizing, vSizing, x, y, w, h),
	SVNTabBase(director),
	itsCmd(cmd),
	itsRefreshRepoFlag(refreshRepo),
	itsRefreshStatusFlag(refreshStatus),
	itsReloadOpenFilesFlag(reload),
	itsEditMenu(editMenu),
	itsEnableContextMenuFlag(enableContextMenu),
	itsContextMenu(NULL),
	itsProcess(NULL),
	itsMessageLink(NULL),
	itsErrorLink(NULL)
{
	SetFont(JGetMonospaceFontName(), kJDefaultMonoFontSize);
	SetSelectionBehavior(kJTrue, kJTrue);

	itsLineList = new JPtrArray<JString>(JPtrArrayT::kDeleteAll);
	assert( itsLineList != NULL );
	itsLineList->SetCompareObject(CompareLines(this));
	SetStringList(itsLineList);

	itsErrorList = new JPtrArray<JString>(JPtrArrayT::kDeleteAll);
	assert( itsErrorList != NULL );

	itsSavedSelection = new JPtrArray<JString>(JPtrArrayT::kDeleteAll);
	assert( itsSavedSelection != NULL );
	itsSavedSelection->SetCompareFunction(JCompareStringsCaseSensitive);

	FitToEnclosure();

	ListenTo(itsEditMenu);
}
CBSymbolTable::CBSymbolTable
	(
	CBSymbolDirector*	symbolDirector,
	CBSymbolList*		symbolList,
	JXScrollbarSet*		scrollbarSet,
	JXContainer*		enclosure,
	const HSizingOption	hSizing,
	const VSizingOption	vSizing,
	const JCoordinate	x,
	const JCoordinate	y,
	const JCoordinate	w,
	const JCoordinate	h
	)
	:
	JXTable(10, 10, scrollbarSet, enclosure, hSizing,vSizing, x,y, w,h)
{
	itsSymbolDirector = symbolDirector;
	itsSymbolList     = symbolList;
	itsMaxStringWidth = 0;

	itsVisibleList = new JArray<JIndex>(CBSymbolList::kBlockSize);
	assert( itsVisibleList != NULL );

	itsVisibleListLockedFlag = kJFalse;
	itsNameFilter            = NULL;
	itsNameLiteral           = NULL;

	const JIndex blackColor = (GetColormap())->GetBlackColor();
	SetRowBorderInfo(0, blackColor);
	SetColBorderInfo(0, blackColor);

	AppendCols(1);
	SetDefaultRowHeight((GetFontManager())->
							GetLineHeight(JGetDefaultFontName(), kJDefaultFontSize, JFontStyle()) +
						2*kVMarginWidth);

	SetSelectionBehavior(kJTrue, kJTrue);

	ListenTo(itsSymbolList);
	ListenTo(CBGetSymbolTypeList());
}