From 697766e44c439cf6164f65c51f172f2b991241aa Mon Sep 17 00:00:00 2001 From: "liana.bakradze" Date: Tue, 26 Apr 2016 15:12:19 +0200 Subject: [PATCH] EDU-595 Disable task navigation actions if no task to navigate to --- .../actions/StudyNextStudyTaskAction.java | 5 ---- .../actions/StudyPreviousStudyTaskAction.java | 5 ---- .../actions/StudyTaskNavigationAction.java | 27 ++++++++++--------- 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java index 1cd6548274f3..1177caa53fcc 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyNextStudyTaskAction.java @@ -19,11 +19,6 @@ public class StudyNextStudyTaskAction extends StudyTaskNavigationAction { super("Next Task (" + KeymapUtil.getShortcutText(new KeyboardShortcut(KeyStroke.getKeyStroke(SHORTCUT), null)) + ")", "Navigate to the next task", AllIcons.Actions.Forward); } - @Override - protected String getNavigationFinishedMessage() { - return "It's the last task"; - } - @Override protected Task getTargetTask(@NotNull final Task sourceTask) { return StudyNavigator.nextTask(sourceTask); diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java index 653f00fd4b7d..f9b339af6dff 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyPreviousStudyTaskAction.java @@ -19,11 +19,6 @@ public class StudyPreviousStudyTaskAction extends StudyTaskNavigationAction { public static final String ACTION_ID = "PreviousTaskAction"; public static final String SHORTCUT = "ctrl pressed COMMA"; - @Override - protected String getNavigationFinishedMessage() { - return "It's already the first task"; - } - @Override protected Task getTargetTask(@NotNull final Task sourceTask) { return StudyNavigator.previousTask(sourceTask); diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java index 308a423d68f6..363e73e37018 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java @@ -4,20 +4,16 @@ import com.intellij.ide.projectView.ProjectView; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.MessageType; -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.ToolWindow; import com.intellij.openapi.wm.ToolWindowId; import com.intellij.openapi.wm.ToolWindowManager; import com.intellij.util.ui.tree.TreeUtil; +import com.jetbrains.edu.learning.StudyState; +import com.jetbrains.edu.learning.StudyUtils; import com.jetbrains.edu.learning.core.EduNames; import com.jetbrains.edu.learning.courseFormat.Task; import com.jetbrains.edu.learning.courseFormat.TaskFile; -import com.jetbrains.edu.learning.StudyState; -import com.jetbrains.edu.learning.StudyUtils; import com.jetbrains.edu.learning.editor.StudyEditor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -40,11 +36,6 @@ abstract public class StudyTaskNavigationAction extends StudyActionWithShortcut } Task nextTask = getTargetTask(studyState.getTask()); if (nextTask == null) { - BalloonBuilder balloonBuilder = - JBPopupFactory.getInstance().createHtmlTextBalloonBuilder(getNavigationFinishedMessage(), MessageType.INFO, null); - Balloon balloon = balloonBuilder.createBalloon(); - assert studyEditor != null; - balloon.show(StudyUtils.computeLocation(studyEditor.getEditor()), Balloon.Position.above); return; } for (VirtualFile file : FileEditorManager.getInstance(project).getOpenFiles()) { @@ -122,12 +113,22 @@ abstract public class StudyTaskNavigationAction extends StudyActionWithShortcut navigateTask(project); } - protected abstract String getNavigationFinishedMessage(); - protected abstract Task getTargetTask(@NotNull final Task sourceTask); @Override public void update(AnActionEvent e) { StudyUtils.updateAction(e); + Project project = e.getProject(); + if (project == null) { + return; + } + StudyEditor studyEditor = StudyUtils.getSelectedStudyEditor(project); + StudyState studyState = new StudyState(studyEditor); + if (!studyState.isValid()) { + return; + } + if (getTargetTask(studyState.getTask()) == null) { + e.getPresentation().setEnabled(false); + } } } -- 2.23.3