【问题标题】:eclipse listener for main menu bar selections主菜单栏选择的eclipse监听器
【发布时间】:2010-09-10 19:47:16
【问题描述】:

我正在尝试从菜单栏中捕获用户选择,例如,如果用户在菜单中按下文件,我的插件将打印“按下文件”。 我想出了如何通过 IselectionService 收听视图选择,但仍然不知道如何使用主菜单栏(或工具栏)。

感谢帮助


更多细节:

我会更准确地解释我的问题:
我想捕获顶级菜单操作和工具栏,问题是我真的不知道如何创建和附加监听器。
这是插件的ISelectionListener
我的目的是收听工作台顶级菜单选择和工具栏。
感谢帮助

// the listener we register with the selection service 
private ISelectionListener listener = new ISelectionListener() {
  public void selectionChanged(IWorkbenchPart sourcepart, ISelection selection) {
    // we ignore our own selections
    if (sourcepart != SelectionView.this) {
      showSelection(sourcepart, selection);
    }
  }
};
...
...
public void createPartControl(Composite parent) {
  ...
  getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(listener);

P.S : 我发现的关于菜单监听器的大部分内容都是我创建的某些视图或窗口的 SWT 内容,这不是我的意思,我需要监听 eclipse 工作台中的主顶级菜单和工具栏。

【问题讨论】:

    标签: java plugins eclipse-pde


    【解决方案1】:

    如果您知道位置 uri(您可以使用 PluginSpy 检查),you can add an handler 以便对该菜单事件做出反应。

    注意:Menu Contribution article 提到了 locationURI:

    • 主菜单是“org.eclipse.ui.main.menu
    • 主工具栏是“org.eclipse.ui.main.toolbar

    【讨论】:

    • 嘿,感谢您的快速回复:)
    • @amir:我再次查看了您的问题(并实际编辑了它),但现在没有要添加的新元素。还在寻找。
    • thanx man :)....如果你有一些地方或书可以阅读(我搜索了很多书,仍然没有),请告诉我。
    【解决方案2】:

    Yo 可以尝试使用 ICommandService: 使用此服务,您可以注册一个 IExecutionListener。

    这样你可以跟踪所有执行的命令,但恐怕你不能跟踪激活命令本身的菜单项。

    希望对你有帮助

    【讨论】:

    • 我只想告诉你,我从制作 Smarttutor 插件的人那里得到了一些帮助,这正是我所需要的。捕获菜单上的所有操作。
    • 相信你的权利,它有效。我现在正在寻找 Eclipse 上菜单和菜单项上的主菜单下拉事件和鼠标悬停事件。需要帮助
    【解决方案3】:

    我只想告诉你,我从制作 Smarttutor 插件的人那里得到了一些帮助,这正是我所需要的。捕获菜单上的所有操作。 – amir farah 31 秒前编辑 我只想告诉你,我从制作 Smarttutor 插件的人那里得到了一些帮助,这正是我所需要的。捕获菜单上的所有操作。
    这是网站:code.google.com/p/smarttutor

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-11
      相关资源
      最近更新 更多