- 浏览: 297135 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
M大米饭:
19774279 写道xj1990129 写道PackageF ...
Eclipse插件开发之获得当前项目 -
zhongmin2012:
AST抽象的java语法树 -
wd3389:
好可惜,你写的文章很有帮助,谢谢!
关于博客更新 -
zxjlwt:
http://surenpi.com/2015/07/13/e ...
eclipse扩展点清单 -
zxjlwt:
学习了。http://surenpi.com
Console 控制台扩展(一)
在进行eclipse插件开发的时候,我们经常需要知道当前选中的项目是什么,以便针对项目做一些处理。通过当前项目,我们更可以得到项目中的任何目录和文件。所以获得当前项目的是很有用的。
google了一下这方面的资料。基本都说是通过ISelection来获得。可是ISelection却没说从哪里来,一般都是当做抽象方法的参数,在我们实现方法时传给我们。可是这样很不爽,我们可能经常会需要在没有ISelection参数的方法中获得当前project对象。
没关系,使用下面这段代码就可以让我们在我们插件里的任何地方得到当前项目:
public static IProject getCurrentProject(){ ISelectionService selectionService = Workbench.getInstance().getActiveWorkbenchWindow().getSelectionService(); ISelection selection = selectionService.getSelection(); IProject project = null; if(selection instanceof IStructuredSelection) { Object element = ((IStructuredSelection)selection).getFirstElement(); if (element instanceof IResource) { project= ((IResource)element).getProject(); } else if (element instanceof PackageFragmentRootContainer) { IJavaProject jProject = ((PackageFragmentRootContainer)element).getJavaProject(); project = jProject.getProject(); } else if (element instanceof IJavaElement) { IJavaProject jProject= ((IJavaElement)element).getJavaProject(); project = jProject.getProject(); } } return project; }
上述是抄袭网上的做法,获取选中的节点然后获取工程当然是合理的。只是有时候未必好用,因为你不清楚你选中的到底是什么。
public static IProject getProject(){ IProject project = null; //1.根据当前编辑器获取工程 IEditorPart part = getActiveEditor(); if(part != null){ Object object = part.getEditorInput().getAdapter(IFile.class); if(object != null){ project = ((IFile)object).getProject(); } } if(project == null){ ISelectionService selectionService = Workbench.getInstance().getActiveWorkbenchWindow().getSelectionService(); ISelection selection = selectionService.getSelection(); if(selection instanceof IStructuredSelection) { Object element = ((IStructuredSelection)selection).getFirstElement(); if (element instanceof IResource) { project= ((IResource)element).getProject(); } else if (element instanceof PackageFragmentRootContainer) { IJavaProject jProject = ((PackageFragmentRootContainer)element).getJavaProject(); project = jProject.getProject(); } else if (element instanceof IJavaElement) { IJavaProject jProject= ((IJavaElement)element).getJavaProject(); project = jProject.getProject(); } else if(element instanceof EditPart){ IFile file = (IFile) ((DefaultEditDomain)((EditPart)element).getViewer().getEditDomain()).getEditorPart().getEditorInput().getAdapter(IFile.class); project = file.getProject(); } } } return project; }
评论
5 楼
M大米饭
2017-11-08
19774279 写道
xj1990129 写道
PackageFragmentRootContainer 是哪个包里面的啊..我刚开始学
import org.eclipse.jdt.internal.ui.packageview.PackageFragmentRootContainer;
为什么我导不了这个包 可以发我一下么
4 楼
19774279
2013-05-22
xj1990129 写道
PackageFragmentRootContainer 是哪个包里面的啊..我刚开始学
import org.eclipse.jdt.internal.ui.packageview.PackageFragmentRootContainer;
3 楼
xj1990129
2013-05-07
PackageFragmentRootContainer 是哪个包里面的啊..我刚开始学
2 楼
冷炳腾
2012-12-10
suyang119 写道
你确定这个方法是可以的吗?为什么我这边报错。
以最后那段代码为例,它是通过两种方式尝试获取当前活动的IProject对象。
第一种是通过活动的也就是你正打开的编辑器对象为基础,这个时候你打开的是那个IProject里面的文件,获取的就是那个IProject。
第二种是通过ISelectionService服务获取当前选中的对象,我这里只是对eclipse默认的一种类型的对象进行了处理。
如果你选中了非上述类型的对象,就需要自己在这个代码的基础上完善。
1 楼
suyang119
2012-10-30
你确定这个方法是可以的吗?为什么我这边报错。
发表评论
-
关于博客更新
2012-12-10 23:52 951由于不再从事IDE的开发,以后这个博客不会继续更新了,希望上面 ... -
给GEF拖放功能
2012-03-27 13:08 1106本文来自刘刚的博客 我们知道SWT支持Native的拖 ... -
获取当前活动的编辑器
2012-05-14 01:12 1260最近在写编辑器的时候,发现出现一个问题,很多东西焦点在编辑器上 ... -
Eclipse中UTF-8字符集配置
2012-02-02 16:08 1507如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中 ... -
IExtensionPoint和IExtension
2011-12-09 17:11 1671eclipse的核心框架是OSGi,在这个基础之上发展出ecl ... -
eclipse开源的一些项目的介绍
2011-11-15 16:34 34271.M2T:模型生成文本 JET:生成代码的工具,根本模型定 ... -
IDE相关有价值的链接
2011-11-09 15:01 945Eclipse 程序界面美化技术: http:/ ... -
Eclipse的开源应用的详细介绍
2011-11-09 13:33 1328Eclipse 生态系统非常大,有时候甚至达到了恐怖的地步 ... -
关于IFigure相关的文章的链接的收集
2011-11-07 09:18 957序言: http://www.4ucode.com/Study ... -
扩展点中的表达式总结
2011-10-10 14:23 1369本文来自:http://www.ceclipse.org/re ... -
自定义 RCP 编辑器和视图标题菜单关闭操作
2011-09-30 15:07 1484编辑器和视图标题的关闭操作特指标题栏 最右方的关闭按钮操 ... -
RCP View右键弹出菜单的使用
2011-09-30 15:02 1549在RCP里,Viewer可以拥有自己的右键弹出菜单,Ecl ... -
自定义 RCP 编辑器和视图标题菜单
2011-09-30 14:24 1797编辑器和视图标题中有许多默认的菜单,这些菜单不是由 IEdit ... -
Eclipse中类型扩展机制分析
2011-07-29 16:03 28891.标准的适配器模式 适 ... -
Eclipse RCP 中的常用小技巧
2011-07-25 14:56 36621.实现窗口的透明功能 通过函数Shell.setAlpha ... -
XML解析(一)
2011-07-20 14:43 501在eclipse中很多时候都需要对XML文件进行解析,解析xm ... -
RCP(二)
2011-07-20 13:48 13591.在RCP应用中,我们或多或少会依赖一些eclipse官方或 ... -
在RCP中使用package explorer视图
2011-07-19 17:14 1720在workbenchadvisor中的initialize方法 ... -
eclipse中扩展点的添加和删除
2011-07-19 16:48 1304ExtensionTracker是IExtensionTra ... -
eclipse扩展点清单
2011-07-19 14:31 1805Platform runtime org.ecl ...
相关推荐
在进行eclipse插件开发过程中,一个插件可能依赖于许多插件,PDE提供了关系列举,但是发现没有提供将当前插件依赖的jar包直接导出的功能,此插件分析PDE的插件依赖然后增加jar文件获取
在开发一个项目的时候总需要在浏览器和eclipse直接切换,使用eclipse内置的还不方便,所以此插件就是在eclipse中直接调用浏览器来打开项目的插件,可以很方便快捷的打开项目,只需要把当前开发的项目路径配置上即可...
eclipse插件之Activiti BPMN 2.0 designer,activiti开发必备的可视化插件,当前版本为5.9.3,适 用于eclipse3.7以上版本,已经在eclipse3.7、3.8版本中亲自测试通过。 使用方法: 将解压后的文件夹“Activiti BPMN...
1.4 获取与安装Eclipse.. 11 1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... 15 2.1.3 ...
1.4 获取与安装Eclipse.. 11 1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... ...
原创Eclipse插件: 高级搜索功能 - com.realzyc.search.jar Eclipse Plugin 插件 java 全局 搜索 + 特性: 相比与原有eclipse仅支持的在当前文档的搜索功能, 本插件支持了如下的搜索范围: - 当前文档 原有 查找/...
eclipse查看jar包源码工具:在Eclipse查看开发包jar源码的方法如下: 1.选择项目,右键中单击【Properties】 2.【Java Build Path】-【Configure Build Path】-【Libraries】,在下面找到如:Guava-r09.jar包,...
CDT 项目(有关链接, 请参阅本文后面的 参考资料一节)致力于为 Eclipse 平台提供功能完全的 C/C++ 集成开发环境(Integrated Development Environment,IDE)。 虽然该项目的重点是 Linux,但它在可使用 GNU ...
本插件是参照esay explorer插件进行开发的,能够在eclipse中快速打开CMD窗口,并自动切换到当前文件目录下,方便利用CMD执行命令。 将QuickCmd文件放到eclipse的dropins下或者将插件放到plugins即可。
1.4 获取与安装Eclipse.. 11 1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... ...
代码统计插件 eclipse plugin java 提供xls导出。 liugang594 开发的,方便下载 这是一款小型的代码统计软件。它具有以下功能: 1、良好的统计性能。可以统计各种方式的注释,如单行、多行注释;注释在行前 、行...
Eclipse可视化开发之windowBuilder插件,eclipse插件,为2019-07-16当前最新版的WindowBuilder插件>>repository.zip,该插件为离线安装, 以下为安装步骤: 离线安装说明 1,把下载的windowbuilder.zip,解压出...
单元测试框架TestNG的eclipse插件安装说明: 本资源包含org.jtester.plugin_0.2.2.jar和org.testng.eclipse_6.1.1.20110713_1401.7z。将org.testng.eclipse_6.1.1.20110713_1401.7z解压缩后得到的文件org.testng....
在eclipse编辑器中: 1、随时右键保存当前文件路径到文件清单中。 2、随时打开当前文件所在的系统目录,或打开当前Java类所编译生成的class目录 3、点击打包可直接根据文件清单生成你想要的补丁包,保存到指定地方
Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse...
Buildship是一组Eclipse插件,可将Gradle与Eclipse IDE进行深度集成。 Buildship托管在。 要求 Buildship可以与Eclipse IDE 4.2.x或更高版本一起使用。 较早版本的Eclipse IDE可能可以运行,但尚未经过明确测试。 ...
Eclipse是一个当前很受欢迎的通用IDE集成开发平台.广泛地应用于软件开发领域。它同时也是一个开放源代码项目.提供了一个用于开发插件的框架和环境,使创建、集成和使用软件工具更加方便容易。Eclipse开发平台可以...
ErrorLinkyThing 这是一个粗略的 Eclipse 插件,它将文件的超链接... 对于那些不熟悉 Eclipse 插件开发的人,这里是使用插件的一种方法: 获取文件并将它们作为项目在 Eclipse 中打开。 找到插件用来识别文件行引用的
eclipse 有一个插件是open explorer,我最近下载下来安装不能用了,查了一下原理,自己开发了一个小插件 该插件主要是可以用windows的explorer 打开eclipse中被选择的文件或文件夹的位置,不用再复制路径信息然后...
Java是当前比较流行的开发语言之一,它有着自己的易用特点与性能优势,比如跨平台、安全性、多线程、网络Socket编程、数据流概念等方面,因此通过对开源即时通讯LinuxQQ的研究和分析,基于Java语言和J2EE规范设计了...