目前,我正在RCP application
与view part
合作。
在应用程序中,用户可以打开相同view part
的多个实例。
我能够使用menu selection
处理查看部件关闭操作。
但我不知道处理'X'即关闭操作。
我尝试将IPartListener
对象添加到视图部件对象(I refereed this link ),但在其partClosed()
方法中我遇到了2个问题,
view part object
。partClosed()
方法,因此我无法显示关闭标签的确认。我应该采用什么方法来解决上述两个问题。
感谢任何帮助。
致以最诚挚的问候,
Mandar
答案 0 :(得分:1)
如果您只想在关闭编辑器时显示确认信息,为什么不实施ISaveablePart2
及其方法promptToSaveOnClose();
示例:
@Override
public int promptToSaveOnClose() {
boolean canClose = // Show dialog here and return a boolean based on the users input
if (canClose) {
return ISaveablePart2.NO;
} else {
return ISaveablePart2.CANCEL;
}
return 0;
}
答案 1 :(得分:1)
您可以考虑将ISaveablePart2
接口实施到ViewPart
。该界面负责提示用户是否应该关闭该部件。此外,它决定如何处理未保存的数据。
如果应使用方法promptToSaveOnClose()
中的自定义对话框关闭视图,则可以向用户提示。
@Override
public boolean isDirty() {
return true;
}
@Override
public int promptToSaveOnClose() {
boolean close = MessageDialog.openConfirm(
Display.getCurrent().getActiveShell(), "Close?", "Really?");
if(close)
return YES;
return CANCEL;
}