mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
[IFT] Refactor lesson end API
IJ-CR-17369 GitOrigin-RevId: 9446ba0ad535fae4b5c491ca14a98e91d48845bc
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3bd74af1be
commit
4eda6f4062
@@ -31,6 +31,7 @@ import training.dsl.LessonUtil.restorePopupPosition
|
||||
import training.learn.LearnBundle
|
||||
import training.ui.IftTestContainerFixture
|
||||
import training.ui.LearningUiUtil.findComponentWithTimeout
|
||||
import training.util.LessonEndInfo
|
||||
import java.awt.Component
|
||||
import java.awt.Point
|
||||
import java.awt.Rectangle
|
||||
@@ -290,7 +291,7 @@ class GitAnnotateLesson : GitLesson("Git.Annotate", GitLessonsBundle.message("gi
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
restorePopupPosition(project, DiffWindowBase.DEFAULT_DIALOG_GROUP_KEY, backupDiffLocation)
|
||||
backupDiffLocation = null
|
||||
restorePopupPosition(project, ChangeListViewerDialog.DIMENSION_SERVICE_KEY, backupRevisionsLocation)
|
||||
|
||||
@@ -41,6 +41,7 @@ import training.dsl.*
|
||||
import training.dsl.LessonUtil.adjustPopupPosition
|
||||
import training.dsl.LessonUtil.restorePopupPosition
|
||||
import training.ui.LearningUiUtil.findComponentWithTimeout
|
||||
import training.util.LessonEndInfo
|
||||
import java.awt.Point
|
||||
import java.awt.Rectangle
|
||||
import javax.swing.JButton
|
||||
@@ -286,7 +287,7 @@ class GitChangelistsAndShelveLesson : GitLesson("Git.ChangelistsAndShelf", GitLe
|
||||
restoreCommitWindowStateInformer()
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
restorePopupPosition(project, CommitChangeListDialog.DIMENSION_SERVICE_KEY, backupShelveDialogLocation)
|
||||
backupShelveDialogLocation = null
|
||||
restorePopupPosition(project, ApplyPatchDifferentiatedDialog.DIMENSION_SERVICE_KEY, backupUnshelveDialogLocation)
|
||||
|
||||
@@ -36,6 +36,7 @@ import training.dsl.LessonUtil.adjustPopupPosition
|
||||
import training.dsl.LessonUtil.restorePopupPosition
|
||||
import training.ui.LearningUiHighlightingManager
|
||||
import training.ui.LearningUiUtil.findComponentWithTimeout
|
||||
import training.util.LessonEndInfo
|
||||
import java.awt.Component
|
||||
import java.awt.Point
|
||||
import java.awt.event.InputEvent
|
||||
@@ -237,7 +238,7 @@ class GitInteractiveRebaseLesson : GitLesson("Git.InteractiveRebase", GitLessons
|
||||
text(GitLessonsBundle.message("git.interactive.rebase.congratulations"))
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
restorePopupPosition(project, GIT_INTERACTIVE_REBASE_DIALOG_DIMENSION_KEY, backupRebaseDialogLocation)
|
||||
backupRebaseDialogLocation = null
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.assertj.swing.fixture.JTableFixture
|
||||
import training.dsl.*
|
||||
import training.ui.LearningUiHighlightingManager
|
||||
import training.ui.LearningUiUtil.findComponentWithTimeout
|
||||
import training.util.LessonEndInfo
|
||||
import java.util.regex.Pattern
|
||||
|
||||
class GitProjectHistoryLesson : GitLesson("Git.ProjectHistory", GitLessonsBundle.message("git.project.history.lesson.name")) {
|
||||
@@ -211,7 +212,7 @@ class GitProjectHistoryLesson : GitLesson("Git.ProjectHistory", GitLessonsBundle
|
||||
text(GitLessonsBundle.message("git.project.history.invitation.to.commit.lesson"))
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
if (showGitBranchesBackup != null) {
|
||||
val logUiProperties = VcsProjectLog.getInstance(project).mainLogUi?.properties ?: error("Failed to get MainVcsLogUiProperties")
|
||||
logUiProperties[SHOW_GIT_BRANCHES_LOG_PROPERTY] = showGitBranchesBackup!!
|
||||
|
||||
@@ -47,6 +47,7 @@ import training.dsl.LessonUtil.adjustPopupPosition
|
||||
import training.dsl.LessonUtil.sampleRestoreNotification
|
||||
import training.ui.LearningUiHighlightingManager
|
||||
import training.ui.LearningUiUtil.findComponentWithTimeout
|
||||
import training.util.LessonEndInfo
|
||||
import training.util.toNullableString
|
||||
import java.awt.Point
|
||||
import java.awt.Rectangle
|
||||
@@ -334,7 +335,7 @@ class GitQuickStartLesson : GitLesson("Git.QuickStart", GitLessonsBundle.message
|
||||
GitProjectUtil.createRemoteProject("origin", project)
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
LessonUtil.restorePopupPosition(project, SearchEverywhereManagerImpl.LOCATION_SETTINGS_KEY, backupSearchEverywhereLocation)
|
||||
backupSearchEverywhereLocation = null
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import training.learn.lesson.LessonListener
|
||||
import training.learn.lesson.LessonState
|
||||
import training.learn.lesson.LessonStateManager
|
||||
import training.statistic.LessonStartingWay
|
||||
import training.util.LessonEndInfo
|
||||
import training.util.filterUnseenLessons
|
||||
import training.util.findLanguageByID
|
||||
|
||||
@@ -49,7 +50,7 @@ abstract class Lesson(@NonNls val id: String, @Nls val name: String) {
|
||||
|
||||
open val testScriptProperties: TaskTestContext.TestScriptProperties = TaskTestContext.TestScriptProperties()
|
||||
|
||||
open fun onLessonEnd(project: Project, lessonPassed: Boolean) = Unit
|
||||
open fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) = Unit
|
||||
|
||||
fun addLessonListener(lessonListener: LessonListener) {
|
||||
lessonListeners.add(lessonListener)
|
||||
@@ -70,9 +71,9 @@ abstract class Lesson(@NonNls val id: String, @Nls val name: String) {
|
||||
lessonListeners.forEach { it.lessonStarted(this, way) }
|
||||
}
|
||||
|
||||
internal fun onStop(project: Project, lessonPassed: Boolean) {
|
||||
internal fun onStop(project: Project, lessonPassed: Boolean, currentTaskIndex: Int, currentVisualIndex: Int) {
|
||||
lessonListeners.forEach { it.lessonStopped(this) }
|
||||
onLessonEnd(project, lessonPassed)
|
||||
onLessonEnd(project, LessonEndInfo(lessonPassed, currentTaskIndex, currentVisualIndex))
|
||||
}
|
||||
|
||||
internal fun pass() {
|
||||
|
||||
@@ -80,7 +80,7 @@ class LessonManager {
|
||||
private fun stopLesson(lessonPassed: Boolean) {
|
||||
shownRestoreNotification = null
|
||||
currentLessonExecutor?.takeIf { !it.hasBeenStopped }?.let {
|
||||
it.lesson.onStop(it.project, lessonPassed)
|
||||
it.lesson.onStop(it.project, lessonPassed, it.currentTaskIndex, it.currentVisualIndex)
|
||||
it.stopLesson()
|
||||
currentLessonExecutor = null
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ import training.learn.lesson.LessonManager
|
||||
import training.ui.LearningUiHighlightingManager
|
||||
import training.ui.LearningUiHighlightingManager.HighlightingOptions
|
||||
import training.ui.LearningUiUtil
|
||||
import training.util.LessonEndInfo
|
||||
import training.util.isToStringContains
|
||||
import java.awt.Component
|
||||
import java.awt.Point
|
||||
@@ -272,8 +273,8 @@ class LocalHistoryLesson : KLesson("CodeAssistance.LocalHistory", LessonsBundle.
|
||||
text(LessonsBundle.message("local.history.congratulations"))
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
if (!lessonPassed) return
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
if (!lessonEndInfo.lessonPassed) return
|
||||
ApplicationManager.getApplication().executeOnPooledThread {
|
||||
val editorComponent = LearningUiUtil.findComponentOrNull(project, EditorComponentImpl::class.java) { editor ->
|
||||
UIUtil.getParentOfType(SingleHeightTabs::class.java, editor) != null
|
||||
|
||||
@@ -18,6 +18,7 @@ import training.dsl.LessonUtil.restorePopupPosition
|
||||
import training.learn.LessonsBundle
|
||||
import training.learn.course.KLesson
|
||||
import training.learn.course.LessonType
|
||||
import training.util.LessonEndInfo
|
||||
import training.util.isToStringContains
|
||||
import java.awt.Point
|
||||
import java.awt.event.KeyEvent
|
||||
@@ -133,7 +134,7 @@ abstract class SearchEverywhereLesson : KLesson("Search everywhere", LessonsBund
|
||||
epilogue()
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
restorePopupPosition(project, SearchEverywhereManagerImpl.LOCATION_SETTINGS_KEY, backupPopupLocation)
|
||||
backupPopupLocation = null
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package training.util
|
||||
|
||||
data class LessonEndInfo(
|
||||
val lessonPassed: Boolean,
|
||||
val currentTaskIndex: Int,
|
||||
val currentVisualIndex: Int,
|
||||
)
|
||||
@@ -65,10 +65,7 @@ import training.learn.lesson.general.run.toggleBreakpointTask
|
||||
import training.project.ProjectUtils
|
||||
import training.ui.LearningUiHighlightingManager
|
||||
import training.ui.LearningUiManager
|
||||
import training.util.getActionById
|
||||
import training.util.invokeActionForFocusContext
|
||||
import training.util.isToStringContains
|
||||
import training.util.learningToolWindow
|
||||
import training.util.*
|
||||
import java.awt.Point
|
||||
import java.awt.Rectangle
|
||||
import java.awt.event.KeyEvent
|
||||
@@ -159,7 +156,7 @@ class PythonOnboardingTour :
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLessonEnd(project: Project, lessonPassed: Boolean) {
|
||||
override fun onLessonEnd(project: Project, lessonEndInfo: LessonEndInfo) {
|
||||
restorePopupPosition(project, SearchEverywhereManagerImpl.LOCATION_SETTINGS_KEY, backupPopupLocation)
|
||||
backupPopupLocation = null
|
||||
|
||||
@@ -167,7 +164,7 @@ class PythonOnboardingTour :
|
||||
uiSettings.showNavigationBar = showNavigationBarPreference
|
||||
uiSettings.fireUISettingsChanged()
|
||||
|
||||
if (!lessonPassed) return
|
||||
if (!lessonEndInfo.lessonPassed) return
|
||||
val dataContextPromise = DataManager.getInstance().dataContextFromFocusAsync
|
||||
invokeLater {
|
||||
val result = MessageDialogBuilder.yesNoCancel(PythonLessonsBundle.message("python.onboarding.finish.title"),
|
||||
|
||||
Reference in New Issue
Block a user