Кнопки панели инструментов Eclipse RCP с Eclipse Look - PullRequest
1 голос
/ 01 октября 2008

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

Ответы [ 2 ]

5 голосов
/ 13 января 2009

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

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
            }
        });
     }
});

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

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

IToolBarManager toolBarManager = actionBars.getToolBarManager();
toolBarManager.add(myAction);
2 голосов
/ 17 октября 2008

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

...