1.我们打算做什么:
重复使用ManifestEditor
打开MANIFEST.MF
文件,并将我们的功能添加到第一个OverviewPage。
2.我们已经知道并做了什么:
使用内部类和API很危险,因此我们创建了一个扩展ManifestEditor的ManifestEditorNew。
import org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor;
import org.eclipse.pde.internal.ui.editor.plugin.OverviewPage;
public class TheNewManifestEditor extends ManifestEditor{
//it's strange that the default fist page is not the OverviewPage,so we override this method
@Override
protected String computeInitialPageId() {
return OverviewPage.PAGE_ID;
}
}
3.我们遇到的异常:
NullPointerException。
一旦我们的TheNewManifestEditor
获得了关注,就给我们一个NPE,但我们找不到导致这种情况的蚂蚁线索。
答案 0 :(得分:0)
您可能需要调用super.computeInitialPageId()
,因为它看起来有些设置。
注意:概述页面并不总是显示的原因是因为编辑器会记住您查看的最后一页并向您显示。第一次编辑清单时,它将默认为概述页面。
仅扩展内部类并不会消除您使用违反Eclipse API Rules of Engagement的内部Eclipse类的事实。内部类可以并且确实会发生变化,有时甚至会完全消失,在Eclipse发布之间移动时可能会遇到很多麻烦。