当前位置: 首页 > 面试题库 >

在Eclipse RCP中使用导航历史记录

咸疏珂
2023-03-14
问题内容

我喜欢在我的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 );

我的问题是代码无法正常工作。这些命令的工具栏图标org.eclipse.ui.navigate.backwardHistoryorg.eclipse.ui.navigate.forwardHistory住宿变灰。


问题答案:

我找到了解决方案。为了在Eclipse RCP应用程序中使用 导航历史记录
,您必须将以下代码行添加到ApplicationActionBarAdvisor

/**
 * Fills the cool bar with the main toolbars for the window.
 * <p>
 * The default implementation does nothing. Subclasses may override.
 * </p>
 * 
 * @param coolBar
 *            the cool bar manager
 */
protected void fillCoolBar( ICoolBarManager coolBar ) {
    IToolBarManager navigation = new ToolBarManager( SWT.FLAT );

    IAction backward = getAction( IWorkbenchCommandConstants.NAVIGATE_BACKWARD_HISTORY );
    IAction forward = getAction( IWorkbenchCommandConstants.NAVIGATE_FORWARD_HISTORY );

    navigation.add( backward );
    navigation.add( forward );

    coolBar.add( navigation );
}

/**
 * Instantiates the actions used in the fill methods. Use
 * {@link #register(IAction)} to register the action with the key binding
 * service and add it to the list of actions to be disposed when the window
 * is closed.
 * 
 * @param window
 *            the window containing the action bars
 */
protected void makeActions( IWorkbenchWindow window ) {
    IAction backward = ActionFactory.BACKWARD_HISTORY.create( window );
    backward.setId( IWorkbenchCommandConstants.NAVIGATE_BACKWARD_HISTORY );
    IAction forward = ActionFactory.FORWARD_HISTORY.create( window );
    forward.setId( IWorkbenchCommandConstants.NAVIGATE_FORWARD_HISTORY );

    register( backward );
    register( forward );
}


 类似资料:
  • 读取播放历史信息 调用地址 http://api.bilibili.cn/history 返回 返回值字段 字段类型 字段说明 results int 返回的记录总数目 list object 返回数据 返回字段 “list” 子项 返回值字段 字段类型 字段说明 aid int 视频编号 typeid int 视频分类ID typename string 视频分类名称 title string

  • 历史记录 控制台维护 Elasticsearch 成功执行的最后500个请求列表。点击窗口右上角的时钟图标即可查看历史记录。这个图标会打开历史记录面板,您可以在其中查看历史请求。您也可以在这里选择一个请求,它将被添加到编辑器中当前光标所在的位置。 图 9. 历史记录面板

  • 3.3.1.1. 同步的文件历史记录 微力同步记录对文件的添加,修改、删除的操作记录,通过历史记录列表可查看时间时间及发生设备,如下: 事件时间,显示添加、修改、删除等操作发生的时间; 文件时间,显示该文件的最后修改时间; 操作类型,显示此次针对该文件所进行的操作的类型; 发生设备,显示进行此操作的设备名称; 目录,显示该文件所属同步目录; 清空历史记录,点击后可清除所有记录,此操作仅清除记录而已

  • 问题内容: 我已经实现了一个单页设计的Web应用程序。基本上只加载一个页面,然后使用AJAX更新中心内容。代码如下: 这基本上是可行的,但我也想启用浏览器导航。例如:http://ticketmonster- jdf.rhcloud.com/,网址上带有#标签。因此,使用后退/前进按钮,我可以转到等效选项。任何想法如何做到这一点? 问题答案: 我创建了一个博客文章,根据您的问题解释如何使用jQue

  • 我希望通过使用一个新表来存储一个日志,其中记录了在每次更新/插入中进行更改的用户、日期以及任何更改的内容,从而实现对我的一个模型实体的历史记录跟踪/审核。 我使用EclipseLink作为我的JPA提供者,但我不想使用它的历史策略,因为提供者将来可能会改变。出于同样的原因,我不能使用Hibernate Envers。 我研究了SpringData提供的审计支持,但它似乎非常基本,它只允许您存储创建

  • 将地点追加至书签 可将旗帜的地点或当前地点追加至书签。已追加至书签的地点,会在地图上显示为(书签地点)。 1. 轻触想加入书签的旗帜或(当前地点)。 会显示信息栏。 2. 轻触(信息)。 3. 轻触(选项)>[追加至书签]。 4. 输入名称并轻触(确定)。 隐藏地图上的书签地点 1. 在地图显示的状态下轻触(选项)>[设定]。 2. 在[显示书签的地点]的方格轻触取消打勾。 开启书签 1. 在地图