1 package com.atlassian.theplugin.idea.action.jira;
2
3 import com.atlassian.theplugin.idea.jira.editor.ThePluginJIRAEditorComponent;
4 import com.atlassian.theplugin.idea.jira.editor.vfs.MemoryVirtualFile;
5 import com.atlassian.theplugin.idea.IdeaHelper;
6 import com.atlassian.theplugin.jira.api.JIRAIssue;
7 import com.intellij.openapi.actionSystem.AnAction;
8 import com.intellij.openapi.actionSystem.AnActionEvent;
9 import com.intellij.openapi.actionSystem.DataKeys;
10 import com.intellij.openapi.fileEditor.FileEditorManager;
11 import com.intellij.openapi.fileEditor.FileEditor;
12 import com.intellij.openapi.fileEditor.FileEditorState;
13 import com.intellij.openapi.vfs.VirtualFile;
14
15 public class OpenIssueAction extends AnAction {
16 public void actionPerformed(AnActionEvent event) {
17 JIRAIssue issue = IdeaHelper.getJIRAToolWindowPanel(event).getCurrentIssue();
18 String fileName = issue.getKey();
19 FileEditorManager manager =
20 FileEditorManager.getInstance(DataKeys.PROJECT.getData(event.getDataContext()));
21 VirtualFile[] files = manager.getOpenFiles();
22 VirtualFile vf = null;
23 for (VirtualFile f : files) {
24 if (f.getName().equals(fileName) && (f instanceof MemoryVirtualFile)) {
25 vf = f;
26 break;
27 }
28 }
29
30 if (vf == null) {
31 vf = new MemoryVirtualFile(fileName);
32 }
33
34 manager.openFile(vf, true);
35 }
36 }