向 Eclipse 中的现有 gui 组件添加功能

Adding function to existing gui component in Eclipse

所以目前我正在开发一个与工作集一起工作的 Eclipse 插件。这些自定义工作集是使用向导创建的,该向导还会创建一个包含所有必需设置的 .properties 文件。这些工作集可以通过 eclipse 项目资源管理器中的 Select Working Sets...> Remove 删除,但该按钮只会删除工作集本身,而不是文件。

我已经实现了一个可以删除文件的处理程序,但我想问一下是否有任何方法可以将该函数绑定到 Select Working Set... 对话框的 'Remove' 按钮。我已经发现,WorkingSetSelectionDialog 实现了删除功能,但我有点卡在那里。

是否有扩展点或类似的地方我可以添加该功能?

该对话框上的 'Remove' 按钮仅标记要删除的工作集,直到按下 OK 按钮才真正删除它(以便 'Cancel' 可以工作)。

删除是通过调用工作集管理器完成的。您可以使用 IWorkingSetManager.addPropertyChangeListener 侦听器来侦听管理器所做的工作集更改:

IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager();

manager.addPropertyChangeListener(listener);

侦听器实现 IPropertyChangeListener。事件参数告诉您 属性 发生了什么变化。对于删除 属性 是 IWorkingSetManager.CHANGE_WORKING_SET_REMOVE

所以像这样:

public void propertyChange(PropertyChangeEvent event)
{
  if (event.getProperty().equals(IWorkingSetManager.CHANGE_WORKING_SET_REMOVE)) {
    IWorkingSet removed = (IWorkingSet)event.getOldValue();

    ...
  }
}