navigate to the first task window after file refresh and IDE restart

This commit is contained in:
medvector
2014-08-18 11:20:47 +04:00
parent 514553a966
commit b307ef0d64
2 changed files with 17 additions and 5 deletions
@@ -6,6 +6,8 @@ import com.intellij.openapi.actionSystem.ex.AnActionListener;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.*;
import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.keymap.Keymap;
import com.intellij.openapi.keymap.KeymapManager;
import com.intellij.openapi.project.DumbAware;
@@ -16,10 +18,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileAdapter;
import com.intellij.openapi.vfs.VirtualFileEvent;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowAnchor;
import com.intellij.openapi.wm.ToolWindowId;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.openapi.wm.*;
import com.intellij.util.xmlb.XmlSerializer;
import com.jetbrains.python.edu.actions.StudyNextWindowAction;
import com.jetbrains.python.edu.actions.StudyPrevWindowAction;
@@ -111,6 +110,13 @@ public class StudyTaskManager implements ProjectComponent, PersistentStateCompon
@Override
public void run() {
ToolWindowManager.getInstance(myProject).getToolWindow(ToolWindowId.PROJECT_VIEW).show(null);
FileEditor[] editors = FileEditorManager.getInstance(myProject).getSelectedEditors();
if (editors.length > 0) {
JComponent focusedComponent = editors[0].getPreferredFocusedComponent();
if (focusedComponent != null) {
IdeFocusManager.getInstance(myProject).requestFocus(focusedComponent, true);
}
}
}
});
UISettings.getInstance().HIDE_TOOL_STRIPES = false;
@@ -11,8 +11,11 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.MessageType;
import com.intellij.openapi.ui.popup.*;
import com.intellij.openapi.ui.popup.Balloon;
import com.intellij.openapi.ui.popup.BalloonBuilder;
import com.intellij.openapi.ui.popup.JBPopupFactory;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.IdeFocusManager;
import com.jetbrains.python.edu.StudyDocumentListener;
import com.jetbrains.python.edu.StudyTaskManager;
import com.jetbrains.python.edu.StudyUtils;
@@ -29,6 +32,7 @@ public class StudyRefreshTaskAction extends DumbAwareAction {
@Override
public void run() {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@SuppressWarnings("IOResourceOpenedButNotSafelyClosed")
@Override
public void run() {
final Editor editor = StudyEditor.getSelectedEditor(project);
@@ -93,6 +97,8 @@ public class StudyRefreshTaskAction extends DumbAwareAction {
document.addDocumentListener(listener);
}
selectedTaskFile.drawAllWindows(editor);
IdeFocusManager.getInstance(project).requestFocus(editor.getContentComponent(), true);
selectedTaskFile.navigateToFirstTaskWindow(editor);
BalloonBuilder balloonBuilder =
JBPopupFactory.getInstance().createHtmlTextBalloonBuilder("You can now start again", MessageType.INFO, null);
Balloon balloon = balloonBuilder.createBalloon();