public async sendLanguageUpgradeProjectPrompt()

in packages/core/src/amazonqGumby/chat/controller/messenger/messenger.ts [201:290]


    public async sendLanguageUpgradeProjectPrompt(projects: TransformationCandidateProject[], tabID: string) {
        const projectFormOptions: { value: any; label: string }[] = []
        const detectedJavaVersions = new Array<JDKVersion | undefined>()

        for (const candidateProject of projects) {
            projectFormOptions.push({
                value: candidateProject.path,
                label: candidateProject.name,
            })
            detectedJavaVersions.push(candidateProject.JDKVersion)
        }

        const formItems: ChatItemFormItem[] = []
        formItems.push({
            id: 'GumbyTransformLanguageUpgradeProjectForm',
            type: 'select',
            title: CodeWhispererConstants.chooseProjectFormTitle,
            mandatory: true,

            options: projectFormOptions,
        })

        formItems.push({
            id: 'GumbyTransformJdkFromForm',
            type: 'select',
            title: CodeWhispererConstants.chooseSourceVersionFormTitle,
            mandatory: true,
            options: [
                {
                    value: JDKVersion.JDK8,
                    label: JDKVersion.JDK8,
                },
                {
                    value: JDKVersion.JDK11,
                    label: JDKVersion.JDK11,
                },
                {
                    value: JDKVersion.JDK17,
                    label: JDKVersion.JDK17,
                },
                {
                    value: JDKVersion.JDK21,
                    label: JDKVersion.JDK21,
                },
            ],
        })

        formItems.push({
            id: 'GumbyTransformJdkToForm',
            type: 'select',
            title: CodeWhispererConstants.chooseTargetVersionFormTitle,
            mandatory: true,
            options: [
                {
                    value: JDKVersion.JDK17,
                    label: JDKVersion.JDK17,
                },
                {
                    value: JDKVersion.JDK21,
                    label: JDKVersion.JDK21,
                },
            ],
        })

        this.dispatcher.sendAsyncEventProgress(
            new AsyncEventProgressMessage(tabID, {
                inProgress: true,
                message: CodeWhispererConstants.projectPromptChatMessage,
            })
        )

        this.dispatcher.sendAsyncEventProgress(
            new AsyncEventProgressMessage(tabID, {
                inProgress: false,
                message: undefined,
            })
        )

        this.dispatcher.sendChatPrompt(
            new ChatPrompt(
                {
                    message: 'Q Code Transformation',
                    formItems: formItems,
                },
                'LanguageUpgradeTransformForm',
                tabID,
                false
            )
        )
    }