function getExpressionsEditor( $spelling, ViewInformation $viewInformation ) {
	$o = OmegaWikiAttributes::getInstance();

	$expressionMeaningsRecordEditor = new RecordUnorderedListEditor( $o->expressionMeanings, 3 );
	
	$exactMeaningsEditor = getExpressionMeaningsEditor( $o->expressionExactMeanings, true, $viewInformation );
	$expressionMeaningsRecordEditor->addEditor( $exactMeaningsEditor );
	$approximateMeaningsEditor = getExpressionMeaningsEditor( $o->expressionApproximateMeanings, false, $viewInformation ) ;
	$expressionMeaningsRecordEditor->addEditor( $approximateMeaningsEditor );

	$expressionMeaningsRecordEditor->expandEditor( $exactMeaningsEditor );

	if ( $viewInformation->filterLanguageId == 0 ) {
		// show all languages
		$expressionEditor = new RecordSpanEditor( $o->expression, ': ', ' - ' );
		$expressionEditor->addEditor( new DropdownLanguageEditor( $o->language, new SimplePermissionController( false ), true ) );

		$expressionsEditor = new RecordSetListEditor(
			$o->expressions,
			new SimplePermissionController( true ),
			new ShowEditFieldChecker( true ),
			new AllowAddController( true ),
			false,
			false,
			new ExpressionController( $spelling, $viewInformation->filterLanguageId ),
			2, // headerLevel
			true // childrenExpanded
		);
		$expressionsEditor->setCollapsible( false );
		$expressionsEditor->setCaptionEditor( $expressionEditor );
		$expressionsEditor->setValueEditor( $expressionMeaningsRecordEditor );
	}
	else {
		// show only one language
		$expressionEditor = new RecordSubRecordEditor( $o->expression );
		$expressionEditor->setSubRecordEditor( $expressionMeaningsRecordEditor );
		
		$expressionsEditor = new RecordSetFirstRecordEditor(
			$o->expressions,
			new SimplePermissionController( true ),
			new ShowEditFieldChecker( true ),
			new AllowAddController( true ),
			false,
			false,
			new ExpressionController( $spelling, $viewInformation->filterLanguageId )
		);
		$expressionsEditor->setRecordEditor( $expressionEditor );
	}

	return $expressionsEditor;
}
function getTransactionOverview( $recordSet, $showRollBackOptions ) {

	$o = OmegaWikiAttributes::getInstance();

	$captionEditor = new RecordSpanEditor( $o->transaction, ': ', ', ', false );
	$captionEditor->addEditor( new TimestampEditor( $o->timestamp, new SimplePermissionController( false ), false ) );
	$captionEditor->addEditor( new UserEditor( $o->user, new SimplePermissionController( false ), false ) );
	$captionEditor->addEditor( new TextEditor( $o->summary, new SimplePermissionController( false ), false ) );
	
	$valueEditor = new RecordUnorderedListEditor( $o->updatesInTransaction, 5 );
	$valueEditor->addEditor( getUpdatedDefinedMeaningDefinitionEditor( $o->updatedDefinition, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedAlternativeDefinitionsEditor( $o->updatedAlternativeDefinitions, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedAlternativeDefinitionTextEditor( $o->updatedAlternativeDefinitionText, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedSyntransesEditor( $o->updatedSyntranses, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedRelationsEditor( $o->updatedRelations, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedClassAttributesEditor( $o->updatedClassAttributes, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedClassMembershipEditor( $o->updatedClassMembership, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedCollectionMembershipEditor( $o->updatedCollectionMembership, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedLinkEditor( $o->updatedLink, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedTextEditor( $o->updatedText, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedTranslatedTextPropertyEditor( $o->updatedTranslatedTextProperty, $showRollBackOptions ) );
	$valueEditor->addEditor( getUpdatedTranslatedTextEditor( $o->updatedTranslatedText, $showRollBackOptions ) );
	
	$editor = new RecordSetListEditor( null, new SimplePermissionController( false ), new ShowEditFieldChecker( true ), new AllowAddController( false ), false, false, null, 4, false );
	$editor->setCaptionEditor( $captionEditor );
	$editor->setValueEditor( $valueEditor );
	
	return $editor->view( new IdStack( "transaction" ), $recordSet );
}