in intellij-plugin/educational-core/src/com/jetbrains/edu/coursecreator/actions/taskFile/CCShowPreview.kt [55:93]
override fun actionPerformed(e: AnActionEvent) {
val project = e.project ?: return
val file = CommonDataKeys.PSI_FILE.getData(e.dataContext) ?: return
StudyTaskManager.getInstance(project).course ?: return
val virtualFile = file.virtualFile
val taskFile = virtualFile.getTaskFile(project) ?: return
if (!taskFile.isVisible) {
return
}
val taskDir = file.containingDirectory ?: return
taskDir.parentDirectory ?: return
if (taskFile.answerPlaceholders.isEmpty()) {
Messages.showInfoMessage(
message("dialog.message.no.preview.for.file"),
message("dialog.title.no.preview.for.file")
)
return
}
ApplicationManager.getApplication().runWriteAction {
val studentTaskFile: TaskFile? = try {
virtualFile.toStudentFile(project, taskFile.task, taskFile)
}
catch (exception: BrokenPlaceholderException) {
LOG.info("Failed to Create Preview: " + exception.message)
Messages.showErrorDialog(exception.placeholderInfo, message("dialog.title.failed.to.create.preview"))
return@runWriteAction
}
catch (exception: HugeBinaryFileException) {
LOG.info("Failed to Create Preview: " + exception.message)
Messages.showErrorDialog(exception.message, message("dialog.title.failed.to.create.preview"))
return@runWriteAction
}
if (studentTaskFile != null) {
showPreviewDialog(project, studentTaskFile)
}
}
previewTaskFile()
}