をFormEditorするFormPage追加時:でjava.lang.StackOverflowErrorを にStackOverflowError私は本当に基本的な<code>FormEditor</code>を持っており、<code>FormPage</code>
:
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.FormAditor.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。 Javaの:89)org.eclipse.ui.forms.editor.FormEditor $ FormEditorSelectionProvider.getSelection(FormEditor.java:89) で ...
しかし、私はaddPage(IFormPage)
の代わりを使用している場合addPage(IEditorPart, IEditorInput)
それは動作します。この問題の「バグ」レポートもあります:Bug 283039(これはバグではありません。理由はありません)。
私はこれがバグかどうか議論する必要はありませんが、私が知りたいことは:IEditorInput
を定義しながらFormEditor
にFormPage
を追加するにはどうすればいいですか?