blob: 218f7435e10c79a5f3e44bd2399d5730703fa682 [file] [log] [blame]
package com.intellij.openapi.externalSystem.service.project.wizard;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.externalSystem.service.settings.AbstractImportFromExternalSystemControl;
import com.intellij.openapi.options.ConfigurationException;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
/**
* Handles the following responsibilities:
* <pre>
* <ul>
* <li>allows end user to define external system config file to import from;</li>
* <li>processes the input and reacts accordingly - shows error message if the project is invalid or proceeds to the next screen;</li>
* </ul>
* </pre>
*
* @author Denis Zhdanov
* @since 8/1/11 4:15 PM
*/
public class SelectExternalProjectStep extends AbstractImportFromExternalSystemWizardStep {
private final JPanel myComponent = new JPanel(new BorderLayout());
@NotNull private AbstractImportFromExternalSystemControl myControl;
private boolean myGradleSettingsInitialised;
public SelectExternalProjectStep(@NotNull WizardContext context) {
super(context);
}
@Override
public JComponent getComponent() {
return myComponent;
}
@Override
public void updateStep() {
if (!myGradleSettingsInitialised) {
initExternalProjectSettingsControl();
}
}
@Override
public void updateDataModel() {
}
// TODO den uncomment
//@Override
//public String getHelpId() {
// return GradleConstants.HELP_TOPIC_IMPORT_SELECT_PROJECT_STEP;
//}
@Override
public boolean validate() throws ConfigurationException {
myControl.apply();
if (myControl.getProjectFormatPanel() != null) {
myControl.getProjectFormatPanel().updateData(getWizardContext());
}
AbstractExternalProjectImportBuilder builder = getBuilder();
if (builder == null) {
return false;
}
builder.ensureProjectIsDefined(getWizardContext());
return true;
}
private void initExternalProjectSettingsControl() {
AbstractExternalProjectImportBuilder builder = getBuilder();
if (builder == null) {
return;
}
builder.prepare(getWizardContext());
myControl = builder.getControl(getWizardContext().getProject());
myComponent.add(myControl.getComponent());
myGradleSettingsInitialised = true;
}
}