package jetbrains.mps.baseLanguage.execution.api; /*Generated by MPS */ import com.intellij.ui.components.JBPanel; import jetbrains.mps.execution.lib.ui.RawLineEditorComponent; import jetbrains.mps.execution.lib.ui.FieldWithPathChooseDialog; import com.intellij.ui.components.JBCheckBox; import org.jetbrains.annotations.Nullable; import com.intellij.openapi.project.Project; import java.awt.GridBagLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import com.intellij.ui.components.JBLabel; import jetbrains.mps.ide.common.LayoutUtil; public class JavaConfigurationEditorComponent extends JBPanel { private final RawLineEditorComponent myVmParameters; private final RawLineEditorComponent myProgramParameters; private final FieldWithPathChooseDialog myWorkingDirectory; private final JBCheckBox myUseAlternativeJre; private final FieldWithPathChooseDialog myJreHome; @Nullable private final Project myProject; /** * * @deprecated pass the project as well */ @Deprecated public JavaConfigurationEditorComponent() { this(null); } public JavaConfigurationEditorComponent(@Nullable Project project) { super(new GridBagLayout()); myProject = project; myVmParameters = new RawLineEditorComponent(); myVmParameters.setDialogCaption("VM parameters"); myProgramParameters = new RawLineEditorComponent(); myProgramParameters.setDialogCaption("Program parameters"); myWorkingDirectory = new FieldWithPathChooseDialog(); myWorkingDirectory.setTitle("Select working directory"); myUseAlternativeJre = new JBCheckBox("Use alternative JRE"); myJreHome = new FieldWithPathChooseDialog(); myUseAlternativeJre.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { myJreHome.setEditable(myUseAlternativeJre.isSelected()); } }); myJreHome.setTitle("Select alternative JRE home"); add(new JBLabel("VM parameters:"), LayoutUtil.createLabelConstraints(0)); add(myVmParameters, LayoutUtil.createPanelConstraints(1)); add(new JBLabel("Program parameters:"), LayoutUtil.createLabelConstraints(2)); add(myProgramParameters, LayoutUtil.createPanelConstraints(3)); add(new JBLabel("Working directory:"), LayoutUtil.createLabelConstraints(4)); add(myWorkingDirectory, LayoutUtil.createPanelConstraints(5)); add(myUseAlternativeJre, LayoutUtil.createLabelConstraints(9)); add(myJreHome, LayoutUtil.createPanelConstraints(10)); } public void reset(@Nullable JavaRunParameters javaOptions) { if (javaOptions == null) { return; } myProgramParameters.setText(javaOptions.programParameters()); myVmParameters.setText(javaOptions.vmOptions()); myJreHome.setText(javaOptions.jrePath()); myWorkingDirectory.setText((javaOptions.workingDirectory() != null ? javaOptions.workingDirectory() : myProject.getBasePath())); myUseAlternativeJre.setSelected((boolean) javaOptions.useAlternativeJre()); myJreHome.setEditable((boolean) javaOptions.useAlternativeJre()); } public void apply(@Nullable JavaRunParameters javaOptions) { if (javaOptions == null) { return; } javaOptions.programParameters(myProgramParameters.getText()); javaOptions.vmOptions(myVmParameters.getText()); javaOptions.jrePath(myJreHome.getText()); javaOptions.workingDirectory(myWorkingDirectory.getText()); javaOptions.useAlternativeJre(myUseAlternativeJre.isSelected()); } public void dispose() { myJreHome.dispose(); myProgramParameters.dispose(); myVmParameters.dispose(); myWorkingDirectory.dispose(); } }