docs: protected void createOutputSectionItems(Composite composite, OutputConfiguration outputConfiguration) {
  		final Text defaultDirectoryField = addTextField(composite,
  				org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_Directory,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.OUTPUT_DIRECTORY), 0, 0);
  		addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_CreateDirectory,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.OUTPUT_CREATE_DIRECTORY), BOOLEAN_VALUES, 0);
  		addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_OverrideExistingResources,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.OUTPUT_OVERRIDE), BOOLEAN_VALUES, 0);
  		addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_CreatesDerivedResources,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.OUTPUT_DERIVED), BOOLEAN_VALUES, 0);
  		addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_CleanupDerivedResources,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.OUTPUT_CLEANUP_DERIVED), BOOLEAN_VALUES, 0);
  		addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_CleanDirectory,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.OUTPUT_CLEAN_DIRECTORY), BOOLEAN_VALUES, 0);
  		final Button installAsPrimaryButton = addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.BuilderConfigurationBlock_InstallDslAsPrimarySource,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.INSTALL_DSL_AS_PRIMARY_SOURCE), BOOLEAN_VALUES, 0);
  		final Button hideLocalButton = addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.BuilderConfigurationBlock_hideSyntheticLocalVariables,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.HIDE_LOCAL_SYNTHETIC_VARIABLES), BOOLEAN_VALUES, 0);
  		hideLocalButton.setEnabled(installAsPrimaryButton.getSelection());
  		installAsPrimaryButton.addSelectionListener(new SelectionAdapter() {
  			@Override
  			public void widgetSelected(SelectionEvent exception) {
  				hideLocalButton.setEnabled(installAsPrimaryButton.getSelection());
  			}
  		});
  		final GridData hideLocalButtonData = new GridData();
  		hideLocalButtonData.horizontalIndent = INDENT_AMOUNT;
  		hideLocalButton.setLayoutData(hideLocalButtonData);
  		addCheckBox(composite,
  				org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_KeepLocalHistory,
  				BuilderPreferenceAccess.getKey(outputConfiguration,
  						EclipseOutputConfigurationProvider.OUTPUT_KEEP_LOCAL_HISTORY), BOOLEAN_VALUES, 0);
  
  		if (getProject() != null && !outputConfiguration.getSourceFolders().isEmpty()) {
  			final Button outputPerSourceButton = addCheckBox(composite,
  					org.eclipse.xtext.builder.preferences.Messages.OutputConfigurationPage_UseOutputPerSourceFolder,
  					BuilderPreferenceAccess.getKey(outputConfiguration,
  							EclipseOutputConfigurationProvider.USE_OUTPUT_PER_SOURCE_FOLDER), BOOLEAN_VALUES, 0);
  			final Table table = createOutputFolderTable(composite, outputConfiguration, defaultDirectoryField);
  			table.setVisible(outputPerSourceButton.getSelection());
  			outputPerSourceButton.addSelectionListener(new SelectionAdapter() {
  				@Override
  				public void widgetSelected(SelectionEvent exception) {
  					table.setVisible(outputPerSourceButton.getSelection());
  				}
  			});
  		}
  	}