1

目前我正在RCP application使用view part. 在应用程序中,用户可以打开相同的多个实例view part。我能够使用menu selection. 但我不知道处理“X”即标签关闭操作。

我尝试将IPartListener对象添加到视图部分对象,(我引用了此链接),但在其partClosed()方法中我面临 2 个问题,

  1. 我无法获取view part object.
  2. partClosed()方法仅在关闭选项卡后才被调用,因此我无法显示关闭选项卡的确认。

我应该使用什么方法来解决以上两个问题。

任何帮助表示赞赏。

此致,

曼达尔

4

2 回答 2

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;
}
于 2012-11-26T07:59:11.320 回答
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;
}

Eclispe API:ISaveablePart2

于 2012-11-26T08:02:35.503 回答