- 浏览: 383031 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
zxjlwt:
学习论。确实很全啊。欢迎交流http://surenpi.co ...
eclipse dialog 对话框 大全 -
zxjlwt:
很好。http://surenpi.com
eclipse 源码泛读 -
string2020:
有卵用???
activiti 第一个例子 helloworld -
ysj_csdn:
能给个正确的例子?
activiti 第一个例子 helloworld -
zxjlwt:
学习了。http://surenpi.com
Eclipse扩展点介绍
OK,我们已经有了一个初步可运行的Navigator了,现在它看起来已经比较丰富了。不过我们在xml文件下的任意结点上点右键时,都没有菜单显示。另外假如我们有一个新的wizard,我们也想像java的package explorer视图一样显示在new菜单的那一层。那我们应该怎么做呢?这一节就来介绍这部分的实现。 实际上,从上面的介绍里,很多人可能都已经知道了怎么完成这些事情。不过这里还是写一个完整的介绍过程。 先说一下我们的目标:在IResource对象的new菜单里,加上java project wizard。在xml文件的node上,加一个菜单用来显示它的所有属性。 首先我们完成第一件事。 增加快捷Wizard 第二节中,我们提到过,在org.eclipse.ui.navigator.navigatorContent扩展点的navigatorContent里也有两个子扩展:commonWizard和actionProvider。 这里要加一个wizard的快捷方式,就是需要扩展这个commonWizard。所以在上面我们扩展的navigatorContent里,我们再声明子扩展:commonWizard。如下: <commonWizard type="new" wizardId="org.eclipse.jdt.ui.wizards.JavaProjectWizard"> <enablement> <instanceof value="org.eclipse.core.resources.IResource"> </instanceof> </enablement> </commonWizard> 有三种类型的wizard,这里我们选择new;然后就是指定wizardId,这里我们指定为java project wizard的ID;最后就是定义出现在条件,这里定义的条件就是如果选择的对象为IResource对象,则出现。 最后我们的图如下: 图九 显然你可以很简易的推到其他两种类型wizard的快捷定义。 增加自定义菜单 现在看我们的XML下的那些结点,点右键时没有菜单显示。这里我们就给他们加一个显示值的菜单。 要实现自定义菜单,我们就需要扩展和上面的commonWizard在同一级的actionProvider。先看一下我们的声明: <actionProvider class="com.tibco.cdc.liugang.navigator.actions.LiugangCommonActionProvider" id="com.tibco.cdc.liugang.navigator.navigatorContent.actions"> <enablement> <instanceof value="org.w3c.dom.Node"> </instanceof> </enablement> </actionProvider> 这里有五个属性定义,不过我们需要关心的只有上面两个:class用来定义实现类;id唯一标识这个actionProvider。然后我们加了一个可用的约束条件:选择的对象需要是一个Node实例。 定义完actionProvider之后,我们就要注册这个actionProvider了。在我们的viewer扩展的viewerActionBinding的includes下面加一句就行了: <actionExtension pattern="com.tibco.cdc.liugang.navigator.navigatorContent.actions"> </actionExtension> 好,接下来我们先完成实现类,如下: public class LiugangCommonActionProvider extends CommonActionProvider { private Action propertyAction; private ICommonViewerSite viewSite; public LiugangCommonActionProvider() { } @Override public void init(ICommonActionExtensionSite site) { super.init(site); viewSite = site.getViewSite(); propertyAction = new Action("Show Property") { @Override public void run() { IStructuredSelection selection = (IStructuredSelection) viewSite .getSelectionProvider().getSelection(); Object firstElement = selection.getFirstElement(); if (firstElement instanceof Node) { Node selectedNode = (Node) firstElement; MessageDialog.openInformation(viewSite.getShell(), "Property", getAllAttributes(selectedNode)); } } }; } @Override public void fillContextMenu(IMenuManager menu) { menu.add(propertyAction); } private String getAllAttributes(Node node) { NamedNodeMap attributes = node.getAttributes(); String content = "<"; for (int i = 0; i < attributes.getLength(); i++) { Node item = attributes.item(i); content += item.getNodeName() + "=" + item.getNodeValue() + " "; } content += ">"; return content; } } 看起来像是我们已经完成了所有的过程。不过如果此时我们在node上点右键的话,并不出现右键菜单。为什么呢? 这里我们需要提到另一个扩展元素:possibleChildren。它和triggerPoints在同一层。 这个扩展元素指出我们的内容扩展中的哪些结点类型可以指供label和parent。如果你要实现editor link或者是想使得setSelection()方法可用,则必须提供这个扩展元素的声明。 这里,对应于我们点右键菜单,显然我们应该使得setSelection()方法可用,这样才能知道我们在资源树上选择了哪个node结点,最后传到我们的actionProvider的实现。完成我们的右键菜单。这里我们可以如下声明: <possibleChildren> <or> <instanceof value="org.w3c.dom.Node"> </instanceof> </or> </possibleChildren> 最后效果如下: 图十
发表评论
-
离线使用tycho对eclipse RCP打包导出
2015-09-02 09:22 1261http://www.bubuko.com/infodetai ... -
RAP源码泛读及分析
2014-01-17 13:27 1176SWT、RWT如何保证大部 ... -
rap 的学习1
2013-10-27 22:02 800RAP 2.2 December 2013 (planne ... -
tycho 打包不同平台的RCP
2013-06-18 10:56 1179<configuration> < ... -
rap web开发
2013-04-10 17:12 909rap项目已经2.0(changelog) 这次改动 ... -
subversion升级到1.7
2012-09-07 15:37 1931http://www.cnblogs.com/xiziy ... -
ubuntu eclipse 中使用jadclipse java反编译
2012-09-07 11:04 12071:net.sf.jadclipse_3.3.0.jar 发 ... -
Nebula Project
2012-08-10 02:42 895http://www.eclipse.org/nebula/ -
Eclipse Plug-in dependencies – Required Bundle vrs. Import-Package
2012-07-19 00:32 3047http://www.vogella.com/blog/200 ... -
rcp培训
2012-07-19 00:22 1255<!-- @pa ... -
No schema found for … extension point 问题
2012-03-13 13:09 1599很多时候在编辑plugin.xml 文件的Extensi ... -
Eclipse中的org.eclipse.core.resources.markers扩展点
2011-11-09 11:26 1950扩展点配置如下:<extension ... -
开发一个调试 JSP 的 Eclipse 插件
2011-10-27 22:34 1594AVA调试框架(JPDA)简介JPDA是一个多层的调试框架 ... -
gmf 优点
2011-09-28 15:09 991http://www.ibm.com/developerwor ... -
gef 与gmf的结合
2011-09-28 14:03 1051以前的项目已经就是直接用gef,自己写模型的。 今天研 ... -
rcp自动加载插件
2011-09-28 13:56 1218http://blog.ixpub.net/html/9 ... -
rcp DialogSettings IPreferenceStore IMemento
2011-09-22 14:31 1154三个不的不同点: IMemento 要求rc ... -
rcp IPreferenceStore
2011-09-22 14:21 1277IPreferenceStore store=Acti ... -
rcp DialogSettings
2011-09-22 14:10 1190Activator.getDefault().getDialo ... -
rcp IMemento 状态的保存
2011-09-22 13:50 1145rcp 可以对每个part进行状态的保存。 保存数据 ...
相关推荐
这篇博客“定义自己的Common Navigator二”将深入探讨如何利用源码和工具来自定义这一组件,以满足特定项目的需求。 首先,我们来理解Common Navigator的核心概念。Common Navigator Framework (CNF) 是Eclipse中...
总结而言,Common Navigator Framework (CNF) 是一个强大且灵活的框架,它为 Eclipse 用户提供了丰富的自定义选项,以便他们可以根据自己的需求定制 Navigator 的行为和外观。通过深入理解 CNF 的各个组成部分及其...
3. **定义views扩展点**:在`plugin.xml`文件中,你需要声明一个新的`org.eclipse.ui.views`扩展点,指定视图的类(通常使用`org.eclipse.ui.navigator.CommonNavigator`)以及视图的ID。 4. **配置CommonNavigator...
Common Navigator Framework(CNF)是Eclipse平台中的一个重要组件,主要负责提供一种统一的方式来展示和操作项目的导航结构。这个框架允许开发者创建自定义的导航视图,以适应各种不同的项目类型和开发环境。以下是...
1. **Common Navigator Model**:这是框架的核心,它定义了一个通用的数据模型,用于表示各种类型的数据结构。该模型抽象了数据源,使得不同的数据源可以通过适配器转换为统一的表示。 2. **Navigator Viewer**:它...
【使用CommonNavigator开发资源管理器】的文档主要介绍了如何利用Eclipse的Common Navigator Framework (CNF) 插件来创建自定义的资源管理器。Common Navigator Framework是Eclipse平台的一部分,它提供了一套完整的...
在Eclipse插件开发中,`CommonNavigator`框架是一个用于构建自定义资源管理器的关键组件。这个框架允许开发者创建和扩展资源视图,比如Eclipse的项目管理器。本篇文章将详细讲解如何利用`CommonNavigator`开发资源...
`CommonNavigator`类是实现此功能的基础,开发者可以通过扩展这个类并重写相关方法来自定义视图行为。 3. **AdapterFactories**:CNF使用适配器工厂(AdapterFactory)将模型对象转换为可以被视图渲染的结构。...
7. **Part Descriptor**:定义Common Navigator视图在工作台中的位置和行为,通过`org.eclipse.ui.perspectiveExtensions`和`org.eclipse.ui.views`元素进行配置。 8. **Perspective**:你可以创建或修改现有透视图...
3. **定义视图部分**:使用`org.eclipse.ui.views`扩展点来定义视图部分,并指定`org.eclipse.ui.navigator.CommonNavigator`类作为视图部分的实现。 #### 四、定义视图部分 接下来,我们将详细介绍如何定义视图...
本篇文章将继续深入探讨如何构建一个通用导航框架(Common Navigator Framework,简称CNF)查看器,并着重介绍如何向该查看器添加内容扩展。通过本教程的学习,您将能够掌握在CNF查看器中展示特定文件类型数据的方法...
<menuContribution locationURI="popup:org.eclipse.ui.navigator.CommonNavigator#menu"> commandId="com.example.deletePropertyCommand" label="Delete Property" style="push"> ``` 这里,`...
2. **通过`org.eclipse.ui.navigator.navigatorContent`作为动作提供者贡献操作**:有时客户需要更程序化的控制,具体包括哪些操作贡献到特定上下文下的某个菜单,以及根据当前选择配置了哪些可重定向操作。...
本项目"flutter-common-widgets-app-master.zip"是一个专门为Flutter初学者和进阶者设计的Android开源项目,旨在帮助学习和提升Flutter开发技能。 项目的核心内容主要集中在对Flutter常见组件的实践运用上,这包括...
对于MagicIndicator,我们需要创建一个CommonNavigator实例并设置其适配器来定义指示器的行为。在这里,我们可以自定义每个页面标题的视图,并为未选中和选中的状态设置不同的图片: ```java CommonNavigator ...
总的来说,通过分析jqGrid的源码,开发者不仅可以定制化自己的表格功能,还可以学习到jQuery、JavaScript以及前端数据管理的高级技巧。在实际开发中,掌握jqGrid的源码将大大提高工作效率,同时也能提升对前端技术的...
第 1 章:插入 JFace 和 Common Navigator 框架 第 2 章:使用自定义扩展点扩展 Eclipse 第 3 章:使用 OSGi 服务动态连接应用程序 第 4 章:为 Gogo shell 定义命令 第 5 章:本机代码和片段包 第 6 章:理解服务...
- **Common Navigator**:提供了一个统一的资源视图,可用于浏览项目结构等。 #### 四、下载Eclipse SDK 为了开始开发Eclipse RCP应用,首先需要下载并安装Eclipse SDK(Software Development Kit),该套件包含了...