如何在Eclipse工具栏中启用保存操作?

如何在Eclipse工具栏中启用保存操作?,eclipse,eclipse-plugin,swt,eclipse-rcp,Eclipse,Eclipse Plugin,Swt,Eclipse Rcp,我在Eclipse插件开发下工作。我已经实现了两个视图部分来查看和更改一些对象。每个视图零件实现ISaveablePart以保存修改的对象并启用工具栏上的“保存”按钮 问题是:在Project Explorer中选择对象时,未启用“保存”按钮,仅启用“全部保存” 因此,我想知道在这种情况下是否能够启用“保存”按钮?您必须首先实现ISaveablePart,正如您前面提到的那样 您必须触发一个事件(请参见IWorkbenchPartConstants.PROP_DIRTY),这将反过来询问您的编辑

我在Eclipse插件开发下工作。我已经实现了两个视图部分来查看和更改一些对象。每个视图零件实现
ISaveablePart
以保存修改的对象并启用工具栏上的“保存”按钮

问题是:在Project Explorer中选择对象时,未启用“保存”按钮,仅启用“全部保存”


因此,我想知道在这种情况下是否能够启用“保存”按钮?

您必须首先实现
ISaveablePart
,正如您前面提到的那样

您必须触发一个事件(请参见
IWorkbenchPartConstants.PROP_DIRTY
),这将反过来询问您的编辑器它是否脏(
isAvablePart\isDirty()
)。如果答案为
true
,则将启用保存按钮


有关示例,请参见
FormEditor\editordystatechanged()

感谢您的帮助。我已经实现了发射道具脏,但我仍然有一个问题。我有两个视图,它们实现了ISaveablePart并且变脏了,所以当我对它们设置焦点时,SAVE按钮被启用。这些视图修改在ProjectExplorer中选择的对象的属性(比如使对象变脏)。所以问题是:当焦点设置在ProjectExplorer上而不是这些视图上时,如何启用“保存”按钮。我的意思是,当选定对象变脏且焦点不在这些视图上时,如何启用“保存”按钮。每个零件都有自己的保存生命周期。我能看到工作的唯一方式是让您的所有部件向某种全局处理程序注册。没有办法绕过它。您的ProjectExplorer必须实现ISaveablePart,这意味着您必须自己启动。谢谢您的回答!的确,唯一的方法是实现我自己的CommonNavigator,但是仍然会有很多问题。