difference between EditorFactoryListener and FileEditorManagerListener

Hello ,  I want to register a listener to for editor open event and do something after editor opened.

Currently, I am using EditorFactoryListener.editorCreated(), but it is always called before the real editor opened for history editors,  when open the project with history editors (editors not closed when close the project in the last time)

EditorHistoryManager.MyEditorManagerListener.fileOpened()

I see there are these comments in the code. 

/**
* This method is after focus settles down (if requested) in newly created FileEditor.
* {@link #fileOpenedSync(FileEditorManager, VirtualFile, Pair)} is always invoked before this method (in same or previous EDT event).
*
* @see #fileOpenedSync(FileEditorManager, VirtualFile, Pair)
*/
FileEditorManagerListener.fileOpened()

and 

/**
* Called after {@link com.intellij.openapi.editor.Editor} instance has been created.
*/
EditorFactoryListener.editorCreated()

Would you please tell me the difference between them besides the comments ? editor created is instance created, not really editor opened

Can I use fileOpened instead ? Does fileOpened stands for editor opened ?

And what about the difference between

FileEditorManagerListener.fileClosed()

and

EditorFactoryListener.editorReleased()

Thanks!

请先登录再写评论。