应用和确定按钮在日食首选项页面



Eclipse 首选项页面中的"应用"和"确定"按钮应该工作的标准和推荐方式是什么?

我检查并发现当我们单击应用或确定按钮时调用了 performOK(( 方法。这意味着如果我有一些计算或让说线程在 performOK(( 中启动并且用户首先单击应用,然后单击确定按钮,它将执行两次,如果用户单击应用并取消更改无论如何都会应用?

如果用户单击"应用"然后确定,有没有办法不执行两次代码?

@Override
protected void performApply() {
    this.performOk();
}
@Override
public boolean performOk() {
    PreferencesUtil.savePreferences();
    return super.performOk();
}

谢谢

您需要

记住,应用程序是通过覆盖performApply并设置标志来运行的。然后,您可以在performOk中测试标志并跳过执行相同的操作。

如果用户在按"应用"后更改了某些内容,请务必清除该标志。

所以像这样:

private boolean saveDone = false;

public boolean performOk() {
  if (!saveDone) {
    saveDone = true;
    store.setValue(Constants.ENABLE_DEFAULT_COLOR, this.defaultColoringCheckBox.getSelection());
    PreferencesUtil.addToPreferenceStore(viewer.getTable());
    PreferencesUtil.savePreferences();
  }
  return super.performOk();
}

设置saveDone = false页面中是否有任何更改。

我认为在

用户希望在单独的方法中应用更改时提取要执行的功能是有意义的。此方法从应用和确定调用。我不会在"performApply"中称"执行OK"。我想,在 performOk 中,首选项对话框的额外关闭然后由超级方法执行。

最新更新