Я внедрил пользовательскую панель инструментов в своем приложении RCP. Я также использую расширение org.eclipse.ui.menus
для внесения команд на пользовательскую панель инструментов.Как я могу настроить свою собственную панель инструментов через IElementUpdater
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="toolbar:com.my.custom.toolbar.identifier.toolbar">
<command
commandId="com.my.command.id"
icon="icons/my_icon.png"
style="toggle"
tooltip="My Toggle Tooltip">
</command>
</menuContribution>
</extension>
Я написал код, который находит эти IConfigurationElements и превращает их в CommandContributionItems, которые я использую, чтобы добавить их в пользовательскую панель инструментов.
У меня есть элементы панели инструментов, которые относятся к типу, и мне нужно их обновить свой интерфейс, используя интерфейс IElementUpdater
, который реализует обработчик команды.
Я также вношу эту команду в стандартное меню Eclipse ... например, «панель инструментов: org.eclipse.ui.main.toolbar», и его состояние переключения обновляется через IElementUpdater, когда это необходимо.
Возможно, что-то у меня на моей панели инструментов, которая подключается к IElementUpdater, но я не знаю, с чего начать искать эту работу.
У меня работает приложение 3.x RCP. Он состоит из CoolBar с CoolItems, которые содержат панели инструментов. – twindham
В этом случае, если вы пытаетесь решить проблему переключения, взгляните на эту статью http://blog.eclipse-tips.com/2009/03/commands-part-6-toggle-radio-menu .html .. переключение разрешается с использованием соединения с командой и состояния ее состояния. –
Я видел эту статью, с которой вы связались, и я успешно использовал образцы в ней, чтобы получить обновление переключающих кнопок на главной панели инструментов Eclipse. Это моя настраиваемая панель инструментов, которая не работает. Я думаю, мне нужно посвятить некоторое время, чтобы прочитать исходный код Eclipse, чтобы увидеть, как основная панель инструментов Eclipse получает уведомление от IElementUpdater. – twindham