try {
IEditorInput editorInput = getEditorInput();
// Get the editor descriptor.
String editorID = getId();
EditorDescriptor desc = getDescriptor();
if (desc == null) {
throw new PartInitException(NLS.bind(WorkbenchMessages.EditorManager_missing_editor_descriptor, editorID));
}
if (desc.isInternal()) {
// Create an editor instance.
try {
UIStats.start(UIStats.CREATE_PART, editorID);
part = manager.createPart(desc);
if (part != null && part instanceof MultiEditor) {
multiEditorChildren = manager.openMultiEditor(this,
(MultiEditor) part, (MultiEditorInput) editorInput);
}
if (part instanceof IWorkbenchPart3) {
createPartProperties((IWorkbenchPart3)part);
}
} finally {
UIStats.end(UIStats.CREATE_PART, this, editorID);
}
} else if (desc.getId().equals(
IEditorRegistry.SYSTEM_INPLACE_EDITOR_ID)) {
part = ComponentSupport.getSystemInPlaceEditor();
if (part == null) {