View Javadoc

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  		// either opens a new editor, or focuses the already open one
34  		manager.openFile(vf, true);
35      }
36  }