Мне нужно динамически создавать элементы вклада в меню RCP, чтобы я не мог использовать plugin.xml для его определения, как он был у меня до динамического создания - там было достаточно указать значение по умолчанию, добавив его в соответствующую команду в org. eclipse.ui.commands точка расширения:
<state
class="org.eclipse.ui.handlers.RadioState:None"
id="org.eclipse.ui.commands.radioState">
</state>
Нет после двоеточия. Я просмотрел весь Интернет, мне показалось, что этот урок мне нужен:
http://blog.vogella.com/2009/12/03/commands-menu-runtime/
однако мне нужно, чтобы элементы вклада были CommandContributionItem.STYLE_RADIO. После обучения я могу создать выпадающее меню с элементами, но у меня есть две проблемы:
- Кто-нибудь знает, почему они не создаются одновременно?
как определено в plugin.xml
(ExtensionContributionFactory.createContributionItems (IServiceLocator,
Метод IContributionRoot) вызывается при щелчке по меню)
- Кто-нибудь знает, как определить выбранный элемент по умолчанию? я использую
следующий код
ICommandService commandService = todoListView.getViewSite().getService(ICommandService.class);
Command command = commandService.getCommand(COMMAND_ID);
try
{
HandlerUtil.updateRadioState(command, personalSettings.getCurrentGroupingName());
}
catch (ExecutionException e)
{
throw new RuntimeException(e);
}
когда я отлаживаю его, он устанавливает для RadioState команды правильное значение, но я не вижу маркера, который указывает выбранную опцию, когда отображается выпадающий список. У кого-нибудь есть идеи? Спасибо