[IFT] IJPL-221468 Adapt Onboarding Tour lesson for new SE

(cherry picked from commit 21d2779c3c1f49196c922acf51924308abcef1c9)

IJ-CR-193450

GitOrigin-RevId: 0e187a8f3a08573fa0b9001023b6898156d25a98
This commit is contained in:
Konstantin Hudyakov
2026-03-02 18:55:49 +00:00
committed by intellij-monorepo-bot
parent 41f38616a4
commit 7fb66abff0
3 changed files with 7 additions and 10 deletions
@@ -4,10 +4,8 @@ package com.intellij.java.ift.lesson.essential
import com.intellij.execution.ui.UIExperiment
import com.intellij.icons.AllIcons
import com.intellij.ide.actions.searcheverywhere.SearchEverywhereManagerImpl
import com.intellij.ide.actions.searcheverywhere.SearchEverywhereUI
import com.intellij.ide.ui.UISettings
import com.intellij.ide.util.PropertiesComponent
import com.intellij.ide.util.gotoByName.GotoActionModel
import com.intellij.idea.ActionsBundle
import com.intellij.java.ift.JavaLessonsBundle
import com.intellij.java.ift.JavaProjectUtil
@@ -15,7 +13,6 @@ import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.impl.ActionButton
import com.intellij.openapi.diagnostic.thisLogger
import com.intellij.openapi.editor.LogicalPosition
import com.intellij.openapi.editor.actions.ToggleCaseAction
import com.intellij.openapi.module.LanguageLevelUtil
import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.progress.runBackgroundableTask
@@ -47,6 +44,7 @@ import training.dsl.LessonSample
import training.dsl.LessonUtil
import training.dsl.LessonUtil.adjustSearchEverywherePosition
import training.dsl.LessonUtil.checkEditorModification
import training.dsl.LessonUtil.checkInsideSearchEverywhere
import training.dsl.LessonUtil.restoreIfModified
import training.dsl.LessonUtil.restoreIfModifiedOrMoved
import training.dsl.LessonUtil.restorePopupPosition
@@ -311,7 +309,7 @@ abstract class CommonLogicForOnboardingTours(id: String, @Nls lessonName: String
text(JavaLessonsBundle.message("java.onboarding.invoke.search.everywhere.2",
LessonUtil.rawKeyStroke(KeyEvent.VK_SHIFT), LessonUtil.actionName(it)))
triggerAndBorderHighlight().component { ui: ExtendableTextField ->
UIUtil.getParentOfType(SearchEverywhereUI::class.java, ui) != null
checkInsideSearchEverywhere(ui)
}
restoreIfModifiedOrMoved()
}
@@ -329,9 +327,9 @@ abstract class CommonLogicForOnboardingTours(id: String, @Nls lessonName: String
}
text(JavaLessonsBundle.message("java.onboarding.search.everywhere.description",
code("AVERAGE"), code(JavaLessonsBundle.message("toggle.case.part"))))
val actionText = ActionManager.getInstance().getAction("EditorToggleCase").toString()
triggerAndBorderHighlight().listItem { item ->
val value = (item as? GotoActionModel.MatchedValue)?.value
(value as? GotoActionModel.ActionWrapper)?.action is ToggleCaseAction
item.isToStringContains(actionText)
}
restoreByUi()
restoreIfModifiedOrMoved()
@@ -257,8 +257,8 @@ object LessonUtil {
* Have to use `QuickSearchComponent` for matching here,
* because can't reference `SePopupContentPane` directly (it requires adding a dependency on SE frontend).
*/
fun TaskRuntimeContext.checkInsideSearchEverywhere(): Boolean {
return UIUtil.getParentOfType(QuickSearchComponent::class.java, focusOwner) != null
fun TaskRuntimeContext.checkInsideSearchEverywhere(component: Component? = focusOwner): Boolean {
return UIUtil.getParentOfType(QuickSearchComponent::class.java, component) != null
}
fun isMainEditorComponent(component: Component?): Boolean {
@@ -81,8 +81,7 @@ class GotoActionLesson(private val sample: LessonSample,
task {
val prefix = LearnBundle.message("show.line.number.prefix.to.show.first")
text(LessonsBundle.message("goto.action.show.line.numbers.request", strong(prefix), strong(showLineNumbersName)))
val actionPresentation = ActionManager.getInstance().getAction("EditorGutterToggleGlobalLineNumbers").templatePresentation
val actionText = "${actionPresentation.text} (${actionPresentation.description})"
val actionText = ActionManager.getInstance().getAction("EditorGutterToggleGlobalLineNumbers").toString()
triggerAndBorderHighlight().listItem { item ->
item.isToStringContains(actionText)
}