package org.fandev.module.wizard.ui; import com.intellij.ide.util.projectWizard.ModuleWizardStep; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.projectRoots.Sdk; import javax.swing.*; import org.fandev.sdk.ui.FanSdkChooserPanel; import org.fandev.sdk.FanSdkType; import org.fandev.lang.fan.FanBundle; import org.fandev.module.wizard.FanModuleBuilder; import org.fandev.icons.Icons; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.NotNull; /** * @author Dror Bereznitsky * @date Jan 19, 2009 2:55:40 PM */ public class FanSdkSelectStep extends ModuleWizardStep { protected final FanSdkChooserPanel myPanel; protected final FanModuleBuilder mySettingsHolder; public FanSdkSelectStep(@NotNull final FanModuleBuilder settingsHolder, @Nullable final Project project) { super(); myPanel = new FanSdkChooserPanel(project); mySettingsHolder = settingsHolder; } public JComponent getComponent() { return myPanel; } public void updateDataModel() { final Sdk sdk = getSdk(); mySettingsHolder.setSdk(sdk); } private Sdk getSdk() { return myPanel.getChosenJdk(); } @Override public Icon getIcon() { return Icons.FAN_24; } @Override public JComponent getPreferredFocusedComponent() { return myPanel.getPreferredFocusedComponent(); } @Override public boolean validate() { final Sdk jdk = myPanel.getChosenJdk(); if (jdk==null){ int result = Messages.showYesNoDialog( FanBundle.message("sdk.error.no.sdk.prompt.messge.confirm.without.sdk"), FanBundle.message("sdk.select.prompt.title"), Messages.getWarningIcon() ); return result == DialogWrapper.OK_EXIT_CODE; } if (!(jdk.getSdkType() instanceof FanSdkType)) { Messages.showErrorDialog( FanBundle.message("sdk.error.prompt.message.sdk.not.valid"), FanBundle.message("sdk.select.prompt.title") ); return false; } return true; } }