我正在为RCP应用程序为Eclipse创建自己的PreferencePage。有一个FileFieldEditor,我希望通过BooleanFieldEditor来启用和禁用它。
现在我不知道如何实现这一点。
public class PreferencePage extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
FileFieldEditor subversionPathEditor;
BooleanFieldEditor subversionSupportBooleanFieldEditor;
public PreferencePage() {
super(GRID);
setPreferenceStore(Activator.getDefault().getPreferenceStore());
setDescription(""); //$NON-NLS-1$
}
protected void createFieldEditors() {
subversionSupportBooleanFieldEditor = new BooleanFieldEditor
("subversionSupport", "Enable Subversion support", BooleanFieldEditor.DEFAULT, getFieldEditorParent());
System.out.println(subversionSupportBooleanFieldEditor.getPreferenceName());
subversionSupportBooleanFieldEditor.setPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if ("field_editor_value".equalsIgnoreCase(event.getProperty())) {
Boolean enabled = (Boolean)event.getNewValue();
subversionPathEditor.setEnabled(enabled, getFieldEditorParent());
}
}
});
addField(subversionSupportBooleanFieldEditor);
subversionPathEditor = new FileFieldEditor("SubversionPathEditor", "Subversion client executable: ", true,
FileFieldEditor.VALIDATE_ON_KEY_STROKE, getFieldEditorParent());
subversionPathEditor.setStringValue(VCSSettings.getSubversionPath());
addField(subversionPathEditor);有什么想法可以把代码放在哪里来启用和禁用FileFieldEditor?我知道如何启用/禁用,但是在哪种方法中放置了代码?
已经在createFieldEditors()、checkState()、updateFieldEditors()和createControl()中尝试过。
发布于 2014-11-13 14:34:44
您可以覆盖
@Override
public void propertyChange(PropertyChangeEvent event)
{
... extra here
super.propertyChange(event);
}方法来获取属性更改事件(对于所有字段)。
https://stackoverflow.com/questions/26909856
复制相似问题