function getSynonymsAndTranslationsEditor( ViewInformation $viewInformation ) {
	global $synTransMeaningName;

	$o = OmegaWikiAttributes::getInstance();

	$tableEditor = new RecordSetTableEditor(
		$o->synonymsAndTranslations,
		new SimplePermissionController( true ),
		new ShowEditFieldChecker( true ),
		new AllowAddController( true ),
		true,
		false,
		new SynonymTranslationController( $viewInformation->filterLanguageId )
	);
	
	$tableEditor->addEditor( getExpressionTableCellEditor( $o->expression, $viewInformation ) );
	$tableEditor->addEditor( new BooleanEditor( $o->identicalMeaning, new SimplePermissionController( true ), true, true ) );
	
	addPropertyToColumnFilterEditors( $tableEditor, $viewInformation, $o->syntransId, $synTransMeaningName );
	
	$tableEditor->addEditor( new PopUpEditor(
		createObjectAttributesEditor( $viewInformation, $o->objectAttributes, wfMsgSc( "Property" ), wfMsgSc( "Value" ), $o->syntransId, $synTransMeaningName, $viewInformation->getLeftOverAttributeFilter() ),
		wfMsgSc( "PopupAnnotation" )
	) );

	addTableMetadataEditors( $tableEditor, $viewInformation );

	return $tableEditor;
}
function getUpdatedSyntransesEditor( $attribute, $showRollBackOptions ) {

	$o = OmegaWikiAttributes::getInstance();
		
	$editor = createTableViewer( $attribute );
	
	if ( $showRollBackOptions )
		$editor->addEditor( new RollbackEditor( $o->rollBack, false ) );
	
	$viewInformation = new ViewInformation();
	$viewInformation->queryTransactionInformation = new QueryLatestTransactionInformation();
		
	$editor->addEditor( createDefinedMeaningReferenceViewer( $o->definedMeaningReference ) );
	$editor->addEditor( getExpressionTableCellEditor( $o->expression, $viewInformation ) );
	$editor->addEditor( new BooleanEditor( $o->identicalMeaning, new SimplePermissionController( false ), false, false ) );
	$editor->addEditor( createShortTextViewer( $o->operation ) );
	$editor->addEditor( createBooleanViewer( $o->isLatest ) );
	
	return $editor;
}