[IFT] Add 'jdk_at_start' field to Java onboarding feedback

IJ-CR-26531

GitOrigin-RevId: 4a9ba1e7d383220e92b0f3d273e9ba67daf5d961
This commit is contained in:
Konstantin Hudyakov
2022-06-29 10:35:29 +03:00
committed by intellij-monorepo-bot
parent 424e585d49
commit 367e758f74
2 changed files with 14 additions and 4 deletions

View File

@@ -65,6 +65,7 @@ java.onboarding.finish.exit=Close Demo Project
java.onboarding.finish.modules=Show More Lessons
java.onboarding.feedback.system.found.jdks=Found JDKs:
java.onboarding.feedback.system.jdk.at.start=JDK at start:
java.onboarding.feedback.system.current.jdk=Current JDK:
java.onboarding.feedback.system.lang.level=Language level:

View File

@@ -101,6 +101,9 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
private var hideToolStripesPreference = false
private var showNavigationBarPreference = true
@NlsSafe
private var jdkAtStart: String = "undefined"
val sample: LessonSample = parseLessonSample("""
import java.util.Arrays;
import java.util.List;
@@ -123,6 +126,7 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
override val lessonContent: LessonContext.() -> Unit = {
prepareRuntimeTask {
jdkAtStart = getCurrentJdkVersionString(project)
useDelay = true
invokeActionForFocusContext(getActionById("Stop"))
configurations().forEach { runManager().removeConfiguration(it) }
@@ -242,10 +246,8 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
})
}
val currentJdk = JavaProjectUtil.getEffectiveJdk(project)
@Suppress("HardCodedStringLiteral")
val currentJdkVersion: @NlsSafe String = currentJdk?.let { JavaSdk.getInstance().getVersionString(it) } ?: "none"
val currentJdkVersion: @NlsSafe String = getCurrentJdkVersionString(project)
val module = ModuleManager.getInstance(project).modules.first()
@@ -255,13 +257,14 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
primaryLanguage.onboardingFeedbackData = object : OnboardingFeedbackData("IDEA Onboarding Tour Feedback", lessonEndInfo) {
override val feedbackReportId = "idea_onboarding_tour"
override val additionalFeedbackFormatVersion: Int = 0
override val additionalFeedbackFormatVersion: Int = 1
private val jdkVersions: List<String>? by lazy {
if (jdkVersionsFuture.isDone) jdkVersionsFuture.get() else null
}
override val addAdditionalSystemData: JsonObjectBuilder.() -> Unit = {
put("jdk_at_start", jdkAtStart)
put("current_jdk", currentJdkVersion)
put("language_level", currentLanguageLevel)
put("found_jdk", buildJsonArray {
@@ -276,6 +279,9 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
val versions: @NlsSafe String = jdkVersions?.joinToString("\n") ?: "none"
cell(MultiLineLabel(versions))
}
row(JavaLessonsBundle.message("java.onboarding.feedback.system.jdk.at.start")) {
label(jdkAtStart)
}
row(JavaLessonsBundle.message("java.onboarding.feedback.system.current.jdk")) {
label(currentJdkVersion)
}
@@ -290,6 +296,9 @@ class JavaOnboardingTourLesson : KLesson("java.onboarding", JavaLessonsBundle.me
}
}
private fun getCurrentJdkVersionString(project: Project): String {
return JavaProjectUtil.getEffectiveJdk(project)?.let { JavaSdk.getInstance().getVersionString(it) } ?: "none"
}
private fun getCallBackActionId(@Suppress("SameParameterValue") actionId: String): Int {
val action = getActionById(actionId)