
Eclipse源码阅读
cuser_online
致力于软件开发。
展开
-
StructuredViewer的SelectionAll功能是如何实现的
最近有时间就在阅读eclipse源码,今天读了一下Package Explorer视图(所在类为org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart)的内容.我们可以看看其selectionAll是如何实现的.SelectAll效果可能是这样的:即选中所有已展开的树节点.直接贴一下代码吧.package or原创 2012-09-02 10:19:51 · 610 阅读 · 0 评论 -
将Show In菜单添加至视图或编辑器的右键菜单中
涉及的概念其实只有org.eclipse.jface.action.IContributionItem和org.eclipse.ui.actionn.ContributionItemFactory。本文只给出实现方法。IMenuManager manager =...;MenuManager showInSubMenu= new MenuManager("Show In");原创 2012-09-11 17:38:06 · 952 阅读 · 0 评论 -
让你的视图(ViewPart)支持Show In请求(2)
本篇博文接上一篇(让你的视图(ViewPart)支持Show In请求(1))。本篇要描述的内容为:当你自己的视图(或编辑器)激活时,显示相应的目标Show In目标视图并为即将show in的目标视图提供数据支持。1.实现org.eclipse.ui.part.IShowInSource接口,并实现public ShowInContext getShowInContext();方法。原创 2012-09-11 17:35:18 · 801 阅读 · 0 评论 -
让你的视图(ViewPart)支持Show In请求(1)
编辑器和视图都能支持名为Show In的导航操作。这个操作在workbench菜单栏的Navitate菜单的show in子菜单下,UI上的展示可能如下图所示:这一功能通常也会被添加至视图或编辑器的右键菜单中(如何添加在后面的博文中有描述),如下所示:Show In请求,为WrokbenchPart间的交互提供了一种较为通用的方式。本篇,描述的是下面一种需求:将你自己的视图添加原创 2012-09-11 17:29:11 · 1018 阅读 · 0 评论 -
choosePackage(选择package的功能)(ElementListSelectionDialog对话框)
在Eclipse中,新建Class,Interface等向导页(org.eclipse.jdt.ui.wizards.NewTypeWizardPage)中的browse package的功能即是通过下面代码实现的,此处可以注意一下ElementListSelectionDialog类。直接看一下代码吧。protected IPackageFragment choosePackage() {原创 2012-08-28 13:15:29 · 1044 阅读 · 0 评论 -
JDT:详解JavaUI.createTypeDialog方法
在eclipse中,诸如Open Type Choose Super Class Add Interfaces都是通过JavaUI.createTypeDialog方法来实现的,只是所传的参数不一样罢了。我们主要看这个方法中的一些 context,scope ,style, multipleSelection, filter参数。publ原创 2012-08-23 14:02:36 · 1014 阅读 · 0 评论 -
JDT:Choose Source Container Dialog(选择src目录的功能)
源码位于org.eclipse.jdt.ui.wizards.NewContainerWizardPage类中,注意一下ElementTreeSelectionDialog对话框的使用。// ------------- choose source container dialog /** * Opens a selection dialog that allows to select a原创 2012-08-28 13:22:14 · 699 阅读 · 0 评论 -
JDT:Open Resource Action代码阅读
源码位于org.eclipse.ui.internal.ide.handlers.OpenResourceHandler类。//弹出打开资源对话框private final Object[] queryFileResource() { final IWorkbenchWindow window = PlatformUI.getWorkbench() .getActiveWorkb原创 2012-08-28 13:18:42 · 612 阅读 · 0 评论 -
Eclipse源码阅读:Go To Resource
Go To Resource是Eclipse的Navigate菜单下的一个子菜单的功能,如下所示:Go To Resource Action是一个RetargetAction,在org.eclipse.ui.ide插件中定义,plugin.xml中关于此action的定义内容为:<action definitionId="org.eclipse.ui.n原创 2012-09-02 13:25:33 · 1604 阅读 · 0 评论 -
Eclipse源码阅读:Choose Super Class
下午睡了一觉,起来后阅读了New Java Class的部分的代码,对应的向导为org.eclipse.jdt.internal.ui.wizards.NewClassCreationWizard,从New Java Class的功能实现中,我们可以学习到诸如JDT,AST的很多巧妙实现,在后面的博文中,会将自己的阅读心得与大家进行分享,本文只关注于Choose Super Class,如下图用红原创 2012-09-02 18:13:52 · 841 阅读 · 3 评论 -
Eclipse源码阅读:Add Interfaces
本文和Eclipse源码阅读:Choose Super Class类似, 废话不说,直接看代码吧: protected void chooseSuperInterfaces() { IJavaProject project= getJavaProject(); if (project == null) { return; } SuperIn原创 2012-09-02 18:21:55 · 588 阅读 · 0 评论 -
Eclipse源码阅读:GotoTypeAction
Go To Type是Eclipse的Navigate菜单下的一个子菜单的功能,如下所示:大部分内容和{Eclipse源码阅读:Go To Resource点击打开链接}一样.这里直接贴同分析的核心代码,重点部分添加了中文注释./*****************************************************************************原创 2012-09-02 17:59:38 · 826 阅读 · 1 评论 -
通过代码重命名Java工程
在我看来,凡是当前eclipse能做的你都做到。有群友问到如何通过代码重命名Java工程。实际上,org.eclipse.jdt.internal.ui.viewsupport.BasicElementLabels.RenameJavaProjectChange 中就是eclipse的实现。重命名工程无非是修改工程IProjectDescription。涉及到两个方面:1.原创 2012-11-22 11:12:20 · 1004 阅读 · 0 评论