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);
}
}