zoukankan      html  css  js  c++  java
  • 【插件开发】—— 14 Site is incorrect!编辑器启动报错!

      前言

        博文纵览

      

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

      BUG如下图所示:

      目测堆栈,与自己开发的代码无关。完全是Eclipse自己初始化的时候遇到了问题,最头疼的就是这种问题。因为Eclipse自己的源码十分庞大,调试起来太困难了。但是也显而易见的是,既然堆栈都是Eclipse的源码,那肯定是我的使用问题了!这点毋庸置疑:

      因此主要焦点还是放在Editor的类声明上面。

      这个原因报错:Site is incorreoct

      在编辑器模型构造函数中插入断电,可以正常执行,证明其他的文件没有问题。还是编辑器本身的配置问题。
     
      查看报错源码,根据提示找到位置:
    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()的时候出错!

      于是自习观察Editor类,寻找哪个方法可能会出现错误!于是发现错误原因!

      当我们创建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时)就可以了。

  • 相关阅读:
    LeetCode——Length of Last Word
    Leetcode--Remove Duplicates from Sorted Array
    Cocos2d-x 精灵碰撞检測(方法二)
    hibernate中持久化对象的生命周期(三态:自由态,持久态,游离态 之间的转换)
    Jquery Ajax时 error处理 之 parsererror
    DropdownList绑定的两种方法
    mac 系统开发android,真机调试解决方式(无数的坑之后吐血总结)
    淘宝PK京东:哥刷的不是广告,刷的是存在
    历时一年,我的著作《第一行代码——Android》已出版!
    编程算法
  • 原文地址:https://www.cnblogs.com/xing901022/p/4115626.html
Copyright © 2011-2022 走看看