fun show()

in src/main/kotlin/org/arend/search/proof/ProofSearchService.kt [40:91]


    fun show(e: AnActionEvent) {
        IdeEventQueue.getInstance().popupManager.closeAllPopups(false)

        val project: Project = e.project ?: return

        val signatureSearchUI = createView(e)
        myProofSearchUI = signatureSearchUI
        val balloon =
            with(JBPopupFactory.getInstance().createComponentPopupBuilder(signatureSearchUI, signatureSearchUI.editorSearchField)) {
                setProject(project)
                setModalContext(false)
                setCancelOnClickOutside(true)
                setRequestFocus(true)
                setCancelKeyEnabled(false)
                setCancelCallback {
                    if (isShown()) {
                        lastSearchText = myProofSearchUI?.editorSearchField?.text
                    }
                    true
                }
                addUserData("SIMPLE_WINDOW") // NON-NLS
                setResizable(true)
                setMovable(true)
                    .setDimensionServiceKey(project, PROOF_SEARCH_LOCATION_KEY, true)
                setLocateWithinScreenBounds(false)
                createPopup()
            }.also {
                Disposer.register(it, signatureSearchUI)
                Disposer.register(project, it)
            }
        myBalloon = balloon

        Disposer.register(balloon) {
            if (signatureSearchUI.viewType == BigPopupUI.ViewType.SHORT) {
                WindowStateService.getInstance(project).putSize(PROOF_SEARCH_LOCATION_KEY, myBalloonFullSize)
            }
            myProofSearchUI = null
            myBalloon = null
            myBalloonFullSize = null
        }

        if (signatureSearchUI.viewType == BigPopupUI.ViewType.SHORT) {
            myBalloonFullSize = WindowStateService.getInstance(project).getSize(PROOF_SEARCH_LOCATION_KEY)
            balloon.size = signatureSearchUI.preferredSize
        }
        calcPositionAndShow(project, balloon, signatureSearchUI)
        val text = signatureSearchUI.editorSearchField.text
        if (text.isNotEmpty()) {
            signatureSearchUI.editorSearchField.editor?.selectionModel?.setSelection(0, text.length)
            signatureSearchUI.registerSearchAttempt()
        }
    }