package jetbrains.mps.execution.configurations.implementation.plugin.plugin; /*Generated by MPS */ import javax.swing.JPanel; import javax.swing.JCheckBox; import jetbrains.mps.execution.lib.ui.FieldWithPathChooseDialog; import java.awt.GridBagLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import jetbrains.mps.workbench.actions.OpenMPSProjectFileChooserDescriptor; import jetbrains.mps.ide.common.LayoutUtil; import javax.swing.JLabel; import jetbrains.mps.baseLanguage.tuples.runtime.Tuples; import jetbrains.mps.baseLanguage.tuples.runtime.MultiTuple; /*package*/ class ProjectChooser extends JPanel { private final JCheckBox myOpenCurrentProject; private final FieldWithPathChooseDialog myProjectPath; public ProjectChooser() { super(new GridBagLayout()); myOpenCurrentProject = new JCheckBox("Open current project"); myOpenCurrentProject.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent p0) { myProjectPath.setEditable(!(myOpenCurrentProject.isSelected())); } }); myProjectPath = new FieldWithPathChooseDialog(new OpenMPSProjectFileChooserDescriptor(true)); this.add(myOpenCurrentProject, LayoutUtil.createLabelConstraints(0)); this.add(new JLabel("Project to open:"), LayoutUtil.createLabelConstraints(1)); this.add(myProjectPath, LayoutUtil.createFieldConstraints(2)); } public void reset(boolean openCurrentProject, String pathToProject) { myOpenCurrentProject.setSelected(openCurrentProject); myProjectPath.setEditable(!(openCurrentProject)); myProjectPath.setText(pathToProject); } public Tuples._2<Boolean, String> getValue() { return MultiTuple.<Boolean,String>from(myOpenCurrentProject.isSelected(), myProjectPath.getText()); } public void setEditable(boolean editable) { myOpenCurrentProject.setEnabled(editable); myProjectPath.setEditable(editable); } }