content: package org.eclipse.jdt.experimental.ui.preferences;
  
  import org.eclipse.jdt.internal.ui.JavaPlugin;
  import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
  import org.eclipse.jdt.internal.ui.preferences.FilteredPreferenceTree.PreferenceTreeNode;
  import org.eclipse.jdt.internal.ui.preferences.OptionsConfigurationBlock;
  import org.eclipse.jdt.internal.ui.preferences.ScrolledPageContent;
  import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener;
  import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
  import org.eclipse.jface.dialogs.IDialogSettings;
  import org.eclipse.jface.layout.PixelConverter;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.events.SelectionAdapter;
  import org.eclipse.swt.events.SelectionEvent;
  import org.eclipse.swt.graphics.Font;
  import org.eclipse.swt.layout.GridData;
  import org.eclipse.swt.layout.GridLayout;
  import org.eclipse.swt.widgets.Button;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.swt.widgets.Control;
  import org.eclipse.ui.forms.widgets.ExpandableComposite;
  import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
  
  public class JavaEditorCodeMiningConfigurationBlock extends OptionsConfigurationBlock {
  
  	// Preference store keys, see JavaCore.getOptions
  
  	// --------------------- General
  
  	private static final Key PREF_SHOW_REFERENCES = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_REFERENCES);
  
  	private static final Key PREF_SHOW_CLASS_REFERENCES = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_CLASS_REFERENCES);
  
  	private static final Key PREF_SHOW_METHOD_REFERENCES = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_METHOD_REFERENCES);
  
  	private static final Key PREF_SHOW_REFERENCES_AT_LEAST_ONE = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_REFERENCES_AT_LEAST_ONE);
  
  	private static final Key PREF_SHOW_IMPLEMENTATIONS = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_IMPLEMENTATIONS);
  
  	private static final Key PREF_SHOW_IMPLEMENTATIONS_AT_LEAST_ONE = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_IMPLEMENTATIONS_AT_LEAST_ONE);
  
  	public static final Key PREF_SHOW_END_STATEMENT = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_END_STATEMENT);
  
  	public static final Key PREF_SHOW_END_STATEMENT_MIN_LINE_NUMBER = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_END_STATEMENT_MIN_LINE_NUMBER);
  
  	private static final Key PREF_SHOW_MAIN_RUN = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_MAIN_RUN);
  
  	private static final Key PREF_SHOW_MAIN_DEBUG = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_MAIN_DEBUG);
  
  	private static final Key PREF_SHOW_JAVA10_VAR_TYPE = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_JAVA10_VAR_TYPE);
  
  	// --------------------- Method parameter
  
  	public static final Key PREF_SHOW_METHOD_PARAMETER_NAMES = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_METHOD_PARAMETER_NAMES);
  
  	public static final Key PREF_SHOW_METHOD_PARAMETER_TYPES = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_METHOD_PARAMETER_TYPES);
  
  	public static final Key PREF_SHOW_METHOD_PARAMETER_ONLY_FOR_LITERAL = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_METHOD_PARAMETER_ONLY_FOR_LITERAL);
  
  	public static final Key PREF_SHOW_METHOD_PARAMETER_BY_USING_FILTERS = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_METHOD_PARAMETER_BY_USING_FILTERS);
  
  	public static final Key PREF_SHOW_METHOD_PARAMETER_FILTERS_ENABLED = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_METHOD_PARAMETER_FILTERS_ENABLED);
  
  	public static final Key PREF_SHOW_METHOD_PARAMETER_FILTERS_DISABLED = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_METHOD_PARAMETER_FILTERS_DISABLED);
  
  	// --------------------- JUnit
  
  	public static final Key PREF_SHOW_JUNIT_STATUS = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_JUNIT_STATUS);
  
  	public static final Key PREF_SHOW_JUNIT_RUN = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_JUNIT_RUN);
  
  	public static final Key PREF_SHOW_JUNIT_DEBUG = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_JUNIT_DEBUG);
  
  	public static final Key PREF_SHOW_VARIABLE_VALUE_WHILE_DEBUGGING = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_VARIABLE_VALUE_WHILE_DEBUGGING);
  
  	public static final Key PREF_SHOW_REVISION_RECENT_CHANGE = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_REVISION_RECENT_CHANGE);
  
  	public static final Key PREF_SHOW_REVISION_RECENT_CHANGE_WITH_AVATAR = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_REVISION_RECENT_CHANGE_WITH_AVATAR);
  
  	public static final Key PREF_SHOW_REVISION_RECENT_CHANGE_WITH_DATE = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_REVISION_RECENT_CHANGE_WITH_DATE); // $NON-NLS-1$
  
  	public static final Key PREF_SHOW_REVISION_AUTHORS = getJDTUIKey(
  			MyPreferenceConstants.EDITOR_JAVA_CODEMINING_SHOW_REVISION_AUTHORS); // $NON-NLS-1$
  
  	private static final String SETTINGS_SECTION_NAME = "JavaEditorCodeMiningConfigurationBlock"; // $NON-NLS-1
  
  	private static final String[] TRUE_FALSE = new String[] { "true", "false" }; //$NON-NLS-1$ //$NON-NLS-2$
  
  	private PixelConverter fPixelConverter;
  
  	private PreferenceTree fFilteredPrefTree;
  
  	private JavaMethodFiltersTable fJavaMethodFiltersTable;
  
  	public JavaEditorCodeMiningConfigurationBlock(IStatusChangeListener context,
  			IWorkbenchPreferenceContainer container) {
  		super(context, null, getAllKeys(), container);
  	}
  
  	public static Key[] getAllKeys() {
  		return new Key[] { PREF_SHOW_REFERENCES, PREF_SHOW_CLASS_REFERENCES, PREF_SHOW_METHOD_REFERENCES,
  				PREF_SHOW_REFERENCES_AT_LEAST_ONE, PREF_SHOW_IMPLEMENTATIONS, PREF_SHOW_IMPLEMENTATIONS_AT_LEAST_ONE,
  				PREF_SHOW_END_STATEMENT, PREF_SHOW_END_STATEMENT_MIN_LINE_NUMBER, PREF_SHOW_MAIN_RUN,
  				PREF_SHOW_MAIN_DEBUG, PREF_SHOW_JAVA10_VAR_TYPE, PREF_SHOW_METHOD_PARAMETER_NAMES,
  				PREF_SHOW_METHOD_PARAMETER_TYPES, PREF_SHOW_METHOD_PARAMETER_ONLY_FOR_LITERAL,
  				PREF_SHOW_METHOD_PARAMETER_BY_USING_FILTERS, PREF_SHOW_METHOD_PARAMETER_FILTERS_ENABLED,
  				PREF_SHOW_METHOD_PARAMETER_FILTERS_DISABLED, PREF_SHOW_JUNIT_STATUS, PREF_SHOW_JUNIT_RUN,
  				PREF_SHOW_JUNIT_DEBUG, PREF_SHOW_VARIABLE_VALUE_WHILE_DEBUGGING, PREF_SHOW_REVISION_RECENT_CHANGE,
  				PREF_SHOW_REVISION_RECENT_CHANGE_WITH_AVATAR, PREF_SHOW_REVISION_RECENT_CHANGE_WITH_DATE,
  				PREF_SHOW_REVISION_AUTHORS };
  	}
  
  	/*
  	 * @see org.eclipse.jface.preference.PreferencePage#createContents(Composite)
  	 */
  	@Override
  	protected Control createContents(Composite parent) {
  		fPixelConverter = new PixelConverter(parent);
  		setShell(parent.getShell());
  
  		Composite mainComp = new Composite(parent, SWT.NONE);
  		mainComp.setFont(parent.getFont());
  		GridLayout layout = new GridLayout();
  		layout.marginHeight = 0;
  		layout.marginWidth = 0;
  		mainComp.setLayout(layout);
  
  		createIgnoreOptionalProblemsLink(mainComp);
  
  		Composite spacer = new Composite(mainComp, SWT.NONE);
  		spacer.setLayoutData(new GridData(0, 0));
  
  		Composite commonComposite = createStyleTabContent(mainComp);
  		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
  		gridData.heightHint = fPixelConverter.convertHeightInCharsToPixels(30);
  		commonComposite.setLayoutData(gridData);
  
  		validateSettings(null, null, null);
  
  		return mainComp;
  	}
  
  	private Composite createStyleTabContent(Composite folder) {
  		fFilteredPrefTree = new PreferenceTree(this, folder,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_common_description);
  		final ScrolledPageContent sc1 = fFilteredPrefTree.getScrolledPageContent();
  
  		int nColumns = 3;
  		Composite composite = sc1.getBody();
  		GridLayout layout = new GridLayout(nColumns, false);
  		layout.marginHeight = 0;
  		layout.marginWidth = 0;
  		composite.setLayout(layout);
  
  		// --- General
  		createGeneralSection(nColumns, composite);
  		// --- Method parameter
  		createMethodParameterSection(nColumns, composite);
  		// --- JUnit
  		createJUnitSection(nColumns, composite);
  		// --- Debugging
  		createDebuggingSection(nColumns, composite);
  		// --- Git
  		createGitSection(nColumns, composite);
  
  		IDialogSettings settingsSection = JavaPlugin.getDefault().getDialogSettings().getSection(SETTINGS_SECTION_NAME);
  		restoreSectionExpansionStates(settingsSection);
  
  		return sc1;
  	}
  
  	private void createGeneralSection(int nColumns, Composite parent) {
  		int defaultIndent = 0;
  		int extraIndent = LayoutUtil.getIndent();
  		String label = MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_section_general;
  		Key twistieKey = OptionsConfigurationBlock.getLocalKey("JavaEditorCodeMiningPreferencePage_section_general"); //$NON-NLS-1$
  		PreferenceTreeNode<?> section = fFilteredPrefTree.addExpandableComposite(parent, label, nColumns, twistieKey,
  				null, false);
  		ExpandableComposite excomposite = getExpandableComposite(twistieKey);
  
  		Composite inner = createInnerComposite(excomposite, nColumns, parent.getFont());
  
  		// - Show references
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showReferences_label, PREF_SHOW_REFERENCES,
  				TRUE_FALSE, defaultIndent, section);
  		// - Show references (for Classes)
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showReferencesClass_label,
  				PREF_SHOW_CLASS_REFERENCES, TRUE_FALSE, extraIndent, section);
  		// - Show references (for Methods)
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showReferencesMethod_label,
  				PREF_SHOW_METHOD_REFERENCES, TRUE_FALSE, extraIndent, section);
  		// - Show references (Only if there is at least one reference)
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showReferences_atLeastOne_label,
  				PREF_SHOW_REFERENCES_AT_LEAST_ONE, TRUE_FALSE, extraIndent, section);
  
  		// - Show implementations
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showImplementations_label,
  				PREF_SHOW_IMPLEMENTATIONS, TRUE_FALSE, defaultIndent, section);
  		// - Show implementations (Only if there is at least one implementation)
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showImplementations_atLeastOne_label,
  				PREF_SHOW_IMPLEMENTATIONS_AT_LEAST_ONE, TRUE_FALSE, extraIndent, section);
  
  		// - Show end statement
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showEndStatement_label,
  				PREF_SHOW_END_STATEMENT, TRUE_FALSE, defaultIndent, section);
  		// - Show end statement min line number
  		fFilteredPrefTree.addTextField(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showEndStatement_minLineNumber_label,
  				PREF_SHOW_END_STATEMENT_MIN_LINE_NUMBER, extraIndent, 0, section);
  
  		// - Show type of Java9 'var' declaration
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showJava10VarType_label,
  				PREF_SHOW_JAVA10_VAR_TYPE, TRUE_FALSE, defaultIndent, section);
  	}
  
  	private void createMethodParameterSection(int nColumns, Composite parent) {
  		final int defaultIndent = 0;
  		String label = MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_section_methodParameter;
  		Key twistieKey = OptionsConfigurationBlock
  				.getLocalKey("JavaEditorCodeMiningPreferencePage_section_methodParameter"); //$NON-NLS-1$
  		PreferenceTreeNode<?> section = fFilteredPrefTree.addExpandableComposite(parent, label, nColumns, twistieKey,
  				null, false);
  		ExpandableComposite excomposite = getExpandableComposite(twistieKey);
  
  		Composite inner = createInnerComposite(excomposite, nColumns, parent.getFont());
  
  		// - Show method parameter names
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showMethodParameterNames_label,
  				PREF_SHOW_METHOD_PARAMETER_NAMES, TRUE_FALSE, defaultIndent, section);
  		// - Show method parameter types
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showMethodParameterTypes_label,
  				PREF_SHOW_METHOD_PARAMETER_TYPES, TRUE_FALSE, defaultIndent, section);
  		// - Show parameter only for literal
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showMethodParameterOnlyForLiteral_label,
  				PREF_SHOW_METHOD_PARAMETER_ONLY_FOR_LITERAL, TRUE_FALSE, defaultIndent, section);
  		// - Show parameter by using filters
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showMethodParameterByUsingFilters_label,
  				PREF_SHOW_METHOD_PARAMETER_BY_USING_FILTERS, TRUE_FALSE, defaultIndent, section);
  
  		fJavaMethodFiltersTable = new JavaMethodFiltersTable();
  		fJavaMethodFiltersTable.createControl(inner);
  		fJavaMethodFiltersTable.refresh(getValue(PREF_SHOW_METHOD_PARAMETER_FILTERS_ENABLED),
  				getValue(PREF_SHOW_METHOD_PARAMETER_FILTERS_DISABLED));
  
  		Button useFiltersCheckbox = getCheckBox(PREF_SHOW_METHOD_PARAMETER_BY_USING_FILTERS);
  		fJavaMethodFiltersTable.setEnabled(useFiltersCheckbox.getSelection());
  		useFiltersCheckbox.addSelectionListener(new SelectionAdapter() {
  			@Override
  			public void widgetSelected(SelectionEvent e) {
  				fJavaMethodFiltersTable.setEnabled(useFiltersCheckbox.getSelection());
  			}
  		});
  	}
  
  	private void createJUnitSection(int nColumns, Composite parent) {
  		final int defaultIndent = 0;
  		String label = MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_section_junit;
  		Key twistieKey = OptionsConfigurationBlock.getLocalKey("JavaEditorCodeMiningPreferencePage_section_junit"); //$NON-NLS-1$
  		PreferenceTreeNode<?> section = fFilteredPrefTree.addExpandableComposite(parent, label, nColumns, twistieKey,
  				null, false);
  		ExpandableComposite excomposite = getExpandableComposite(twistieKey);
  
  		Composite inner = createInnerComposite(excomposite, nColumns, parent.getFont());
  
  		// - Show JUnit status
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showJUnitStatus_label,
  				PREF_SHOW_JUNIT_STATUS, TRUE_FALSE, defaultIndent, section);
  		// - Show JUnit run
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showJUnitRun_label, PREF_SHOW_JUNIT_RUN,
  				TRUE_FALSE, defaultIndent, section);
  		// - Show JUnit debug
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showJUnitDebug_label,
  				PREF_SHOW_JUNIT_DEBUG, TRUE_FALSE, defaultIndent, section);
  	}
  
  	private void createDebuggingSection(int nColumns, Composite parent) {
  		final int defaultIndent = 0;
  		String label = MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_section_debugging;
  		Key twistieKey = OptionsConfigurationBlock.getLocalKey("JavaEditorCodeMiningPreferencePage_section_debugging"); //$NON-NLS-1$
  		PreferenceTreeNode<?> section = fFilteredPrefTree.addExpandableComposite(parent, label, nColumns, twistieKey,
  				null, false);
  		ExpandableComposite excomposite = getExpandableComposite(twistieKey);
  
  		Composite inner = createInnerComposite(excomposite, nColumns, parent.getFont());
  
  		// - Show main run/debug
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showMainRun_label, PREF_SHOW_MAIN_RUN,
  				TRUE_FALSE, defaultIndent, section);
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showMainDebug_label, PREF_SHOW_MAIN_DEBUG,
  				TRUE_FALSE, defaultIndent, section);
  
  		// - Show variable value while debugging
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showVariableValueWhileDebugging_label,
  				PREF_SHOW_VARIABLE_VALUE_WHILE_DEBUGGING, TRUE_FALSE, defaultIndent, section);
  	}
  
  	private void createGitSection(int nColumns, Composite parent) {
  		final int defaultIndent = 0;
  		int extraIndent = LayoutUtil.getIndent();
  		String label = MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_section_scsm;
  		Key twistieKey = OptionsConfigurationBlock.getLocalKey("JavaEditorCodeMiningPreferencePage_section_sccm"); //$NON-NLS-1$
  		PreferenceTreeNode<?> section = fFilteredPrefTree.addExpandableComposite(parent, label, nColumns, twistieKey,
  				null, false);
  		ExpandableComposite excomposite = getExpandableComposite(twistieKey);
  
  		Composite inner = createInnerComposite(excomposite, nColumns, parent.getFont());
  
  		// - Show git recent change
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showRevisionRecentChange,
  				PREF_SHOW_REVISION_RECENT_CHANGE, TRUE_FALSE, defaultIndent, section);
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showRevisionRecentChangeWithAvatar,
  				PREF_SHOW_REVISION_RECENT_CHANGE_WITH_AVATAR, TRUE_FALSE, extraIndent, section);
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showRevisionRecentChangeWithDate,
  				PREF_SHOW_REVISION_RECENT_CHANGE_WITH_DATE, TRUE_FALSE, extraIndent, section);
  		// Show authors
  		fFilteredPrefTree.addCheckBox(inner,
  				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showRevisionAuthors,
  				PREF_SHOW_REVISION_AUTHORS, TRUE_FALSE, defaultIndent, section);
  
  		// - Show git changes
  //		fFilteredPrefTree.addCheckBox(inner,
  //				MyPreferencesMessages.JavaEditorCodeMiningConfigurationBlock_showGitChanges_label,
  //				PREF_SHOW_GIT_CHANGES, enabledDisabled, defaultIndent, section);
  	}
  
  	private Composite createInnerComposite(ExpandableComposite excomposite, int nColumns, Font font) {
  		Composite inner = new Composite(excomposite, SWT.NONE);
  		inner.setFont(font);
  		inner.setLayout(new GridLayout(nColumns, false));
  		excomposite.setClient(inner);
  		return inner;
  	}
  
  	@Override
  	protected void validateSettings(Key changedKey, String oldValue, String newValue) {
  		if (!areSettingsEnabled()) {
  			return;
  		}
  		fContext.statusChanged(new StatusInfo());
  	}
  
  	@Override
  	protected String[] getFullBuildDialogStrings(boolean workspaceSettings) {
  		return null;
  	}
  
  	@Override
  	public void dispose() {
  		IDialogSettings section = JavaPlugin.getDefault().getDialogSettings().addNewSection(SETTINGS_SECTION_NAME);
  		storeSectionExpansionStates(section);
  		super.dispose();
  	}
  
  	@Override
  	protected boolean processChanges(IWorkbenchPreferenceContainer container) {
  		String enabled = fJavaMethodFiltersTable.getEnabled();
  		setValue(PREF_SHOW_METHOD_PARAMETER_FILTERS_ENABLED, enabled);
  		String disabled = fJavaMethodFiltersTable.getDisabled();
  		setValue(PREF_SHOW_METHOD_PARAMETER_FILTERS_DISABLED, disabled);
  		return super.processChanges(container);
  	}
  
  	@Override
  	protected void updateControls() {
  		fJavaMethodFiltersTable.refresh(getValue(PREF_SHOW_METHOD_PARAMETER_FILTERS_ENABLED),
  				getValue(PREF_SHOW_METHOD_PARAMETER_FILTERS_DISABLED));
  		super.updateControls();
  	}
  }
  