java - Action into Submenu 上下文菜单 Java JFace SWT Eclipse

标签 java eclipse contextmenu

我在开发中遇到一个 Eclipse 插件的小问题。

有一个 View ,与花名册 类似。那里有一个用户列表。我的问题是,我想添加一个上下文菜单
这个想法是对用户执行右键单击,菜单应该弹出。到目前为止一切顺利......但问题是我不想要一个菜单​​。我想为该上下文菜单添加一个“设置状态”条目,当将鼠标悬停在该条目上时,菜单应扩展为显示诸如“离开”、“忙碌”、“不可见”等内容……
谁能帮我实现这个目标?

我已经实现了相应的操作并添加到MenuManager

public SessionViewContextMenu(ViewPart sessionView, TableViewer viewer,
    final Action action) {

    MenuManager manager = new MenuManager("#PopupMenu");

    manager.setRemoveAllWhenShown(true);
    manager.addMenuListener(new IMenuListener() {

        public void menuAboutToShow(IMenuManager manager) {
            manager.add(action);
        }
    });

相应的操作如下所示:

public Action(...) {

    super(provider, "Bla Bla");

    // some fancy picture
    setImageDescriptor(...);

    // setId(ACTION_ID);

    setToolTipText("Bla Bla");

    update();
}

一切正常(至少上下文菜单显示条目)。现在我想在鼠标悬停/选择相应操作时扩展菜单。所以菜单应该扩展并在此处显示更多可能性...
非常感谢任何有关如何创建递归上下文菜单的帮助!

希望您了解问题并毫不犹豫地要求澄清!

最佳答案

只需创建一个子菜单并将操作添加到该子菜单即可。
这是一个应该阐明用法的快速片段:

            // submenu for a specific user
            MenuManager subMenu = new MenuManager("Change Status", null);

            // Actions for the sub menu
            subMenu.add(someAction);

            // add the action to the submenu
            manager.add(subMenu);

希望对您有所帮助!

放在一起:

public SessionViewContextMenu(ViewPart sessionView, TableViewer viewer,
final Action action) {

MenuManager manager = new MenuManager("#PopupMenu");

manager.setRemoveAllWhenShown(true);
manager.addMenuListener(new IMenuListener() {

    public void menuAboutToShow(IMenuManager manager) {
        manager.add(action);

        // submenu for a specific user
        MenuManager subMenu = new MenuManager("Change Status", null);

        // Actions for the sub menu
        subMenu.add(someAction);

        // add the action to the submenu
        manager.add(subMenu);
    }
});

关于java - Action into Submenu 上下文菜单 Java JFace SWT Eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692069/

相关文章:

linux - 在 Ubuntu 上安装 Eclipse 插件的简单方法

JavaSWT 应用程序在 Eclipse 中工作,但在终端中不工作

java - sparql-service 的非结构化返回

java - 为什么ArrayList返回错误: ArrayIndexOutOfBoundsException

java - 手动将审计条目添加到 Hibernate Envers

java - Eclipse Java堆空间

jQuery 上下文菜单与 jQuery Draggable 冲突

android - 如何从 contextMenu 访问 ListItem 位置

windows - 将 "Open Anaconda Prompt here"添加到上下文菜单 (Windows)

java - 如何将jsp文件热部署到tomcat?