编辑器和视图标题中有许多默认的菜单,这些菜单不是由
IEditorPart
或者
IViewPart
控制的,而是通过
AbstracPresentationFactory
来初始化和进行处理的。
Eclipse
提供一个默认的实现——
WorkbenchPresentationFactory
,
核心代码如下:
public StackPresentation createEditorPresentation(Composite parent,
IStackPresentationSite site) {
DefaultTabFolder folder = new DefaultTabFolder(parent,
editorTabPosition | SWT.BORDER, site
.supportsState(IStackPresentationSite.STATE_MINIMIZED),
site.supportsState(IStackPresentationSite.STATE_MAXIMIZED));
/*
*
* Set the minimum characters to display, if the preference is something
*
* other than the default. This is mainly intended for RCP applications
*
* or for expert users (i.e., via the plug-in customization file).
*/
final IPreferenceStore store = PlatformUI.getPreferenceStore();
if (store
.contains(IWorkbenchPreferenceConstants.EDITOR_MINIMUM_CHARACTERS)) {
final int minimumCharacters = store
.getInt(IWorkbenchPreferenceConstants.EDITOR_MINIMUM_CHARACTERS);
if (minimumCharacters >= 0) {
folder.setMinimumCharacters(minimumCharacters);
}
}
PresentablePartFolder partFolder = new PresentablePartFolder(folder);
TabbedStackPresentation result = new TabbedStackPresentation(site,
partFolder, new StandardEditorSystemMenu(site));
DefaultThemeListener themeListener = new DefaultThemeListener(folder,
result.getTheme());
result.getTheme().addListener(themeListener);
new DefaultMultiTabListener(result.getApiPreferences(),
IWorkbenchPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS, folder);
new DefaultSimpleTabListener(result.getApiPreferences(),
IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,
folder);
return result;
}
这个方法是用来给编辑器添加标题菜单的,默认的实现为
StandardEditorSystemMenu
,
跟踪代码可以发现这个类继承自
StandardViewSystemMenu
,
不同的地方是多添加了三个菜单项
CloseOthers
、
CloseAll
和
OpenAgain
。
知道这些,如何去实现自己的编辑器标题菜单就很容易了。
StandardEditorSystemMenu
的
关键代码:
public StandardEditorSystemMenu(IStackPresentationSite site) {
super(site);
closeOthers = new SystemMenuCloseOthers(site);
closeAll = new SystemMenuCloseAll(site);
openAgain = ActionFactory.NEW_EDITOR.create
(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
menuManager.add(closeOthers);
menuManager.add(closeAll);
menuManager.add(new Separator());
menuManager.add(openAgain);
}
实现了自己的
PresentationFactory
以
后,让它生效还必须添加一个
Extension
——
org.eclipse.ui.presentationFactories
,语法很简单:
<extension
point="org.eclipse.ui.presentationFactories">
<factory
class="test.PresentationFactory"
id="test.PresentationFactory"
name="My Presentation"/>
</extension>
然后在
plugin_customization.ini
文
件中指定要使用的
presentationFactory
。
org.eclipse.ui/presentationFactoryId=test.PresentationFactory
这样
RCP
就
会使用自定义的
PresentationFactory
中的标题菜单
了。
分享到:
相关推荐
透视图是Eclipse RCP中的一个重要概念,它定义了工作台窗口中各视图和编辑器的布局。默认情况下,Eclipse RCP提供了标准的透视图切换方式,但开发者可以根据需求进行自定义。下面我们将逐步解析这个过程: 1. **...
4. **菜单和工具栏**:Eclipse RCP允许自定义菜单和工具栏,这些可以通过`Action`类实现。你可以创建`MenuManager`和`ToolBarManager`来管理这些动作,并在编辑器的上下文中添加它们。 5. **事件处理**:RCP编辑器...
`plugin.xml`配置文件是Eclipse插件的核心,它包含了插件的元数据、视图、编辑器、命令、快捷键、菜单和工具栏的定义。 3. **plugin.xml配置**:在`plugin.xml`文件中,开发者可以使用XML语法来声明菜单和工具栏。...
2. **Perspective**:透视图定义了工作台的布局和可见性,可以根据用户的任务或工作流来组织和显示不同的视图和编辑器。 3. **View**:视图是工作台中的独立组件,它们通常显示特定类型的信息或提供某种功能。例如...
图片会展示工作台的布局,包括左右两侧的视图栏,中间的编辑器区域,以及顶部的菜单和工具栏。 3. **视图(Views)**:视图是RCP中显示特定信息或提供操作的组件,例如项目浏览器、任务列表等。图片可能包含不同...
Eclipse RCP程序通常由多个组件构成,包括视图(Views)、编辑器(Editors)、透视图(Perspectives)、菜单和工具栏等。"eclipse rcp经典程序"这个资源很可能包含了完整的示例代码,帮助开发者了解并实践这些关键...
透视图是Eclipse IDE和基于RCP的应用程序中的一个重要组成部分,它定义了工作台窗口中显示的视图、编辑器和其他组件的布局。在RCP开发中,透视图允许用户根据他们的工作需求定制和组织界面。 在描述中提到的博文...
RCP允许开发者专注于业务逻辑的实现,而不必过于关注用户界面的设计,因为RCP已经提供了一系列预定义的界面元素,如菜单、工具栏、视图(View)和编辑器(Editor)。 **1. 菜单栏(Menu Bar)和工具栏(Tool Bar)*...
2. **工作台(Workbench)**:工作台是Eclipse RCP应用程序的中心,负责管理窗口、视图、编辑器等元素。开发者可以自定义工作台布局,例如添加新的视图或编辑器。 3. **视图(View)**:视图是用户界面中显示特定...
- **自定义视图和编辑器**:根据需求创建具有特定功能的视图和编辑器,例如,支持拖放操作、图表展示等。 4. **学习资源** - **"RCP程序设计.pdf"**:可能包含对RCP设计原理的深入解释,以及如何创建和配置RCP...
3. **定义视图和编辑器**:根据应用需求,开发自定义视图和编辑器,这通常涉及编写SWT(Standard Widget Toolkit)和JFace代码。 4. **构建菜单和工具栏**:通过编程或使用图形化工具设计应用的菜单和工具栏,将...
Eclipse RCP对象(如视图和编辑器)都有自己的生命周期,它们会经历创建、初始化、激活、停用和销毁等阶段。你需要正确处理这些生命周期事件,以确保插件的稳定性和性能。 部署方面,Eclipse RCP应用通常打包为一个...
3. 定义透视图:根据需求,我们可以自定义透视图,将视图和编辑器组织成合适的布局。 4. 实现命令:Eclipse RCP的命令模型允许我们定义和绑定用户操作,比如菜单项和工具栏按钮,这样可以统一处理用户交互。 5. 集成...
开发者可以自定义视图和编辑器,实现特定的用户界面和功能。 **6. 对话框(Dialogs)** 对话框用于向用户提供交互式界面,收集用户输入或显示警告信息。RCP 提供了多种预定义的对话框,同时支持自定义对话框的创建...
在RCP中,开发者可以创建自定义的工作台视图、编辑器、透视图,以及通过插件系统进行功能扩展。Eclipse RCP的核心设计理念是“模型-视图-控制器”(MVC)模式,这使得应用程序的结构清晰,易于维护和扩展。 **主要...
其次,透视图(Perspective)是RCP界面的另一个核心概念,它定义了不同视图和编辑器的组合,以满足特定任务的需求。例如,在CRM应用中,可能会有“销售”透视图,侧重于销售数据和机会管理;还有“客户服务”透视图...
3. **菜单和工具栏的创建**:Eclipse RCP允许开发者定义自定义菜单和工具栏项,这在示例中会被详细解释。 4. **事件和服务**:如何利用Eclipse RCP的事件机制和服务API来实现组件之间的通信。 5. **国际化...
本项目"rcp editor实例的项目代码2"是针对Eclipse插件开发的一个实战案例,旨在帮助开发者了解和掌握如何在Eclipse RCP环境中实现自定义编辑器。 首先,我们需要理解Eclipse插件开发的基本概念。Eclipse是一个开放...
RCP允许开发者利用Eclipse的强大功能,如插件系统、工作台管理、视图和编辑器,来创建自定义的、模块化的用户界面。在本例子中,我们看到的是一个基于RCP实现的**客户关系管理(CRM)**系统。 CRM系统主要用于企业...