Eclipse PreferencePage“Apply”和“OK”灰显

时间:2015-09-29 10:01:29

标签: java eclipse

我是Eclipse PreferencePages的新手,我正在为我的项目创建一个新的FieldEditorPreferencePage。但是,让FileFieldEditors()DirectoryFieldEditors()在我的自定义首选项页面中显示“应用”和“确定”按钮。另一方面,另一个FieldEditors(布尔 - 和组合 - )不会禁用“应用”和“确定”按钮。

此外,将所有内容更改为Xtext的LanguageRootPreferencePage似乎也可以正常工作(虽然我不想使用它,因为我希望自定义首选项页面显示在它自己的选项卡中)。

例如:

//Simplified example of code
public class XPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage, IWorkbenchPropertyPage {
   public XPreferencePage() {
      super(FieldEditorPreferencePage.GRID);
      setDescription("something");
   }

   protected void initialize() {
      super.initalize();
      //IPropertyChangeListeners go here
   }

   protected void createFieldEditors() {
      //"Apply" and "OK" works here
      g = new BooleanFieldEditor(SConstants.GENERATOR, "Generate Bindings", getFieldEditorParent());
      addField(g);

      //"Apply" and "OK" is greyed-out starting here
      gp = new FileFieldEditor(SConstants.GENERATOR_PATH, "Generator Path:", false, 0, getFieldEditorParent());
      gp.setEmptyStringAllowed(true);
      addField(gp);
      ...
   }
...
}

有没有解决这个问题?我遵循了Eclipse Article-Field-Editors的教程,但它似乎对我没用。在线阅读说它可能是由于负IntegerField(我没有)或我正在尝试更改默认设置(我也没有)。

我正在使用Eclipse Mars 4.5.0。

更新:以上代码(部分)适用于FileFieldEditors。但是,出于某种原因,我需要点击FileFieldEditor字段,然后在“应用”和“确定”按钮之前选中并取消选中首选项页面中每个FileFieldEditor的{​​{1}}正上方的复选框再次可用。

此外,我还实现了FileFieldEditor,当取消选中某些复选框时,会停用某些字段,这意味着“检查并取消选中”解决方法对我来说不起作用。我也尝试将默认焦点设置为我的一个复选框但不起作用

1 个答案:

答案 0 :(得分:0)

FileFieldEditor(String name, String labelText, Composite parent) defalult验证文本小部件松散焦点时的路径,即您将无效的焦点作为默认值。 对于例如如果你给C:\\User\\XXX,那么这条路径应该是物理存在的,只有它不会变灰并且应用按钮。

您还可以通过设置验证方法来使用下面的构造函数。

FileFieldEditor(String name, String labelText,boolean enforceAbsolute, int validationStrategy, Composite parent)

validationStrategy

的值
  • 1,编辑器仅在文本小部件时执行验证 失去焦点。
  • 0表示编辑器在每个键后执行验证 中风。