在RCP编程时,我们经常要取得IWorkbenchPage,如果是从视图中得到,可以用下面的方法:
IWorkbenchPage workbenchPage = getViewSite().getPage();
有时不是从视图,而是要从外部取得IWorkbenchPage,例如从菜单或者工具栏等,这时,可以使用下面的方法:
IWorkbenchPage workbenchPage = Plugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
其中的Plugin是你的RCP最初建立时一般由Eclipse生成的,其父类为AbstractUIPlugin,当然,你也可以自己写。
一般申明为:
/**
* The activator class controls the plug-in life cycle
*/
public class AuditPlugin extends AbstractUIPlugin {
还有一种方法也可以得到:
IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
在程序中的实例:
//得到IworkbenchPage对象,找到com.raul.views.ShootViewPart这个视图,然后执行视图里面的射门方法
update.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
IWorkbenchPage workbenchPage = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
ShootViewPart shootView = (ShootViewPart) workbenchPage.findView("com.raul.views.ShootViewPart");
shootView.shoot();
}
});
有的时候,我们需要获取目标视图中当前选择的元素,可以直接这样做:
IViewPart viewPart = AuditPlugin.getDefault().getWorkbench()
.getActiveWorkbenchWindow().getActivePage().findView("org.eclipse.ui.navigator.ProjectExplorer");
StructuredSelection sl = (StructuredSelection) viewPart.getSite().getSelectionProvider().getSelection();
Object obj = sl.getFirstElement();
//然后对obj进行各种操作
这样就只用知道视图的id即可,不需要转换该视图类。
分享到:
相关推荐
在实现中,你需要根据实际的模型数据来提供属性的描述符、值和设置逻辑。 3. **注册适配器**:在RCP应用中,适配器不能自动工作,需要通过适配器工厂(AdapterFactory)进行注册。你需要在插件的元数据文件(plugin...
本文将深入探讨如何在基于Eclipse RCP(Rich Client Platform)的应用中,利用适配器模式实现自定义的属性视图。Eclipse RCP是一个强大的框架,用于构建桌面应用程序,而属性视图则是展示对象属性的一种可视化组件。...
在本文中,我们将深入探讨如何使用Eclipse RCP(Rich Client Platform)实现文本内容的对比功能。Eclipse RCP是一个强大的开发框架,它允许开发者构建桌面应用,而文本内容对比则是许多开发工具中的一个基本特性,...
5. **更新和交互**:如果你需要使图表具有交互性,比如根据用户输入动态更新,可以监听视图中的事件,然后更新数据集并调用`chart.repaint()`来刷新图表。 在你的博客中,你可能已经分享了具体的代码示例,这些示例...
eclipse使用内部浏览器加载echarts,过程中可能存在鼠标移动事件不响应,这个是eclipse浏览器中与echarts.js内兼容问题,该问题可通过修改echarts.js解决,如果找不到可以私信我
本教程将深入探讨如何在Eclipse RCP程序中实现ViewPart的占位功能,这对于构建具有多视图的工作环境至关重要。 首先,我们需要理解ViewPart的基本概念。在Eclipse RCP中,ViewPart是用户界面中的一个组件,它通常...
在RCP菜单中的"Event Listener"模式可能是指如何在RCP应用的菜单系统中添加事件监听器,以便当用户执行特定操作时,如点击菜单项,可以触发相应的逻辑处理,例如数据的收集和上传。 在RCP应用中,事件监听是常见的...
在RCP应用中,业务逻辑通常由命令(Command)和控制器(Handler)实现。命令定义了用户可以执行的操作,而控制器则负责执行这些操作。在`plugin.xml`中定义命令,并创建对应的控制器类。 7. **事件监听与通信** ...
在“RCP中文入门教程.pdf”中,你可能会学习到如何创建一个新的RCP项目,编写插件,定义扩展点,创建视图和编辑器,以及如何管理和配置用户的首选项。教程还可能涵盖如何调试和打包RCP应用,以及如何利用Eclipse的...
在 Eclipse RCP 中,视图可以是以下几种类型: 1. Part:Eclipse RCP 的基本视图单元,提供了基本的用户界面元素。 2. View:Eclipse RCP 的视图机制,提供了多种视图类型和视图之间的交互机制。 3. Editor:...
同时,Eclipse RCP提供了一套强大的事件机制,使得VIEWER和EDITOR之间的通信变得简单,例如,当用户在VIEWER中选择了一个项时,可以触发一个事件,使得相关的EDITOR更新其内容以反映所选项的详细信息。 总的来说,...
在IT领域,特别是软件开发中,RCP(Rich Client Platform)是一种基于Eclipse框架的应用程序开发模型,它允许开发者创建功能丰富的桌面应用程序。RCP弹出日期控件是这种环境中用于用户界面交互的一个重要组件,它...
在这个文件中,我们可以期待看到关于如何创建自定义表视图、添加复选框列以及处理用户选择事件的相关代码。开发者可能会使用`SWT`(Standard Widget Toolkit)库,这是Eclipse RCP的基础,提供了各种GUI组件,包括...
总之,控制反转和依赖注射在Eclipse RCP中的应用是通过将对象的创建和依赖管理责任转移给一个容器来实现的,以此降低组件间的耦合,提高代码的可测试性和可维护性。通过Java注解和类加载机制,可以在不修改Eclipse ...
在编辑器开发中,模型可能包括解析和存储文件内容的对象,视图则负责渲染模型数据到用户界面上,控制器则处理用户的输入事件。 3. **工作台(Workbench)服务**:Eclipse提供了许多服务,如资源管理、运行时环境、...
在IT行业中,RCP(Rich Client Platform)是Eclipse框架提供的一种用于构建桌面应用程序的平台。它允许开发者基于已有的框架构建复杂、可扩展的应用,而无需从零开始编写所有基础架构。本篇文章将深入探讨如何在RCP...
在IT行业中,RCP(Rich Client Platform)是Eclipse框架的一部分,它提供了一种构建桌面应用程序的强大工具。RCP界面布局实例着重于如何在RCP应用程序中有效地组织和管理用户界面元素,使得用户能够高效地与应用进行...