override fun update()

in intellij-plugin/educational-core/src/com/jetbrains/edu/learning/actions/CheckAction.kt [98:123]


  override fun update(e: AnActionEvent) {
    if (CheckPanel.ACTION_PLACE == e.place) {
      //action is being added only in valid context, no project in event in this case, so just enable it
      return
    }
    updateAction(e)
    val project = e.project ?: return
    val taskFile = project.selectedTaskFile
    if (taskFile != null) {
      templatePresentation.text = taskFile.task.getUICheckLabel()
    }
    if (e.presentation.isEnabled) {
      e.presentation.isEnabled = !CheckActionState.getInstance(project).isLocked
      return
    }
    if (!isCourseCreator(project)) {
      return
    }
    val virtualFile = CommonDataKeys.VIRTUAL_FILE.getData(e.dataContext)
    if (virtualFile == null || FileEditorManager.getInstance(project).selectedTextEditor == null) {
      return
    }
    if (virtualFile.isTestsFile(project)) {
      e.presentation.isEnabledAndVisible = true
    }
  }