Кнопки панели инструментов Eclipse RCP с внешним видом Eclipse

StackOverflow https://stackoverflow.com/questions/159190

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Из вашего вопроса трудно сказать, но похоже, что вы пытаетесь добавить ControlContribution на панель инструментов и вернуть кнопку.В результате кнопка на панели инструментов будет выглядеть как родная кнопка, которую вы описываете.Это будет выглядеть примерно так:

IToolBarManager toolBarManager = actionBars.getToolBarManager();
toolBarManager.add(new ControlContribution("Toggle Chart") {
    @Override
    protected Control createControl(Composite parent)
    {
        Button button = new Button(parent, SWT.PUSH);
        button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
                // Perform action
            }
        });
     }
});

Вместо этого вам следует добавить действие на панель инструментов.Это создаст кнопку на панели инструментов, которая соответствует стандартным кнопкам панели инструментов eclipse.Это будет выглядеть примерно так:

Action myAction = new Action("", imageDesc) {
    @Override
    public void run() {
        // Perform action
    }
};

IToolBarManager toolBarManager = actionBars.getToolBarManager();
toolBarManager.add(myAction);

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top