JUnitStatusBarPreferencePage.java

package com.codeaffine.extras.jdt.internal.junitstatus;

import static com.codeaffine.extras.jdt.internal.prefs.WorkspaceScopePreferences.PREF_SHOW_JUNIT_STATUS_BAR;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

import com.codeaffine.extras.jdt.internal.JDTExtrasPlugin;
import com.codeaffine.extras.jdt.internal.prefs.ExpressionEvaluator;


public class JUnitStatusBarPreferencePage
  extends FieldEditorPreferencePage
  implements IWorkbenchPreferencePage
{

  public static final String ID = "com.codeaffine.extras.jdt.internal.JUnitStatusBarPreferencePage";

  private IWorkbench workbench;

  public JUnitStatusBarPreferencePage() {
    super( "JUnit Status Bar", FieldEditorPreferencePage.GRID );
    noDefaultAndApplyButton();
  }

  @Override
  public void init( IWorkbench workbench ) {
    this.workbench = workbench;
  }

  @Override
  public boolean performOk() {
    boolean result = super.performOk();
    new ExpressionEvaluator( workbench ).evaluate();
    return result;
  }

  @Override
  protected IPreferenceStore doGetPreferenceStore() {
    return JDTExtrasPlugin.getInstance().getPreferenceStore();
  }

  @Override
  protected void createFieldEditors() {
    String label = "&Show JUnit progress in the status bar";
    createBooleanFieldEditor( getFieldEditorParent(), label, PREF_SHOW_JUNIT_STATUS_BAR );
  }

  private void createBooleanFieldEditor( Composite parent, String label, String preferenceName ) {
    FieldEditor editor = new BooleanFieldEditor( preferenceName, label, parent );
    addField( editor );
  }
}