Wizard: fix skip last step hack on mac
This commit is contained in:
+10
-11
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard
|
|||||||
|
|
||||||
import com.intellij.ide.RecentProjectsManager
|
import com.intellij.ide.RecentProjectsManager
|
||||||
import com.intellij.ide.util.projectWizard.*
|
import com.intellij.ide.util.projectWizard.*
|
||||||
|
import com.intellij.ide.wizard.AbstractWizard
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.application.ApplicationNamesInfo
|
import com.intellij.openapi.application.ApplicationNamesInfo
|
||||||
import com.intellij.openapi.module.ModifiableModuleModel
|
import com.intellij.openapi.module.ModifiableModuleModel
|
||||||
@@ -115,7 +116,7 @@ class NewProjectWizardModuleBuilder : EmptyModuleBuilder() {
|
|||||||
private fun clickFinishButton() {
|
private fun clickFinishButton() {
|
||||||
if (finishButtonClicked) return
|
if (finishButtonClicked) return
|
||||||
finishButtonClicked = true
|
finishButtonClicked = true
|
||||||
wizardContext?.getActionButtonWithText("Finish", "Next")?.doClick()
|
wizardContext?.getNextButton()?.doClick()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun modifySettingsStep(settingsStep: SettingsStep): ModuleWizardStep? {
|
override fun modifySettingsStep(settingsStep: SettingsStep): ModuleWizardStep? {
|
||||||
@@ -227,10 +228,7 @@ class ModuleNewWizardSecondStep(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getPreferredFocusedComponent(): JComponent? {
|
override fun getPreferredFocusedComponent(): JComponent? {
|
||||||
wizardContext.getActionButtonWithText("Next")?.apply {
|
wizardContext.getNextButton()?.text = "Finish"
|
||||||
text = "Finish"
|
|
||||||
updateUI()
|
|
||||||
}
|
|
||||||
return super.getPreferredFocusedComponent()
|
return super.getPreferredFocusedComponent()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,9 +237,10 @@ class ModuleNewWizardSecondStep(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun WizardContext.getActionButtonWithText(text: String, alternativeText: String? = null): JButton? =
|
private fun WizardContext.getNextButton() = try {
|
||||||
wizard?.cancelButton?.parent?.components?.find { child ->
|
AbstractWizard::class.java.getDeclaredMethod("getNextButton")
|
||||||
child.safeAs<JButton>()?.let { button ->
|
.also { it.isAccessible = true }
|
||||||
button.text == text || alternativeText != null && button.text == alternativeText
|
.invoke(wizard) as? JButton
|
||||||
} == true
|
} catch (_: Throwable) {
|
||||||
} as? JButton
|
null
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user