[英]Editor initialization failed site is incorrect in rcp eclipse
請您找到解決方案!
無法創建零件
編輯器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));
}
}
空的init
方法對於EditorPart
是不可接受的。 init
的絕對最小值為:
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
setSite(site);
setInput(input);
}
您可以在init
方法中執行其他操作,但必須調用setSite
和setInput
。 您的錯誤是因為您沒有調用setSite
。
簡要描述:編輯器初始化失敗網站不正確。
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");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.