Как добавить выпадающую кнопку на панели инструментов представления?

Я должен добавить выпадающую кнопку к панели инструментов представления на плагине Eclipse.

На самом деле кнопки на панели инструментов добавляются как этот:


  
    
    
  

6
задан Lii 24 May 2017 в 11:43
поделиться

1 ответ

Я разобрался. Два способа: один с использованием расширения org.eclipse.ui.viewActions , другой с использованием org.eclipse.ui.menus

Использование org.eclipse.ui.viewActions extension (eclipse> = 3.5)

  • стиль действия должен иметь значение раскрывающееся меню
    <extension point="org.eclipse.ui.viewActions">
      <viewContribution id="..." targetId="$MyViewId$">
        <action id="..."
                toolbarPath="action1"
                class="xxx.MyAction"
                style="pulldown">
        </action>
      </viewContribution>
    </extension>
  • класс действия должен реализовывать IViewActionDelegate (требуется для действия, вносящего вклад в панель инструментов представления) и IMenuCreator (определяет поведение меню).
    public class RetrieveViolationsViewActionDelegate implements IViewActionDelegate, IMenuCreator
    {
      private IAction action;
      private Menu menu;

      // IViewActionDelegate methods
      ...

      // IMenuCreator methods
      public void selectionChanged(IAction action, ISelection selection)
      {
        if (action != this.action)
        {
          action.setMenuCreator(this);
          this.action = action;
        }
      }

      public void dispose()
      {
        if (menu != null)
        {
          menu.dispose();
        }
      }

      public Menu getMenu(Control parent)
      {
        Menu menu = new Menu(parent);
        addActionToMenu(menu, new ClassImplemententingIAction());
        return menu;
      }

      public Menu getMenu(Menu parent)
      {
        // Not use
        return null;
      }



      private void addActionToMenu(Menu menu, IAction action)
      {
        ActionContributionItem item= new ActionContributionItem(action);
        item.fill(menu, -1);
      }
    }

Использование org.eclipse.ui.menus (eclipse> = 3.3)

  • Добавьте новый элемент меню в точку расширения org.eclipse.ui.menus .
  • Установите URI местоположения на панель инструментов: IdOfYourView
  • Добавьте панель инструментов к этому расширению и новую команду к этой новой панели инструментов.
  • Измените стиль команды на раскрывающееся меню
  • Создайте новый элемент меню и установите для locationURI значение menu: IdOfThePullDownCommand
  • Добавить команды в это меню.

Подробнее

9
ответ дан 10 December 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: