package floobits.actions; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; import floobits.FloobitsPlugin; import floobits.common.EditorEventHandler; import floobits.impl.ContextImpl; import floobits.impl.FactoryImpl; public class Summon extends IsJoinedAction { @Override public void actionPerformed(AnActionEvent e, final EditorEventHandler editorEventHandler, FloobitsPlugin floobitsPlugin) { final Editor editor = PlatformDataKeys.EDITOR.getData(e.getDataContext()); summon(editor, editorEventHandler, null, floobitsPlugin.context); } public static void summon(Editor editor, EditorEventHandler editorEventHandler, String username, ContextImpl context) { if (editor == null) { return; } Document document = editor.getDocument(); FactoryImpl iFactory = (FactoryImpl) context.iFactory; String path = iFactory.getPathForDoc(document); if (path == null) { return; } int offset = editor.getCaretModel().getOffset(); editorEventHandler.summon(path, offset, username); } }