我喜欢在我的RCP应用程序中使用Eclipse提供的导航历史记录.不幸的是,这个功能没有很好的记录 事实上我只找到了这个Wiki条目:http://wiki.eclipse.org/FAQ_How_do_I_hook_my_editor_to_the_Back_and_Forward_buttons%3F
它提到可以在导航历史记录中标记每个编辑器,而无需指定位置.这正是我想要的.
无论特定编辑器是否支持导航历史记录,markLocation都可以使用.如果编辑器未实现INavigationLocationProvider,则将添加历史记录条目,允许用户跳回该编辑器但不返回任何特定位置.
我在应用程序中添加了以下代码行,以便每次打开新的编辑器时添加导航条目.
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart editor = page.openEditor( input, MyEditor.ID );
page.getNavigationHistory().markLocation( editor );
Run Code Online (Sandbox Code Playgroud)
我的问题是代码不起作用.这些命令的工具栏图标org.eclipse.ui.navigate.backwardHistory和org.eclipse.ui.navigate.forwardHistory保持变灰.
我正在使用Equinox OSGi实现.当我检索一个bundle并询问它的位置(getLocation()方法)时,返回的String前缀为"initial @ reference".OSGi 4.3规范没有提到这个前缀.是否有另一个文档,其中指定了此前缀和其他可能的前缀?