我在eclipse中创建了一个弹出菜单和首选项页面。我想根据用户在首选项页面中存储的值启用/禁用菜单项。
我怎样才能实现它?
以下是代码。
Plugin.xml - 添加了一个菜单选项和与之关联的命令。
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="com.eclipse.plugin.commands.ActionHandler"
id="com.eclipse.plugin.commands.Action"
name="Action">
</command>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:org.eclipse.ui.main.menu">
<menu
id="Menu"
label="CustomMenu">
<command
commandId="com.eclipse.plugin.commands.Action"
label="Action"
style="push"
tooltip="">
</command>
</menu>
</menuContribution>
</extension>
以下处理程序用于执行单击菜单项的操作。
public class ActionHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
//some action here
return null;
}
}
当用户点击“确定”时,我需要停用菜单项。首选项页面上的按钮
public class CustomPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
.....
@Override
public boolean performOk() {
// Here i need to disable or gey out menu option
super.performOk();
return true;
}
.....
}
我已经读过Handler可以用条件(activeWhen)定义,在这些条件下我们可以定义处理程序对命令有效的条件。 我们怎样才能在这里实现呢?