private void createMultiEditorChildren(IWorkbenchPart part, IEditorInput input) throws PartInitException { IWorkbenchPage page = reference.getPage(); MPart model = getModel(); MWindow window = modelService.getTopLevelWindowFor(model); IEditorRegistry registry = model.getContext().get(IEditorRegistry.class); MultiEditorInput multiEditorInput = (MultiEditorInput) input; IEditorInput[] inputs = multiEditorInput.getInput(); String[] editorIds = multiEditorInput.getEditors(); IEditorPart[] editors = new IEditorPart[editorIds.length]; for (int i = 0; i < editorIds.length; i++) { EditorDescriptor innerDesc = (EditorDescriptor) registry.findEditor(editorIds[i]); if (innerDesc == null) { throw new PartInitException(NLS.bind( WorkbenchMessages.EditorManager_unknownEditorIDMessage, editorIds[i])); } EditorReference innerReference = new EditorReference(window.getContext(), page, model, inputs[i], innerDesc, null); editors[i] = (IEditorPart) innerReference.createPart(); innerReference.initialize(editors[i]); } ((AbstractMultiEditor) part).setChildren(editors); }