Eclipse plugin 根据首选项中的值启用或禁用eclipse菜单-org.eclipse.ui.actionset

Eclipse plugin 根据首选项中的值启用或禁用eclipse菜单-org.eclipse.ui.actionset,eclipse-plugin,Eclipse Plugin,我有一个eclipse插件,其中我使用ActionSet创建了菜单 <extension point="org.eclipse.ui.actionSets"> <actionSet description="My Sample" id="MySample.actionSet" label="My Sample" visible="true"> <menu id="mysample.actionset.menu1" label="My Samp

我有一个eclipse插件,其中我使用ActionSet创建了菜单

<extension point="org.eclipse.ui.actionSets">
    <actionSet description="My Sample"
   id="MySample.actionSet"
  label="My Sample"
 visible="true">
<menu
 id="mysample.actionset.menu1"
 label="My Sample">
 <groupMarker
   name="mysample.groupCreatesimilar">
 </groupMarker>
</menu>
<action
  class="org.mysample.actions.create.MyCreateCodeAction"
  definitionId="MySample.myCreateCode.command"
  id="MySample.myCreateCode.command"
  label="Create Sample Code"
  menubarPath="mysample.actionset.menu1/mysample.groupMarker2">
</action>
</actionSet>
</extension>

我需要根据首选项中的值启用或禁用其中一个菜单。当我使用下面的命令时,我能够实现这一点。但我不应该这样做。我必须让它与上面的代码(actionSet)一起工作。请建议如何做到这一点

<extension
     point="org.eclipse.ui.menus">
  <menuContribution
        locationURI="menu:org.eclipse.ui.main.menu?after=additions">
     <menu
           label="my label"
           id="myMenu.menu1">
        <command
              commandId="MySample.myCreateCode.command"
              mnemonic="S"
              id="MySample.myCreateCode.command">
        </command>
     </menu>
  </menuContribution>

    </extension>

整个
操作集
应该出现在
窗口/自定义透视图
对话框
命令组可用性
选项卡中,在该选项卡中可以打开/关闭操作集

要启用/禁用单个操作,您可能需要在操作代码中调用
action.setEnabled()
,类似于:

public class MyCodeCreateAction extends Action
{
  MyCodeCreateAction()
  {
    super();

    IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();

    setEnabled(prefs.getBoolean("preference"));

    prefs.addPropertyChangeListener(new PropertyChangeListener());
  }


  private class PropertyChangeListener implements IPropertyChangeListener
  {
    @Override
    public void propertyChange(final PropertyChangeEvent event)
    {
      if ("preference".equals(event.getProperty()))
       {
         final IPreferenceStore prefs = Activator.getDefault().getPreferenceStore();

         setEnabled(prefs.getBoolean("preference"));
       }
    }
  }
}

actionset
现在不推荐使用
org.eclipse.ui.menus
作为创建菜单的推荐方式。我的应用程序是旧版应用程序,因此我无法更改为使用org.eclipse.ui.menus。在这种情况下,我是否可以不执行启用/禁用?请您再详细说明一下