【插件开发】—— 14 Site is incorrect!编辑器启动报错!

  前言html

    博文纵览编辑器

 

  

  最近在弄编辑器的时候出现了一个十分尴尬的错误!这里收录一下:ide

  BUG以下图所示:函数

  目测堆栈,与本身开发的代码无关。彻底是Eclipse本身初始化的时候遇到了问题,最头疼的就是这种问题。由于Eclipse本身的源码十分庞大,调试起来太困难了。可是也显而易见的是,既然堆栈都是Eclipse的源码,那确定是个人使用问题了!这点毋庸置疑:spa

  所以主要焦点仍是放在Editor的类声明上面。调试

  这个缘由报错:Site is incorreoctcode

  在编辑器模型构造函数中插入断电,能够正常执行,证实其余的文件没有问题。仍是编辑器自己的配置问题。
 
  查看报错源码,根据提示找到位置:
1    // Sanity-check the site
2    if (part.getSite() != site || part.getEditorSite() != site) { 3     throw new PartInitException(NLS.bind( 4  WorkbenchMessages.EditorManager_siteIncorrect, desc 5  .getId())); 6    }

  观察发现,应该是GetSite() 或者getEditorSite()的时候出错!htm

  因而自习观察Editor类,寻找哪一个方法可能会出现错误!因而发现错误缘由!blog

  当咱们建立Editor的时候,Eclipse为咱们自动生成一个Editor的类,可是这个类时继承editpart的,他须要实现一些抽象方法:继承

public class test extends EditorPart { public test() { // TODO Auto-generated constructor stub
 } @Override public void doSave(IProgressMonitor monitor) { // TODO Auto-generated method stub
 } @Override public void doSaveAs() { // TODO Auto-generated method stub
 } @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { // TODO Auto-generated method stub
 } @Override public boolean isDirty() { // TODO Auto-generated method stub
  return false; } @Override public boolean isSaveAsAllowed() { // TODO Auto-generated method stub
  return false; } @Override public void createPartControl(Composite parent) { // TODO Auto-generated method stub
 } @Override public void setFocus() { // TODO Auto-generated method stub
 } }

  而当咱们修改这个继承的类时,并无删除这些方法。

 

  尤为是这个init类,它重写了父类的init方法,可是咱们却忘记给出实现。因而初始化出错....

  删除这个init(当修改继承的类时)或者调用父类的init方法(当父类是Editpart时)就能够了。

相关文章
相关标签/搜索