을 FormEditor을 추가하는 동안 정말 기본 FormEditor
및 FormPage
:에StackOverflowError가 내가 가진 FormPage가
java.lang.StackOverflowError의 :
public class CustomFieldSetVersionEditor extends FormEditor { @Override protected void addPages() { try { addPage(new MyFormPage(this), getEditorInput()); } catch (final PartInitException ex) { ex.printStackTrace(); } } @Override public void doSave(final IProgressMonitor monitor) {} @Override public void doSaveAs() {} @Override public boolean isSaveAsAllowed() { return false; } } class MyFormPage extends FormPage { public MyFormPage(final FormEditor editor) { super(editor, "id", "Title"); } @Override protected void createFormContent(final IManagedForm managedForm) { } }
이 인정 하듯이 복잡하고 이국적인 사용 사례는 다음과 같은 예외를 제공합니다 org.eclipse.swt.widgets.Widget.getData (Widget.java:525) at org.eclipse.ui.part.MultiPageEditorPart.getEditor (MultiPageEditorPart.java:599) at org.eclipse.ui.part.MultiPageEditorPar t.getActiveEditor (MultiPageEditorPart.java:523) at org.eclipse.ui.forms.editor.FormAdive.getActiveEditor (FormEditor.java:430) at org.eclipse.ui.forms.editor.FormEditor $ FormEditorSelectionProvider.getSelection FormEditor.java:84) org.eclipse.ui.forms.editor.FormEditor $ FormEditorSelectionProvider.getSelection에서 org.eclipse.ui.forms.editor.FormEditor $ FormEditorSelectionProvider.getSelection (FormEditor.java:89) 에서 (FormEditor. 자바 : org.eclipse.ui.forms.editor.FormEditor $ FormEditorSelectionProvider.getSelection (FormEditor.java:89) 89) ... 그러나
, 내가 addPage(IFormPage)
대신사용하는 경우그것은 작동합니다. 이 문제에 대한 "버그"보고서도 있습니다 : Bug 283039 (아무런 이유가 없습니다. 이유가 없습니다).
버그 인 경우 논의 할 필요는 없지만 알고 싶은 것은 : FormPage
을 FormEditor
에 추가하고 IEditorInput
을 정의하는 방법은 무엇입니까?