我在Eclipse中有一个首选项页面,其中包含一个复选框。这是父母首选项页面。
基于父页面中某些复选框的值,子首选项页面应包含不同的字段编辑器。
示例:如果选中父项中的复选框,则在子项中创建一个文本字段。
当我按下Apply时,我想更新/重绘子页面。
我试图通过以下方式做到这一点:
我的子页面类如下:
public class MyChildPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage
覆盖setVisible方法:
@Override
public void setVisible(final boolean visible)
{
super.setVisible(visible);
if (visible)
createFieldEditors();
}
我的createFieldEditors方法每次都使用相同的Composite来创建字段。
仍然,没有任何更新。
在更改焦点/可见性时是否可以重新触发偏好页面的创建?
此问题未得到回答,它类似于: Refresh the contents of an eclipse preference page
答案 0 :(得分:0)
您可以尝试致电FieldEditorPreferencePage#initialize()
吗?这会在每个字段编辑器上调用load()
。
答案 1 :(得分:0)
您只能创建一次字段编辑器。
您可以覆盖propertyChange
的{{1}}方法,以了解每个首选项属性的更改:
FieldEditorPreferencePage