eclipse插件开发-打开编辑器

eclipse插件开发-打开编辑器

ID:37450862

大小:298.38 KB

页数:12页

时间:2019-05-24

eclipse插件开发-打开编辑器_第1页
eclipse插件开发-打开编辑器_第2页
eclipse插件开发-打开编辑器_第3页
eclipse插件开发-打开编辑器_第4页
eclipse插件开发-打开编辑器_第5页
资源描述:

《eclipse插件开发-打开编辑器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、eclipse插件开发--打开编辑器(上)【打开editor的接口讨论】       先来看一下workbench吧,workbench从静态划分应该大致如下:                   从结构图我们大致就可以猜测出来,workbenchpage作为一个IWorkbenchPart(无论是eidtorpart还是viewpart)的容器,肯定会接受workbenchpage的管理。看了一下,IWorkbenchPage接口定义中确实提供给了如下打开编辑器的操作:             【IWokben

2、chPage提供的接口】1 public interface IWorkbenchPage extends IPartService,ISelectionService,ICompatibleWorkbenchPage{2     3      public IEditorPartopenEdito(IEditorInputinput,StringeditorId)throws PartInitException;4      5      public IEditorPartopenEdito(IEditorI

3、nputinput,StringeditorId, boolean activate) throws PartInitException;6    7      public IEditorPartopenEditor(final IEditorInputinput, final StringeditorId, final boolean activate, final int matchFlags)throws PartInitException;8 }                      那到这边,可能

4、很多人已经知道了怎么调用这些接口了:          PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(...)          (说明:PlatformUI可以看作是整个eclipseui框架的门面类,当然最核心的作用就是让用户获取到workbench。Eclipse中存在的其他一些门面类如:ResourcesPlugin、Platform、JavaCore、JavaUI等)            

5、我们再仔细看一下IWorkbenchPage对应的实现类(org.eclipse.ui.internal.WorkbenchPage)中的以上接口的实现代码,真正在管理Editor的是一个叫做EditorManager的东东(同理,viewpart对应的管理器角色类是叫做ViewFactory的东东)。这里的EditorManager和ViewFactory是workbench实现中非常精华的部分,看一下里面的实现就会很大程度上理解workbench所谓懒加载、懒初始化是如何实现的了,如何实现part复用的...

6、等等。                       上图就用来说明workbench是如何来管理各种part的,其中descriptor角色的核心作用是延迟加载扩展(延迟加载用户通过editors或者views提供的扩展),reference角色的核心作用是用来延迟初时化具体的part(例如避免过早的创建对应的control等等)。再说下去有点偏离主题了,这部分,以后有时间再写                       【IDE工具类提供的接口】            上面IWorkbenchPage提供接口都

7、需要用户准备两样东西:一是创建IEditorInput实例,二是指定editorid。有些用户可能不想干这两件事情,所以在工具类org.eclipse.ui.ide.IDE中提供了其他的接口:1 public static IEditorPartopenEditor(IWorkbenchPagepage,IFileinput) throws PartInitException{}2 3 public static IEditorPartopenEditor(IWorkbenchPagepage,IFileinpu

8、t, boolean activate) throws PartInitException{  }4 5 public static IEditorPartopenEditor(IWorkbenchPagepage,IFileinput, boolean activate, boolean determineContentType){}6 7 public static 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。