【问题标题】:How to programmatically (or via eclipse plugin.xml) enable context menu which is disabled by eclipse IDE?如何以编程方式(或通过 eclipse plugin.xml)启用被 eclipse IDE 禁用的上下文菜单?
【发布时间】:2015-10-14 15:23:28
【问题描述】:

在 CDT 中,如何以编程方式(或通过 eclipse plugin.xml)在右键单击项目“构建项目”时启用它的上下文菜单。这样我就可以启用 Build Action 来解决这个问题。

请查看此论坛链接以获取更多信息:

https://www.eclipse.org/forums/index.php/m/1709440/#msg_1709440

我试过MenuManager 但它返回顶部菜单?我想在项目上右击时访问弹出菜单。

到目前为止,我所经历的是,当我通过 CommonActionProvider 右键单击​​项目时,我可以通过在 plugin.xml 的 org.eclipse.ui.navigator.navigatorContent 中定义一个类来以编程方式获取程序流,我在该类下定义了一个动作提供者。现在,在此 ActionProvider 处,当我通过 ActionContext 参数在 setContext 方法中首先右键单击项目时,我可以在调试时停止。这就是我想要访问选择右键菜单的地方。

此时我可以访问从上下文中获取的选择,并且因为我右键单击它,上下文菜单将会发生,但是我如何以编程方式访问此右键单击菜单?当我通过控制按钮选择项目后右键单击项目时,我现在可以使用参数 IMenuManager 菜单访问方法 fillContextMenu 但错误不在此部分,因此我不需要在此方法上执行任何操作。当我右键单击未选择的项目(通过按住控制按钮)时,我需要访问右键菜单。有什么想法吗?

【问题讨论】:

  • wiki.eclipse.org/Menu_Contributions/Search_Menu 在此链接中讨论了 IMenuService 和 AbstractContributionFactory 。是访问项目右键菜单的方式吗?
  • MenuManager menu = (MenuManager) ((WorkbenchWindow)PlatformUI.getWorkbench().getActiveWorkbenchWindow()).getActionBars().getMenuManager(); menu = (MenuManager) menu.find("项目");这就是我访问 Eclipse IDE 菜单的方式,但是我可以使用这个访问项目的右键单击上下文菜单吗?

标签: eclipse eclipse-plugin eclipse-cdt


【解决方案1】:

我通过 actionProvider 解决了这个错误(IProject 实例的启用)。在我从 CommonActionProvider 扩展的 setContext 方法中,我通过 commandService 和 getCommand 方法获得了命令。然后调用 buildCommand.isEnabled();解决了这个问题。

【讨论】:

    猜你喜欢
    • 2019-01-19
    • 2012-12-23
    • 2012-10-18
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多