contains:判断是否存在指定的资源。

来源:互联网 发布:恶意软件图片 编辑:程序博客网 时间:2024/05/17 10:03

(4) IJavaModel

  此接口表示根 Java 元素,对应于工作空间。是所有具有 Java 性质的项目的父类。它对于Java项目的作用和IWorkspaceRoot对于IProject的作用相似。

  contains:判断是否存在指定的资源。

  getJavaProject:返回指定名字的Java项目,返回值类型是IJavaProject。

  getJavaProjects:返回所有的Java项目,返回值类型是IJavaProject[]。

  getWorkspace:返回所在的工作空间。

  (5) IJavaProject

  此接口表示Java项目。

  IJavaElement findElement(IPath path):返回项目的path路径下的Java元素。

  IPackageFragment findPackageFragment(IPath path):返回项目的path路径下的IPackageFragment。

  IPackageFragmentRoot findPackageFragmentRoot(IPath path):返回项目的path路径下的IPackageFragmentRoot。

  findType:根据一个全名取得此元素的类型,此类有数个重载方法,返回值类型为IType。

  getAllPackageFragmentRoots:返回所有的IPackageFragmentRoot,返回值类型是IPackageFragmentRoot[]。

  getOutputLocation:返回输出路径,返回值类型是IPath。

  getRequiredProjectNames:返回依赖项目,返回值类型是字符串数组。

  setOutputLocation:设定输出路径。

  (6) IPackageFragment

  此接口表示整个包或者包的一部分。

  createCompilationUnit:创建一个ICompilationUnit,返回值类型是ICompilationUnit。

  getClassFile:返回指定名称对应的IClassFile,返回值类型是IClassFile。

  getClassFiles:返回所有的IClassFile,返回值类型是IClassFile[]。

  getCompilationUnit:返回指定名称对应的ICompilationUnit,返回值类型是ICompilationUnit。

  getCompilationUnits:返回所有ICompilationUnit,返回值类型是ICompilationUnit[]。

  getKind:判断此包是源码包还是普通包,返回值是int型,如等于IPackage- FragmentRoot.K_SOURCE则是源文件包,如等于IPackageFragmentRoot.K_BINARY则为普通包。

  hasSubpackages:是否有子包。

  (7) IPackageFragmentRoot

  此接口表示一组包段,并将各段映射至底层资源,它可以是文件夹、JAR或ZIP文件。

  createPackageFragment:创建一个IPackageFragment,返回值类型是IPackage- Fragment。

  getKind:此包段是源码包段还是二进制包段,返回值类型是int,如果等于IPackageFragmentRoot.K_SOURCE则是源文件包段,如果等于IPackageFragment- Root.K_BINARY则为二进制包段。

  getPackageFragment:根据包名返回对应的IPackageFragment。

  常用工具类

  (1) JavaCore(定义在org.eclipse.jdt.core包下)

  JavaCore从Plugin继承,它是JDT插件的生命周期管理器。不过对于第三方插件开发人员来说,它的重要性更多地体现在它提供的一些工具类方法中。

  IJavaElement create(IFile file):从文件创建对应的Java元素。

  IJavaElement create(IFolder folder):从文件夹创建对应的Java元素。

  IJavaProject create(IProject project):得到IProject对应的IJavaProject。

  IJavaElement create(IResource resource):从资源创建对应的Java元素。

  IJavaModel create(IWorkspaceRoot root):从工作空间根目录得到对应的IJavaModel。

  IClassFile createClassFileFrom(IFile file):从文件创建对应的IClassFile。

  ICompilationUnit createCompilationUnitFrom(IFile file):从文件创建对应的ICompilationUnit。

  style="LINE-HEIGHT: 17.5pt; TEXT-INDENT: 21pt"(2) JavaUI(定义在org.eclipse.jdt.ui包下)

  JavaUI中定义了常用的Java插件界面相关的方法。

  createPackageDialog:创建一个包选择对话框,返回值是SelectionDialog。

  createTypeDialog:创建一个类型选择对话框,返回值是SelectionDialog。

  IEditorPart openInEditor(IJavaElement element):用编辑器打开指定的Java元素并返回编辑器实例。

  revealInEditor(IEditorPart part, IJavaElement element):在编辑器中定位元素element。

  插件开发中经常会碰到一些常用的技巧,掌握这些技巧可以极大地提高插件的开发效率,并且可以减小插件的体积。下面列出一些常见的技巧。

  (1) 由一个普通项目得到Java项目

  Java项目是一种特殊的项目,需要注意的是IJavaProject并不是从IProject继承的。不能将一个IProject对象强制转换成一个IJavaProject对象,也不能把一个IJavaProject实例赋值给IProject变量。

  由IProject项目得到Java项目的方式:

  IJavaProject javaPoject = JavaCore.create(IProject);

  由IJavaProject得到IProject的方式:

  调用IJavaProject的IProject getProject();

  (2)得到工作空间中的所有Java项目

  我们可以首先得到工作空间中的所有项目,然后逐个进行转换。不过这不免麻烦了一些,下面介绍更好的方式。IJavaModel是所有Java项目的根,通过它就可以得到所有的Java项目:

  IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IJavaModel jModel = JavaCore.create(root); IJavaProject jProject[] = jModel.getJavaProjects();

  (3) 打开Java编辑器并显示Java编译单元的特定成员

  代码如下:

  void showMethod(IMember member) { ICompilationUnit cu = member.getCompilationUnit(); IEditorPart javaEditor = JavaUI.openInEditor(cu); JavaUI.revealInEditor(javaEditor, member); }

  (4) 在工程下创建一个com.cownew包,并创建一个Hello.java文件

  (5) 打开【打开类型】对话框

  以下代码段使用 JavaUI 类来打开【打开类型】对话框:

  new ProgressMonitorDialog(parent), SearchEngine.createWorkspaceScope(),

  用类似方法还可以创建【打开包】和【打开主要类型】对话框。

  (6) 打包指定的文件

  我们写一些工具的时候也许需要把文件打成jar包,然后进行发布到应用等操作,调用JDT提供的类可简化这个操作(用到的打Jar包的类都在org.eclipse.ui.jarpackager下):

  JarPackageData description= new JarPackageData(); IPath location= new Path("C:/cownew.jar"); description.setJarLocation(location); description.setSaveManifest(true); description.setManifestMainClass(mainType); description.setElements(filestoExport); IJarExportRunnable runnable= description.createJarExportRunnable(parentShell); new ProgressMonitorDialog(parentShell).run(true,true, runnable);

  参数mainType表示Jar包的main类,filestoExport为要打包的文件。

  (7) 自动设置Java项目的构建路径

  有一些插件会将需要的jar包自动设置到构建路径上,比如使用WTP的新建向导新建web项目的时候就会把web开发需要的jar包自动放入项目的构建路径,使用PDE的“将项目转换为插件项目”功能后项目的构建路径中就增加了插件依赖项的库。那么它们是怎么实现的呢?

  Java项目的构建路径有如下几种:源文件夹、二进制库、依赖项目、类路径变量和类路径容器。

0 0
原创粉丝点击