rcp eclipse中编辑器初始化失败的站点不正确

时间:2017-01-11 06:21:47

标签: java eclipse-plugin eclipse-rcp

请你找到解决方案!

无法创建部分

编辑ID:rcp_demo.Editor.emp。

编辑器初始化失败:rcp_demo.Editor.emp。网站不正确。

包名称:RCP_Demo.Editor

类名:Emp_command.java,Emp_Editor.java,Emp_Editor_input.java

public class EmpCommand extends AbstractHandler{
    public static final String Id = "rcp_demo.Editor.EmpCommand";

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {

         IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
            IWorkbenchPage page = window.getActivePage();
            EmployeeEditorInput input=new EmployeeEditorInput();
            try {
                page.openEditor(input,EmployeeEditor.Id);
            } catch (PartInitException e) {
                System.out.println("Error:" + this.getClass().getName() + ":" + e);
                e.printStackTrace();
                throw new ExecutionException("Error open EmployeeEditor");
            }
        return null;
    }
}
public class EmployeeEditorInput implements IEditorInput{
//IEditorInput implements all methods 

}
public class EmployeeEditor extends EditorPart{
    public static final String Id="rcp_demo.Editor.emp";

    @Override
    public void init(IEditorSite site, IEditorInput input)
            throws PartInitException {
            }
    @Override
    public void createPartControl(Composite parent) {
        parent.setLayout(new RowLayout(SWT.HORIZONTAL));
        }
}

2 个答案:

答案 0 :(得分:1)

<?php do { ?> <?php if ($row_rsMore['contentID'] = 35) : ?> <li><a href="aboutus.php"><h4><?php echo $row_rsMore['contentTitle']; ?></h4></a></li> <?php elseif ($row_rsMore['contentID'] = 37) : ?> <li><a href="contactus.php"><h4><?php echo $row_rsMore['contentTitle']; ?></h4></a></li> <?php elseif ($row_rsMore['contentID'] = 38) : ?> <li><a href="otherlinks.php"><h4><?php echo $row_rsMore['contentTitle']; ?></h4></a></li> <?php else : ?> <li><a href="more.php?idVal=<?php echo $row_rsMore['contentID']; ?>"><h4><?php echo $row_rsMore['contentTitle']; ?></h4></a></li> <?php endif ?> <?php } while ($row_rsMore = mysql_fetch_assoc($rsMore)); ?> 无法接受空init方法。 EditorPart的绝对最小值为:

init

您可以使用@Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); setInput(input); } 方法执行其他操作,但必须致电initsetSite。您的错误是因为您没有致电setInput

答案 1 :(得分:0)

  

简要说明:编辑器初始化失败网站不正确。

public class ProductEditor extends EditorPart {

    //initialize editor when assigned its site
    public void init(IEditorSite site, IEditorInput input)
            throws PartInitException {

        //instanceof in java is also known as type comparison operator
        if (!(input instanceof ProductEditorInput)) {
              throw new PartInitException("Invalid Input: Must be "
                      + ProductEditorInput.class.getName());
          }
          setSite(site);
          setInput(input);
    }

    public void createPartControl(Composite parent) {

    parent.setLayout(null);
    Label lblProductEditor = new Label(parent, SWT.NONE);
    lblProductEditor.setFont(SWTResourceManager.getFont("Tahoma", 16, SWT.BOLD));
    lblProductEditor.setBounds(36, 45, 285, 48);
    lblProductEditor.setText("Product Editor");
    }
}