我正在扩展一个扩展点org.eclipse.ui.actionSets
,我在其中创建元素actionSet
,其中包含action
元素。这个asctionset放在eclipse的Navigate菜单中。例如:
<actionSet
label="%CNavigationActionSet.label"
description="%CNavigationActionSet.description"
visible="false"
id="xxx.ui.NavigationActionSet">
<action
class="xxx.opentype.OpenTypeAction"
definitionId="xxx.navigate.opentype"
helpContextId="xxxui.open_type_action"
icon="icons/xxx.gif"
id="xxx.ui.actions.OpenType"
label="Open Element"
menubarPath="navigate/open.ext2"
toolbarPath="org.eclipse.search.searchActionSet/Search"
tooltip="%OpenTypeAction.tooltip">
</action>
</actionSet>
现在,我希望在Eclipse中满足某些条件时隐藏此操作。有没有办法在导航菜单中隐藏(将可见性设置为false等)? 现在最好的我想到的是在满足条件时禁用动作,但这还不够:
public class OpenTypeAction implements IWorkbenchWindowActionDelegate {
//... some code
@Override
public void selectionChanged(IAction action, ISelection selection) {
action.setEnabled(!areConditionsMet());
}
//... some code
}
/编辑:我的解决方案也是隐藏整个actionSet而不是动作,这可能吗? / Edit2:为了阐明我的条件 - 我的编辑器可以包含具有多个文件扩展名的文件,我想仅针对以特定文件扩展名结尾的文件显示此操作。