Eclipse plugin 编辑器具有焦点时添加/删除操作工具栏

Eclipse plugin 编辑器具有焦点时添加/删除操作工具栏,eclipse-plugin,toolbar,Eclipse Plugin,Toolbar,我正在使用Eclipse插件基础架构扩展Eclipse,我遇到了一个问题: 我创建了一个文本编辑器,我想在编辑器打开并具有焦点时向Eclipse工具栏添加操作。例如: textViewer.getTextWidget().addFocusListener(new FocusListener(){ public void focusGained(FocusEvent e) { /* add actions */ } public void focusLost(FocusEv

我正在使用Eclipse插件基础架构扩展Eclipse,我遇到了一个问题:

我创建了一个文本编辑器,我想在编辑器打开并具有焦点时向Eclipse工具栏添加操作。例如:

textViewer.getTextWidget().addFocusListener(new FocusListener(){
public void focusGained(FocusEvent e) {
  /* add actions */         
}

public void focusLost(FocusEvent e) {
 /* remove actions */           
}
}))

下面是extensionPoint的示例:ActionSet,将操作按钮永久添加到工具栏:

<action
class="MyActionClass"
id="MyActionID"
label="MyActionLabel"
menubarPath="MyActionMenuBarPath"
toolbarPath="MyActionToolBarPath" <-- this property
     ...
</action>

您可以查看类似动态工具栏更新的Eclipse实现

例如,只能为Java编辑器激活Breadcrumb bare,而对于任何其他类型的编辑器,工具栏“Toggle Breadcrumb”按钮都不可见

这是一个,在as中声明



您可以尝试相同类型的定义。

谢谢您的回答,我找到了一种简单的方法来实现这一点,如果按钮是ActionSet,只需添加以下扩展点:

<extension
     point="org.eclipse.ui.actionSetPartAssociations">
  <actionSetPartAssociation
        targetID="myActionSetId">
     <part
           id="myEditorId">
     </part>
  </actionSetPartAssociation>

<extension
     point="org.eclipse.ui.actionSetPartAssociations">
  <actionSetPartAssociation
        targetID="myActionSetId">
     <part
           id="myEditorId">
     </part>
  </actionSetPartAssociation>