Package org.cfeclipse.cfml.preferences

Source Code of org.cfeclipse.cfml.preferences.BrowserPreferencePage$FileFieldEditorSpecial

package org.cfeclipse.cfml.preferences;

import java.io.File;

import org.cfeclipse.cfml.CFMLPlugin;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.FileFieldEditor;
import org.eclipse.jface.preference.StringButtonFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

public class BrowserPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

  private FileFieldEditorSpecial primaryBrowserField;
  private FileFieldEditorSpecial secondaryBrowserField;

  public void init(IWorkbench workbench) {
    // TODO Auto-generated method stub
  }

  public BrowserPreferencePage() {
    super(GRID);
    setPreferenceStore(CFMLPlugin.getDefault().getPreferenceStore());
  }

  public void createFieldEditors() {
    primaryBrowserField = new FileFieldEditorSpecial(BrowserPreferenceConstants.P_PRIMARY_BROWSER_PATH,
        "Primary Browser", getFieldEditorParent());
    secondaryBrowserField = new FileFieldEditorSpecial(BrowserPreferenceConstants.P_SECONDARY_BROWSER_PATH,
        "Secondary Browser", getFieldEditorParent());
    addField(primaryBrowserField);
    addField(secondaryBrowserField);
    addField(new StringFieldEditor(BrowserPreferenceConstants.P_TESTCASE_QUERYSTRING, "Querystring for TestCases",
        getFieldEditorParent()));
  }

  /*
   * (non-Javadoc)
   *
   * @see
   * org.eclipse.jface.preference.FieldEditorPreferencePage#propertyChange
   * (org.eclipse.jface.util.PropertyChangeEvent)
   *
   * We override this because OS X "applications" are really app "bundles", so
   * resolve to a Directory vs a File.
   *
   * All the craziness below is to override the default validation stuff.
   * Crazy.
   */
  public void propertyChange(PropertyChangeEvent event) {
    super.propertyChange(event);
    if (event.getProperty().equals(FieldEditor.VALUE)) {
      checkState();
    }
  }

  public class FileFieldEditorSpecial extends FileFieldEditor {
    public FileFieldEditorSpecial(String name, String labelText, Composite parent) {
      super(name, labelText, true, StringButtonFieldEditor.VALIDATE_ON_KEY_STROKE, parent);
    }

    @Override
    protected void refreshValidState() {
      // TODO Auto-generated method stub
      setErrorMessage(null);
      super.refreshValidState();
      showErrorMessage();
    }

    @Override
    protected boolean checkState() {
      // TODO Auto-generated method stub
      return isValid();
    }

    public boolean isValid() {

      if (getStringValue().length() == 0) {
        return true;
      } else if (new File(getStringValue()).exists()) {
        clearErrorMessage();
        return true;
      }
      setErrorMessage("Cannot find the specified application");
      showErrorMessage();
      return false;
    }
  }

}
TOP

Related Classes of org.cfeclipse.cfml.preferences.BrowserPreferencePage$FileFieldEditorSpecial

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.