我们如何获取按下时创建的子菜单上下文的文本



我创建了一个带有子菜单的上下文菜单栏.我使用 for 循环生成了子菜单从 list.so 当我按下任何一个子菜单项时,生成的子菜单项,我应该得到子菜单项的文本 pressed.so 我们如何做到这一点。我在子菜单中只有一个运行方法,但每个子菜单项执行不同的 functionality.so 一个运行方法如何处理不同的功能。

例如

main menu->submenu1
         ->submenu2
         ->submenu3

因此,如果我按子菜单 2,我应该按下子菜单项的字符串,并且应该调用相应的方法,因为它只有一个运行方法

生成上下文菜单的代码如下

MenuManager contextMenu = new MenuManager("#ViewerMenu"); //$NON-NLS-1$
        contextMenu.setRemoveAllWhenShown(true);
        contextMenu.addMenuListener(new IMenuListener() {
            @Override
            public void menuAboutToShow(IMenuManager mgr) {
                fillContextMenu(mgr);
                // IMenuManager submenu = new MenuManager("Sub menu title");
                // submenu.add(someaction);
            }
        });
 protected void fillContextMenu(final IMenuManager contextMenu) {
    IMenuManager submenu = new MenuManager("Add  Case");
    List<String> testCases = new ArrayList<>();
    testCases.addAll(TestCases.testCaseNames);
    for (String item : testCases)
    {
      System.out.println("item is"+item);
      submenu.add(new Action(item) {
      @Override
       public void run()
         {
                        // implement this
          }
          });
        }
        contextMenu.add(submenu);

        } 

那么这怎么能做到呢

ActiongetText()方法返回菜单文本。

所以:

 submenu.add(new Action(item) {
  @Override
   public void run()
     {
       String itemText = getText();
       ...
     }

相关内容

  • 没有找到相关文章

最新更新