Eclipse工作台中的Preference(2)

英文原文

Translated by Frank

Eclipse工作台中的Preference(2)

plugin.xml中定义preference

现在我们已经定义了preference,下一步,我们想为用户提供一种设置preference的值的方法。工作台的preference页可以在preferences对话框中找到,而Preference对话框可以通过Window->Preferences菜单组找到。为了使你定义的插件和其它的Eclipse插件看起来让人感觉风格一致,你应该使用plugin.xml来给preferences对话框添加preference页。在plugin.xml中定义preference页是这样的:

<extension point="org.eclipse.ui.preferencePages">
<page id="BadWordsPreferencePage"
name="Bad Words"
class="org.eclipse.ui.articles.badwordchecker.BadWordsPreferencePage">
</page>

<page id="BadWordsColorPreferencePage"
name="Colors"
class="org.eclipse.ui.articles.badwordchecker.BadWordsColorPreferencePage"
category="BadWordsPreferencePage">
</page>
</extension>
 
  

上面的定义,在page的列表中设置了Preference的名字(<imagedata o:href="http://www.eclipse.org/articles/Article-Preferences/images/tag_1.gif" src="./Preference%20In%20Eclipse%20UI(CN).files/image002.gif"></imagedata>),并且指定了preference页的类名(<shape type="#_x0000_t75" coordsize="21600,21600" alt="" style="width: 18pt; height: 9.75pt;" id="_x0000_i1038"></shape><imagedata o:href="http://www.eclipse.org/articles/Article-Preferences/images/tag_2.gif" src="./Preference%20In%20Eclipse%20UI(CN).files/image001.gif"></imagedata>)。这个类必须与IWorkbenchPreferencePage保持一致,这意味着这个类必须以IWorkbenchPreferencePage为接口

在第二个定义中,有一个category<shape type="#_x0000_t75" coordsize="21600,21600" alt="" style="width: 18pt; height: 9.75pt;" id="_x0000_i1042"></shape><imagedata o:href="http://www.eclipse.org/articles/Article-Preferences/images/tag_3.gif" src="./Preference%20In%20Eclipse%20UI(CN).files/image003.gif"></imagedata>)标记,它用来标识在preference对话框中的列表中,一个页面作为另外一个页面的子页面。当希望把一系列彼此相关的页面放在一起的时候,为了减少preference页面的数量,这个功能非常有用。在plugin.xml文件中,当把父页面的id值作为这个页面的category的值的时候,这个页面就成了父页面的子页面。如果某个页面没有父页面,那么它就作为根的子页面。正如下图一所看到的,preference对话框的页面显示如下:

1.显示Bad WordsColor preferencePreference对话框

Color Preference

Color preference页是一个简单的例子,它使用了JFace 中一个简单的fileld editor来管理它的值。开始我们应该定一个preference页的类。在preference对话框中所有的类必须继承自IWorkbenchPreferencePageEclipse包含类PreferencePage,这个类实现了大多数Preference所需要的API。当OK按钮按下时,PreferenceDialog就会保存preference store。如果你希望使用PreferencePage代替Window->Preferences中默认的对话框,那么你必须确保在改变应用后保存preference store

我们的preference页的类的定义如下:
 

class BadWordsColorPreferencePage
extends PreferencePage
implements IWorkbenchPreferencePage

一旦我们定义了页,我们必须对它进行初始化。基于这个目的,IworkbenchPreferencePage指定了init(IWorkbench)函数。我们将不为这个页面使用参数。我们的实现仅仅是为这个页面设置preference

public void init(IWorkbench workbench) {
//Initialize the preference store we wish to use
setPreferenceStore(BadWordCheckerPlugin.getDefault().getPreferenceStore());
}
 
 
其它的我们必须实现的函数是createContents()。我们所要做的是使用ColorFieldEditor设置preference。同样,我们也建议实现performDefaults以便重置插件的值,使preference能够恢复到初始默认状态。我么也要实现performOK函数,这样的插件就可以子在preference store中存储用户定义的prefenece。因为ColorFieldEditor有现成的读取默认设置的代码,也有为一个preference存储结果的应用,所以我们的实现相当简单。prenference存储结果的应用在performOK中定义,而读取默认设置的就是performDefaults,可以在ColorFieldEditor调用相应的方法。可以参见图2种的Color preference页。

protected void performDefaults() {
colorEditor.loadDefault();
}
/**
* Save the color preference to the preference store.
*/
public boolean performOk() {
colorEditor.store();
return super.performOk();
}

2:显示Color preferencepreference对话框。

(To be continued)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值