快速业务通道

将基于Swing的开发工具插入Eclipse中 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
)。请一定要选中 Wizard 中的“Inherited abstract methods”选项。

每次双击 ThirdParty.java 文件时,Eclipse Platform 都执行 EdLauncher.open(IFile) 来调用该文件类型的缺省编辑器。Platform 将单击的构件作为 IFile 传送给方法。在这种情况下,IFile 是一个 Java 源文件,因此您可以将它因此您可以将它强制转型为 ICompilationUnit。

由于 Ed 并不是为了处理 JDT 对象而设计的,所以您必须从 ICompilationUnit 中抽取源代码内容并将它放到 Ed 中以便查看:

EditorintegrationPlugin.getDefault().getEd().getEditorPane().setText   (ICompilationUnit.getSource()); EditorintegrationPlugin.getDefault().getEd().show();

一旦执行了 show() 方法,Ed 就被作为主 Workbench 窗口外部的一个 JFrame 显示(请参见 图 3)。插件记录已编辑的 ThirdParty.java 的项目名称和包名称。当您试图保存 Ed 中所作的更改时,该信息是至关重要的。

图 3. Swing 编辑器显示在 Workbench 外面

将基于Swing的开发工具插入Eclipse中 - 编程入门网

双向传递(round-tripping):将源代码的更改返回到 Workbench 中

传统的编辑器将在平面文件、二进制资源库中保存源代码,或者将源代码保存到源代码控制系统中。作为一个编辑器,Ed 需要一些方法来保存它显示的对源代码的更改。

Ed 有一个“Save”按钮( JButton),如 Swing 编辑器:Ed 中所描述。按下按钮后, actionPerformed() 方法被调用,Save 按钮触发一个事件。实现一个事件侦听器的对象接收事件并执行源代码保存操作。

您可以用 Singleton 实用程序类(请参阅 编辑器启动程序)作为实现事件侦听器的对象。实用程序类一接收到来自 Save 按钮的事件对象,就从 Ed 中抽取源代码,然后将源代码放入对应的 Workbench 对象中。保存到文件系统的实际工作被委托给 Eclipse Platform。

多个文件在 Workbench 中可能拥有相同的名称。这就是 ThirdParty.java 的项目名称和包名称有用的地方。该信息由插件存储。确切的实现方式由您决定。假定编辑器存储信息,您可以在实用程序类中使用下列代码片段(snippet):

将基于Swing的开发工具插入Eclipse中(4)

时间:2011-03-23 IBM Terry Chan

清单 3. 管理文件名称

public void saveButtonPressed() {   try {     IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();     IProject myProj = root.getProject(getEd().getProjectname());     IFolder myFolder = myProj.getFolder(getEd().getPackageName());     IJavaElement myPackageFragment = JavaCore.create(myFolder);     if (myPackageFragment != null) {      IPackageFragment packageFrag = (IPackageFragment)myPackageFragment;      String sourceFromEd = getEd().getJEditorPane1().getText();      ICompilationUnit icu = packageFrag.getCompilationUnit("ThirdParty.java");      icu.getBuffer().setContents(sourceFromValidator);      icu.save(null, true);     }     else {      System.out.println("myPackageFragment is null.");     }   } catch (Exception e) {     e.printStackTrace();   } }

逆向进行双向传递

清单 3 处理“正向”双向传递。还需要“反向”双向传递来把用 Eclipse Platform 的 JDT Java 编辑器在 ThirdParty.java 中所作的任何更改带回到 Ed。

实用程序类可以实现接口 org.eclipse.jdt.core.IElementChangedListener ,您可以用这个接口跟踪对任何 IElements(包括 ICompilationUnit)作的更改。当源代码更改被引入到 Workbenc

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号