У меня есть меню панели инструментов для настраиваемого редактора, состоящего из двух частей. Я хочу, чтобы некоторые пункты меню появлялись только тогда, когда фокусировалась страница 1, а другие - когда фокусировалась страница 2.
Я определил панель инструментов в плагине. xml и использую Eclipse Core Expression activeFocusControlId в сочетании с IFocusService .
Я хорошо работаю, когда нажимаю на разные страницы, но изначально отображаются все элементы меню (даже когда я вызываю setFocus () из код редактора).
Как правильно запустить меню?
<command
commandId="newInput"
label="New Entry"
style="push"
<visibleWhen
checkEnabled="false">
<with
variable="activeFocusControlId">
<equals
value="inputViewer">
</equals>
</with>
</visibleWhen>
</command>
<command
commandId="newClassification"
label="New Classification"
style="push"
<visibleWhen
checkEnabled="false">
<with
variable="activeFocusControlId">
<equals
value="classificationViewer">
</equals>
</with>
</visibleWhen>
</command>
Java Код в MultiPageEditorPart's createPages () метод
IFocusService service = (IFocusService)this.getSite().getService(IFocusService.class);
service.addFocusTracker(this.viewer.getGrid(), "inputViewer");
service.addFocusTracker(this.classificationViewer.getGrid(),"classificationViewer" );