Всплывающее меню в виде дерева Java SWT - PullRequest
2 голосов
/ 09 июня 2010

Привет,

В настоящее время у меня есть рабочее всплывающее меню, которое появляется, когда я нажимаю на элемент дерева.Но я хочу показать разные всплывающие окна для разных записей в виде дерева.Я не понимаю, как это сделать ...

Вот мой код для создания меню:

 MenuManager menuMgr = new MenuManager("#PopupMenu"); 
 menuMgr.setRemoveAllWhenShown(true);
 menuMgr.addMenuListener(new IMenuListener() {
     @Override
     public void menuAboutToShow(IMenuManager manager) {
         Action action = new Action() {
      public void run() {
                // So something
      }
  };
  action.setText("Set as working file");
  manager.add(action);
 }

 });

 Menu menu = menuMgr.createContextMenu(getTree());
 getTree().setMenu(menu);

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Вы должны использовать MouseListener на дереве:

final Tree tree = new Tree(parent, ...);
tree.addMouseListener(new MouseAdapter() {
    @override
    public void mouseDown(MouseEvent me) {
        if(tree.getSelection() instanceof MySpecificTreeNode) {
            // create menu...
        }
    }
});
0 голосов
/ 09 июня 2010

Две идеи. Для обоих вам необходимо прослушать выборки в TreeView, потому что это единственный способ определить, какое меню (или специальный контент) вы хотите показать.

Тогда вы можете либо установить правильное меню для дерева сразу после того, как знаете, какой из них использовать, либо добавить необходимые элементы в существующее меню (именно так это делается в инфраструктуре eclipse).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...