Кнопки панели инструментов Eclipse RCP с внешним видом Eclipse
Вопрос
В 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 сорт?Не должно быть никакой разницы во внешнем виде кнопок, которые вы добавляете декларативно, и тех, которые вы добавляете программно.