fas*_*ava 2 java eclipse plugins
在eclipse中做PreferencePage的最佳方法是什么?
灵感来自这个主题:
可能有两类偏好:
那些只是编辑器,视图或构建器在需要时访问和获取的数据.
在第一种情况下,似乎最好的方法是使用a FieldEditorPreferencePage来显示,输入,验证和存储首选项.
为了获取值,子类可以提供方便的方法来获取首选项存储和查询并返回给定其id的值.
那些影响已经运行的编辑器或视图.
需要向打开的编辑者和/或视图通知发生的更改,以便他们可以相应地更新其视图.
这可以通过迭代FieldEditorPreferencPage.performOk()方法中受影响的编辑器和视图来完成,但这似乎会产生不合需要的耦合:首选项页面必须知道如何更新相应的查看器.
另一种可能是使用的事实,FieldEditorPreferencePage是IPropertyChangeListener在财产的变化,因此编辑人员可以注册兴趣是影响了自己的看法.这种方法的缺点是,当删除编辑器或视图时必须删除兴趣,或者如果在关闭查看器后更改首选项页面,则会引发异常.
错误143727引用了有关首选项的最新(即"Eclipse3.x")文章:
它附带的"badwordchecker"首选项页面很有趣,可以查看:
/*
* @see IWorkbenchPreferencePage#init(IWorkbench)
*/
public void init(IWorkbench workbench) {
//Initialize the preference store we wish to use
setPreferenceStore(BadWordCheckerPlugin.getDefault().getPreferenceStore());
}
/**
* Performs special processing when this page's Restore Defaults button has been pressed.
* Sets the contents of the nameEntry field to
* be the default
*/
protected void performDefaults() {
badWordList.setItems(BadWordCheckerPlugin.getDefault().getDefaultBadWordsPreference());
}
/**
* Method declared on IPreferencePage. Save the
* author name to the preference store.
*/
public boolean performOk() {
BadWordCheckerPlugin.getDefault().setBadWordsPreference(badWordList.getItems());
return super.performOk();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
691 次 |
| 最近记录: |