/*
* Copyright 2013 original Randori IntelliJ Plugin authors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package randori.plugin.projectStructure.detection;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.util.ui.UIUtil;
import randori.plugin.ui.RandoriSdkComboBoxWithBrowseButton;
import javax.swing.*;
/**
* @author Frédéric THOMAS Date: 19/04/13 Time: 20:44
*/
class RandoriSdkStep extends ModuleWizardStep
{
private final WizardContext context;
private final JPanel contentPane;
private final RandoriSdkComboBoxWithBrowseButton sdkCombo;
private final JLabel sdkLabel;
public RandoriSdkStep(WizardContext context)
{
this.context = context;
Sdk sdk = null;
if (context.getProject() != null)
sdk = ProjectRootManager.getInstance(context.getProject()).getProjectSdk();
sdkLabel = new JLabel();
sdkCombo = new RandoriSdkComboBoxWithBrowseButton();
if (sdk != null)
sdkCombo.setSelectedSdkRaw(sdk.getName());
contentPane = new JPanel();
contentPane.add(sdkLabel);
contentPane.add(sdkCombo);
}
@Override
public JComponent getComponent()
{
this.sdkLabel.setLabelFor(this.sdkCombo.getChildComponent());
String text = this.context.getProject() != null ? "Module &SDK:" : "Project &SDK:";
this.sdkLabel.setText(UIUtil.removeMnemonic(text));
this.sdkLabel.setDisplayedMnemonicIndex(UIUtil.getDisplayMnemonicIndex(text));
return this.contentPane;
}
@Override
public void updateDataModel()
{
this.context.setProjectJdk(this.sdkCombo.getSelectedSdk());
}
}