in intellij-plugin/educational-core/src/com/jetbrains/edu/learning/actions/ImportLocalCourseAction.kt [33:79]
override fun actionPerformed(e: AnActionEvent) {
val component = e.getData(PlatformDataKeys.CONTEXT_COMPONENT)
val fileChooserDescriptor = FileChooserDescriptorFactory
.singleFile()
.withExtensionFilter("zip")
FileChooser.chooseFile(fileChooserDescriptor, null, importLocation()) { file ->
val fileName = file.path
val course = EduUtilsKt.getLocalCourse(fileName)
course?.isLocal = true
if (course == null) {
showInvalidCourseDialog()
return@chooseFile
}
saveLastImportLocation(file)
val courseMetaInfo = CoursesStorage.getInstance().getCourseMetaInfo(course)
if (courseMetaInfo != null) {
invokeLater {
val result = Messages.showDialog(
null,
EduCoreBundle.message("action.import.local.course.dialog.text"),
EduCoreBundle.message("action.import.local.course.dialog"),
arrayOf(
EduCoreBundle.message("action.import.local.course.dialog.cancel.text"),
EduCoreBundle.message("action.import.local.course.dialog.ok.text")
),
Messages.OK,
Messages.getErrorIcon()
)
if (result == Messages.NO) {
CoursesStorage.getInstance().removeCourseByLocation(courseMetaInfo.location)
course.name = createUnusedName(course.name)
doImportNewCourse(course, component)
}
else if (result == Messages.OK) {
closeDialog(component)
val project = ProjectUtil.openProject(courseMetaInfo.location, null, true)
ProjectUtil.focusProjectWindow(project, true)
}
}
return@chooseFile
}
doImportNewCourse(course, component)
}
}