From e4af561bcb4f5bfb3819c86f449a8eee5ff8cd0e Mon Sep 17 00:00:00 2001 From: Konstantin Hudyakov Date: Fri, 11 Dec 2020 18:43:29 +0300 Subject: [PATCH] [IFT] Edit navigate task in FileStructureLesson and refactor GitOrigin-RevId: d24371ac5f86592bc04c84132222cafa6c402eb1 --- .../ift/lesson/navigation/JavaFileStructureLesson.kt | 5 ++--- .../lesson/general/navigation/FileStructureLesson.kt | 11 +++++++---- .../lesson/navigation/PythonFileStructureLesson.kt | 5 ++--- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/java/java-features-trainer/src/com/intellij/java/ift/lesson/navigation/JavaFileStructureLesson.kt b/java/java-features-trainer/src/com/intellij/java/ift/lesson/navigation/JavaFileStructureLesson.kt index cc572b4b822e..0502235a447c 100644 --- a/java/java-features-trainer/src/com/intellij/java/ift/lesson/navigation/JavaFileStructureLesson.kt +++ b/java/java-features-trainer/src/com/intellij/java/ift/lesson/navigation/JavaFileStructureLesson.kt @@ -1,12 +1,11 @@ // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.java.ift.lesson.navigation +import com.intellij.openapi.editor.LogicalPosition import training.learn.interfaces.Module import training.learn.lesson.general.navigation.FileStructureLesson class JavaFileStructureLesson(module: Module) : FileStructureLesson(module, "JAVA") { - override val searchSubstring: String = "hosa" - override val firstWord: String = "homo" - override val secondWord: String = "sapience" override val existedFile: String = "src/FileStructureDemo.java" + override val methodToFindPosition: LogicalPosition = LogicalPosition(74, 16) } diff --git a/plugins/ide-features-trainer/src/training/learn/lesson/general/navigation/FileStructureLesson.kt b/plugins/ide-features-trainer/src/training/learn/lesson/general/navigation/FileStructureLesson.kt index 4c06d9617ad4..9348d6c5a2ac 100644 --- a/plugins/ide-features-trainer/src/training/learn/lesson/general/navigation/FileStructureLesson.kt +++ b/plugins/ide-features-trainer/src/training/learn/lesson/general/navigation/FileStructureLesson.kt @@ -2,6 +2,7 @@ package training.learn.lesson.general.navigation import com.intellij.ide.dnd.aware.DnDAwareTree +import com.intellij.openapi.editor.LogicalPosition import com.intellij.openapi.editor.impl.EditorComponentImpl import com.intellij.testGuiFramework.framework.GuiTestUtil import com.intellij.testGuiFramework.util.Key @@ -16,9 +17,11 @@ import training.learn.lesson.kimpl.LessonUtil abstract class FileStructureLesson(module: Module, lang: String) : KLesson("File structure", LessonsBundle.message("file.structure.lesson.name"), module, lang) { abstract override val existedFile: String - abstract val searchSubstring: String - abstract val firstWord: String - abstract val secondWord: String + abstract val methodToFindPosition: LogicalPosition + + private val searchSubstring: String = "hosa" + private val firstWord: String = "homo" + private val secondWord: String = "sapience" override val lessonContent: LessonContext.() -> Unit get() = { @@ -39,7 +42,7 @@ abstract class FileStructureLesson(module: Module, lang: String) } task { text(LessonsBundle.message("file.structure.navigate", LessonUtil.rawEnter())) - stateCheck { focusOwner is EditorComponentImpl } + stateCheck { editor.caretModel.logicalPosition == methodToFindPosition } test { GuiTestUtil.shortcut(Key.ENTER) } } task("ActivateStructureToolWindow") { diff --git a/python/python-features-trainer/src/com/jetbrains/python/ift/lesson/navigation/PythonFileStructureLesson.kt b/python/python-features-trainer/src/com/jetbrains/python/ift/lesson/navigation/PythonFileStructureLesson.kt index fda502e30fc7..60f733384380 100644 --- a/python/python-features-trainer/src/com/jetbrains/python/ift/lesson/navigation/PythonFileStructureLesson.kt +++ b/python/python-features-trainer/src/com/jetbrains/python/ift/lesson/navigation/PythonFileStructureLesson.kt @@ -1,12 +1,11 @@ // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.jetbrains.python.ift.lesson.navigation +import com.intellij.openapi.editor.LogicalPosition import training.learn.interfaces.Module import training.learn.lesson.general.navigation.FileStructureLesson class PythonFileStructureLesson(module: Module) : FileStructureLesson(module, "Python") { - override val searchSubstring: String = "hosa" - override val firstWord: String = "homo" - override val secondWord: String = "sapience" override val existedFile: String = "src/file_structure_demo.py" + override val methodToFindPosition: LogicalPosition = LogicalPosition(73, 8) }