override fun actionPerformed()

in intellij/src/main/kotlin/motif/intellij/actions/MotifUsageAction.kt [44:61]


  override fun actionPerformed(event: AnActionEvent) {
    val project = event.project ?: return
    val element = event.getPsiElement() ?: return
    val graph = graph ?: return

    if (!ScopeHierarchyUtils.isInitializedGraph(graph)) {
      project.getService(MotifService::class.java).refreshGraph { actionPerformed(event) }
      return
    }

    val toolWindow: ToolWindow =
        ToolWindowManager.getInstance(project).getToolWindow(TOOL_WINDOW_ID) ?: return
    toolWindow.activate { project.getService(MotifService::class.java).onSelectedClass(element) }

    project
        .getService(AnalyticsService::class.java)
        .logEvent(MotifAnalyticsActions.USAGE_MENU_CLICK)
  }