- 浏览: 1182011 次
- 性别:
- 来自: 成都
最新评论
-
see1di:
你的這個function只能支持IE
js格式化显示xml -
away5678:
强烈推荐你学习ibatis,易学,灵活,易查错,效率高,以上都 ...
ibatis的点点心得 -
liuwei8728:
恩 说的也有道理
ibatis没学过 hibernate ...
ibatis的点点心得
扩展 org.eclipse.ui.views 来创建 view
向导创建的ContactsView继承ViewPart抽象类,代码如下:
public ContactsView() {
}
@Override
public void createPartControl(Composite parent) {
//接口方法,用于创建View内容。
}
@Override
public void setFocus() {
//接口方法,View获得焦点时,由workbench调用。
}
将view添加到perspective
RCP程序都至少包含一个Perspective,IWorkbenchWindow包含一个Page,Page使用当前激活的Perspective来布局Views和Editors:
修改org.eclipsercp.hyperbola/Perspective.java
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
//将ContactsView放在默认Editor区域的左侧,所占区域比例为100%
//比例的范围是0.0f(只显示title bar)到1.0f(占用整个窗口)
layout.addView(ContactsView.ID, IPageLayout.LEFT,
1.0f, layout.getEditorArea());
}
其中ContactsView.ID是在ContactsView自定义的静态常量,定义了plugin.xml中ContactsView的id:
public static final String ID = "org.eclipsercp.hyperbola.views.contacts";
IPageLayout .addView方法添加的View显示一个标题栏,可以进行移动、关闭、最大化、最小化等操作。运行效果如下:
如果不想显示标题栏,可以使用IPageLayout .addStandaloneView。
layout.addStandaloneView(ContactsView.ID, false, IPageLayout.LEFT, 1.0f, layout.getEditorArea());
运行效果如下:
关于 perspective 的更多描述可参考:
http://hi.baidu.com/monkeyhoop/blog/item/e20273e6d2b4c828b8382038.html
打开同一个 view 的多个实例
设置 view 的 enableMultiple 属性为 true
<extension
point="org.eclipse.ui.views">
<view
allowMultiple="true"
class="org.eclipsercp.hyperbola.ContactsView"
icon="icons/groups.gif"
id="org.eclipsercp.hyperbola.views.contacts"
name="Contacts"/>
</extension>
修改 addView() 的 ID 属性为如下格式 primary-id:secondary-id ,并保证 secondary-id 在 perspective 中是唯一的:
org.eclipsercp.hyperbola/Perspective
public void createInitialLayout(IPageLayout layout) {
layout.addStandaloneView(ContactsView.ID + ":1", false,
IPageLayout.LEFT, 0.33f, layout.getEditorArea());
layout.addView(ContactsView.ID + ":2",
IPageLayout.BOTTOM, 0.70f, layout.getEditorArea());
layout.addView(ContactsView.ID + ":3",
IPageLayout.BOTTOM, 0.70f, layout.getEditorArea());
}
打开 view
org.eclipsercp.hyperbola/OpenViewAction
public class OpenViewAction extends Action {
private final IWorkbenchWindow window;
private int instanceNum;
private final String viewId;
public OpenViewAction(IWorkbenchWindow window, String viewId) {
this.window = window;
this.viewId = viewId;
}
public void run() {
try {
window.getActivePage().showView(viewId,
Integer.toString(instanceNum), IWorkbenchPage.VIEW_ACTIVATE);
instanceNum++;
} catch (PartInitException e) {
// handle exception
}
}
}
使用 Sticky View
这种 view 在多个 perspective 中保持相同的打开位置,与 editor 类似,其在同于 workbench window 中的多个不同 perspective 中是共享同一个实例的,perspective 切换时不会影响其显示。
org.eclipsercp.hyperbola/plugin.xml
<extension point="org.eclipse.ui.views">
<view
class="org.eclipsercp.hyperbola.ContactsView"
icon="icons/groups.gif"
id="org.eclipsercp.hyperbola.views.contacts"
name="Contacts"/>
<stickyView
closeable="false"
id="org.eclipsercp.hyperbola.ContactsView"
location="LEFT"
moveable="false"/>
</extension>
stickyView 只是创建了一个 placeholder,并不是创建实际的 view,它通过 id 来关联一个已存在的 view id。当此 view 打开时,其就变成 sticky view。
创建 Open View 列表菜单
org.eclipsercp.hyperbola/ApplicationActionBarAdvisor
protected void makeActions(IWorkbenchWindow window) {
views = ContributionItemFactory.VIEWS_SHORTLIST.create(window);
}
protected void fillMenuBar(IMenuManager menuBar) {
MenuManager viewsMenu = new MenuManager("Open View", "views");
viewsMenu.add(views);
menuBar.add(viewsMenu);
}
菜单默认显示当前 perspective 定义的 view 列表,这个列表的内容由 IPageLayout.addShowViewShortcut(String) 添加。
使用 Workbench 预定义 View
org.eclipse.ui.ExtensionFactory 类定义了很多 Workbench 预定义的 View、Page、Wizard。
<extension point="org.eclipse.ui.views">
<view
class="org.eclipse.ui.ExtensionFactory:progressView"
icon="icons/progress.gif"
id="org.eclipsercp.hyperbola.views.progress"
name="Progress"/>
</extension>
参考:
《Eclipse Rich Client Platform Designing, Coding, and Packaging Java Applications》:chapter5、chapter16、chapter17
引用自:
http://hi.baidu.com/monkeyhoop/blog/item/965d28251bbe0035c995596b.html
向导创建的ContactsView继承ViewPart抽象类,代码如下:
public ContactsView() {
}
@Override
public void createPartControl(Composite parent) {
//接口方法,用于创建View内容。
}
@Override
public void setFocus() {
//接口方法,View获得焦点时,由workbench调用。
}
将view添加到perspective
RCP程序都至少包含一个Perspective,IWorkbenchWindow包含一个Page,Page使用当前激活的Perspective来布局Views和Editors:
修改org.eclipsercp.hyperbola/Perspective.java
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
//将ContactsView放在默认Editor区域的左侧,所占区域比例为100%
//比例的范围是0.0f(只显示title bar)到1.0f(占用整个窗口)
layout.addView(ContactsView.ID, IPageLayout.LEFT,
1.0f, layout.getEditorArea());
}
其中ContactsView.ID是在ContactsView自定义的静态常量,定义了plugin.xml中ContactsView的id:
public static final String ID = "org.eclipsercp.hyperbola.views.contacts";
IPageLayout .addView方法添加的View显示一个标题栏,可以进行移动、关闭、最大化、最小化等操作。运行效果如下:
如果不想显示标题栏,可以使用IPageLayout .addStandaloneView。
layout.addStandaloneView(ContactsView.ID, false, IPageLayout.LEFT, 1.0f, layout.getEditorArea());
运行效果如下:
关于 perspective 的更多描述可参考:
http://hi.baidu.com/monkeyhoop/blog/item/e20273e6d2b4c828b8382038.html
打开同一个 view 的多个实例
设置 view 的 enableMultiple 属性为 true
<extension
point="org.eclipse.ui.views">
<view
allowMultiple="true"
class="org.eclipsercp.hyperbola.ContactsView"
icon="icons/groups.gif"
id="org.eclipsercp.hyperbola.views.contacts"
name="Contacts"/>
</extension>
修改 addView() 的 ID 属性为如下格式 primary-id:secondary-id ,并保证 secondary-id 在 perspective 中是唯一的:
org.eclipsercp.hyperbola/Perspective
public void createInitialLayout(IPageLayout layout) {
layout.addStandaloneView(ContactsView.ID + ":1", false,
IPageLayout.LEFT, 0.33f, layout.getEditorArea());
layout.addView(ContactsView.ID + ":2",
IPageLayout.BOTTOM, 0.70f, layout.getEditorArea());
layout.addView(ContactsView.ID + ":3",
IPageLayout.BOTTOM, 0.70f, layout.getEditorArea());
}
打开 view
org.eclipsercp.hyperbola/OpenViewAction
public class OpenViewAction extends Action {
private final IWorkbenchWindow window;
private int instanceNum;
private final String viewId;
public OpenViewAction(IWorkbenchWindow window, String viewId) {
this.window = window;
this.viewId = viewId;
}
public void run() {
try {
window.getActivePage().showView(viewId,
Integer.toString(instanceNum), IWorkbenchPage.VIEW_ACTIVATE);
instanceNum++;
} catch (PartInitException e) {
// handle exception
}
}
}
使用 Sticky View
这种 view 在多个 perspective 中保持相同的打开位置,与 editor 类似,其在同于 workbench window 中的多个不同 perspective 中是共享同一个实例的,perspective 切换时不会影响其显示。
org.eclipsercp.hyperbola/plugin.xml
<extension point="org.eclipse.ui.views">
<view
class="org.eclipsercp.hyperbola.ContactsView"
icon="icons/groups.gif"
id="org.eclipsercp.hyperbola.views.contacts"
name="Contacts"/>
<stickyView
closeable="false"
id="org.eclipsercp.hyperbola.ContactsView"
location="LEFT"
moveable="false"/>
</extension>
stickyView 只是创建了一个 placeholder,并不是创建实际的 view,它通过 id 来关联一个已存在的 view id。当此 view 打开时,其就变成 sticky view。
创建 Open View 列表菜单
org.eclipsercp.hyperbola/ApplicationActionBarAdvisor
protected void makeActions(IWorkbenchWindow window) {
views = ContributionItemFactory.VIEWS_SHORTLIST.create(window);
}
protected void fillMenuBar(IMenuManager menuBar) {
MenuManager viewsMenu = new MenuManager("Open View", "views");
viewsMenu.add(views);
menuBar.add(viewsMenu);
}
菜单默认显示当前 perspective 定义的 view 列表,这个列表的内容由 IPageLayout.addShowViewShortcut(String) 添加。
使用 Workbench 预定义 View
org.eclipse.ui.ExtensionFactory 类定义了很多 Workbench 预定义的 View、Page、Wizard。
<extension point="org.eclipse.ui.views">
<view
class="org.eclipse.ui.ExtensionFactory:progressView"
icon="icons/progress.gif"
id="org.eclipsercp.hyperbola.views.progress"
name="Progress"/>
</extension>
参考:
《Eclipse Rich Client Platform Designing, Coding, and Packaging Java Applications》:chapter5、chapter16、chapter17
引用自:
http://hi.baidu.com/monkeyhoop/blog/item/965d28251bbe0035c995596b.html
发表评论
-
弥补ExtJs CheckboxSelectionModel不能级联的自定义控件
2012-04-07 09:58 1575由于 ExtJS 在做CheckboxSelectionMod ... -
linux 安装python,设置环境变量
2011-06-15 00:10 3655linux下python开发环境之一——安装python :h ... -
jad 反编译jar
2011-06-01 12:18 16251、解压到任意目录 2、确保安装了winrar 3、点击反编译 ... -
eclipse中TOMCAT配置
2011-05-24 21:23 82671.在servers中新建的SERVER上右击——属性的Gen ... -
JRebel 热插件使用手记
2011-05-19 20:24 43591.1 安装IDE-rebel插件 1. Ecl ... -
VC++ 添加外部库文件lib和dll的步骤
2011-04-13 00:17 11683总结 连接数据库的步骤过程: 1.将文件sqlapi.lib ... -
自定义Dao,反射实现
2011-04-11 09:55 974自定义dao实现 -
javascript获取指定时间函数
2011-03-16 14:03 1455function WeekDate() { ... -
没有找到mfc90ud.dll,因此这个应用程序未能启动 解决方案
2011-01-20 22:44 17041.没有找到mfc90ud.dll,因此这个应用程序未能启动. ... -
VS 与IE兼容性问题
2011-01-08 18:47 1306今天用VS08,对话框控件添加变量时候出错, 变量类型无法选择 ... -
IBM MQ 资料
2010-10-10 20:02 3993MQ介绍 消息队列技术是 ... -
java 获取操作系统收集
2010-09-07 00:37 979判断当前java程序是运行在windows平台还是运行在lin ... -
集群学习一
2010-09-01 00:40 1083一、高可用性集群系统 ... -
Apache 的11大贡献
2010-08-29 13:09 856据国外媒体报道,转眼 ... -
学习过程问题总结
2010-08-08 23:57 834starUML 启动报错:system error code: ... -
一些好的文章收集
2010-07-04 21:45 836ibatis dynamic sql 语句拼接:http:// ... -
webservice 部署服务的几种方式总结
2010-05-09 00:39 3488java 调用webservice的各种方法总结 现 ... -
ibatis的多表查询
2010-05-09 00:34 2075一:描述下: 使用2个表,book,user表。一对多关 ... -
groovy的点点滴滴01(转)
2010-05-07 00:53 822一、 groovy 是什么 简单地说, Groovy 是下 ... -
ibatis 模糊查询
2010-05-07 00:07 1235<!-- 在ibatis中使用安全的拼接语句,动态查询 ...
相关推荐
在打开透视图后,可以看到一个名为 myplugin 透视图的项,选择并打开该选项后,会显示一个空白的 Eclipse 界面。 加入视图(views) ----------------- 视图是 RCP 中的一种重要的扩展点,插件可以通过定义自己的...
在Eclipse RCP中,开发者可以利用工作台(Workbench)、视图(View)、编辑器(Editor)、透视图(Perspective)等核心组件来构建复杂的用户界面。工作台是整个应用程序的中心,负责管理视图和编辑器;视图是显示...
1. **新建一个RCP项目**:在Eclipse中,选择"File" > "New" > "Project",然后在弹出的对话框中选择"Eclipse" > "RCP Application"。 2. **配置应用模型**:在新建项目向导中,指定应用程序的名称、图标等基本信息,...
透视图切换事件是Eclipse中一个关键的交互点,它允许用户在多个工作环境之间流畅地切换。这篇博客“eclipse 获得透视图切换事件”探讨了如何捕获和处理这些事件。 在Eclipse插件开发中,我们可以通过监听`...
你可以创建自定义的EditPart来实现特定的编辑行为,并通过透视图来安排其在工作台窗口中的位置。 **总结** Eclipse RCP提供了一个强大的平台,用于构建功能丰富的桌面应用程序。通过理解并利用RCP中的视图和编辑器...
在RCP应用中,界面布局通常由多个组件构成,如视图(View)、编辑器(Editor)、透视图(Perspective)等。 视图是RCP界面中的一个重要组成部分,它们展示了应用程序的不同方面,如数据列表、图表或配置选项。视图...
2. **基本结构**:RCP应用程序基于工作台(Workbench)模型,包括窗口(Window)、透视图(Perspective)、视图(View)和编辑器(Editor)。理解这些基本元素的职责和交互方式是入门的关键。 3. **插件开发**:RCP...
在“Eclipse RCP 例子程序”中,我们可能找到一系列的示例代码和项目,这些示例展示了如何利用Eclipse RCP的各种组件和机制来构建实际的应用。以下是一些关键的知识点: 1. **插件系统**:Eclipse RCP的核心是其...
通过分析这些源码,开发者可以了解到RCP应用的基本结构,包括工作台(Workbench)、视图(View)、编辑器(Editor)、透视图(Perspective)等核心组件。学习如何组织和实现这些组件,可以帮助开发者构建功能丰富的...
每个Eclipse实例只能打开一个工作空间,但多个工作台窗口可以共享同一个工作空间。 ##### 8. Perspective 透视图定义了页面的布局,例如Java透视图、调试透视图等。每个透视图都有自己的视图和编辑器布局,方便...
2. **Workbench**(工作台):Eclipse RCP应用的核心组件之一,管理多个窗口和透视图。 3. **Perspective**(透视图):一种逻辑布局,用于组织编辑器和视图,为用户提供特定的工作环境。 4. **Editor**(编辑器):...
4. **透视图(Perspective)**:透视图定义了工作台窗口的布局,它可以包含多个视图和编辑器。这使得用户可以根据自己的需求调整工作环境。 5. **命令(Command)与 Handler**:RCP使用命令模型来处理用户的操作,...
每个 Eclipse 实例只能在一个时间使用一个工作空间,但多个 WorkbenchWindow 可以共享同一个工作空间。 8. **Perspective(透视图)**:透视图定义了 WorkbenchWindow 的布局方式,例如 Java 透视图和 Debug 透视...
2. **Perspective**:透视图是工作台的一个组织单元,它可以包含多个视图和编辑器,并且根据不同的任务或用户需求进行配置。例如,你可以为编程任务创建一个透视图,为数据库查询创建另一个。 3. **View**:视图是...
5. **透视图(Perspective)**:透视图是工作台中组织视图和编辑器的方式,可以根据不同的工作场景进行切换。 6. **命令(Command)与菜单(Menu)**:Eclipse RCP的命令系统允许动态创建和绑定菜单项,实现了行为...
Eclipse RCP支持多编辑器打开,可以同时处理多个任务。 5. **命令(Command)与手势(Handler)**:命令是Eclipse RCP中的动作抽象,手势则将命令与用户操作(如鼠标点击、键盘快捷键)关联起来。这种设计使得UI...
RCP 应用程序通常由多个插件组成,每个插件代表应用程序的一个特定功能或组件。这些插件可以互相通信,通过扩展点和扩展实现功能的组合与扩展。 1.2. Eclipse RCP 构建风格 RCP 应用的基础是插件(Plugin),它们...
总的来说,这个教程通过一系列实际的项目和例子,覆盖了Eclipse RCP插件开发的多个核心概念,包括视图、编辑器、命令、透视图、标记、导航视图、更新管理器以及文本编辑器的实现。通过这些源码,你将能够逐步掌握...
编辑器在不同透视图中是共享的,而视图则不然。 创建第一个RCP程序,可以通过Eclipse的Plugin Development Environment (PDE) 插件向导生成模板项目。步骤包括新建Plug-in Project,选择“Rich Client Application...