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

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

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

Mario Ortegón 08.10.2008 01:58
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
7 281
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Ответ принят как подходящий

Сложно сказать по вашему вопросу, но похоже, что вы пытаетесь добавить 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);

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