`

IEditorInput介绍

    博客分类:
  • GEF
 
阅读更多
1.一个编辑器要对应一个IEditorInput和EditorPart。IWorkbenchPage是根据IEditorInput取得EditorPart的。
在通常的应用中,通用是在表格或者树中双击结点然后打开编辑器进行编辑。这时候,针对一个结点最多只能有一个编辑器出现,即如果
针对某个结点已经打开了编辑器,这时候就不应该再打开一个编辑器,而应该将已经打开的编辑器置顶,"置顶"在这里指将编辑器激活。
通常有2种做法,方法一是针对IEditorInput制造一个单例,这样自始至终都只会有一个IEditorInput,这样也可以保证EditorPart仅有一个。
当然这种方法感觉有点怪。 我个人喜欢用第二种方法,因为比较自然。方法二,可以这样做,在生成树或表格时,也设置该结点的IEditorInput,
即针对结点类型,增加2个方法,setInput(IEditorInput input)和getInput()。这样在双击结点时,input直接从结点中去获取。这样也可以保证只打开一个
编辑器。
 
 
2.编辑器的加载
编辑器的加载是通过IWorkbenchPage的openEditor(IEditorInput input,String editorId)来实现的
 
3.编辑器的置顶。直接看代码
IWorkbenchPage wpg = getViewSite().getPage();
IEditorpart editorPart = wpgfindEdiotr(entry.getInput());//entry为结点所对应的类型
//如果此编辑器已经存在,则将它设为当前的编辑器(最顶端),否则重新打开一个编辑器
if(editorpart != null){
    wpg.bringToTop(editorPart);
}else{
      try{
        wpg.openEditor(entry.getInput(),MyEdiotr.ID);
//如果需要取得EditorPart的实例进行一些操作,那么可以这样做
MyEditor myEidtor = (MyEditor)wpg.openEditor(entry.getInput(),MyEdiotr.ID);//注意强制转型
//取得myEditor实例后就可以进行各种自己想要进行的操作啦
}catch(PartInitException e){
   e.printStackTrace();
}
 
}
 
 
5.IEditorInput的方法说明
①public boolean exists(){
  return true;//返回true,则打开该编辑器后它出现在Eclipse主菜单"文件"最下面的最近打开的文档栏中。返回false则不出现在其中
}
 
②public ImageDescriptor getImageDescriptor(){
     return WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstans.IMG_ETOOL_HOME_NAV);
}
编辑器标题栏的图标,不过它还需要在编辑器中用setTitleImage方法设置,才能出现在标题栏中
如:setTitleImage(input.getImageDescriptor().createImage());
③public String getName();
编辑器标题栏的显示名称,和上面的getImageDescriptor一样也要在EditorPart中有setPartName()方法设置,才能出现在标题栏中,如
setPartName(input.getName());
 
④public String getToolTipText()
编辑器标题栏的小黄条提示文字,不需像getName那样在EditorPart中进行再设置
 
⑤public IPersistableElement getPersistable()
返回一个可以用作保存本编辑器输入数据状态的对象
 
⑥public Object getAdapter(Class adapter)
得到一个编辑器的适配器,如下:
// 得到一个编辑器的适配器
// IAdaptable a = new ChinaEditorInput();//之所以可以直接将new ChinaEditorPart赋给IAdapteble,是因为IEditorInput扩展自IAdaptable
// IFoo x = (IFoo)a.getAdapter(IFoo.class);
// if (x != null) [用x来做IFoo的事情....]

 以上是从博客:http://aiku.me/bar/10133152  转来的。

分享到:
评论

相关推荐

    6-10.py

    6-10

    基于机器学习的入侵检测系统+源码+说明.zip

    基于机器学习的入侵检测系统+源码+说明.zip

    matlab基于潜在低秩表示的红外与可见光图像融合.zip

    matlab基于潜在低秩表示的红外与可见光图像融合.zip

    4-5.py

    4-5

    基于tensorflow使用简单线性回归实现波士顿房价预测源码.zip

    基于tensorflow使用简单线性回归实现波士顿房价预测源码.zip

    setuptools-25.1.0-py2.py3-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    pytest-8.0.0-py3-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    pytest-2.1.2.zip

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    GDAL-3.2.2-cp38-cp38-win-amd64.whl

    GDAL-3.2.2-cp38-cp38-win_amd64.whl

    3-11-1.py

    3-11-1

    Scrapy-2.5.0.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    课程大作业二手车价格预测案例数据挖掘python源码+数据集+实验报告+详细注释.zip

    课程大作业二手车价格预测案例数据挖掘python源码+数据集+实验报告+详细注释.zip

    setuptools-24.0.3-py2.py3-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    pytest-6.2.1-py3-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡—xx科技业务流程改造报告.ppt

    麦肯锡—xx科技业务流程改造报告.ppt

    麦肯锡—xx阶段一报告.ppt

    麦肯锡—xx阶段一报告.ppt

    基于MPC模型预测控制从原理到代码的matlab实现源码+文档说明.zip

    基于MPC模型预测控制从原理到代码的matlab实现源码+文档说明.zip

    setuptools-35.0.0-py2.py3-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Vue中实现鼠标悬浮显示提示框通常使用的是.docx

    vue鼠标悬浮显示提示框

    setuptools-0.6c10-py2.4.egg

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

Global site tag (gtag.js) - Google Analytics