package jetbrains.mps.execution.configurations.implementation.plugin.plugin; /*Generated by MPS */ import javax.swing.JPanel; import jetbrains.mps.execution.lib.ui.RawLineEditorComponent; import jetbrains.mps.execution.lib.ui.FieldWithPathChooseDialog; import java.awt.GridBagLayout; import javax.swing.JLabel; import jetbrains.mps.ide.common.LayoutUtil; import jetbrains.mps.baseLanguage.tuples.runtime.Tuples; public class MpsStartupSettingsEditorComponent extends JPanel { private RawLineEditorComponent myVmOptions = new RawLineEditorComponent(); private FieldWithPathChooseDialog myJrePath = new FieldWithPathChooseDialog(); private FieldWithPathChooseDialog mySystemPath = new FieldWithPathChooseDialog(); private FieldWithPathChooseDialog myConfigurationPath = new FieldWithPathChooseDialog(); private ProjectChooser myProjectChooser = new ProjectChooser(); public MpsStartupSettingsEditorComponent() { super(new GridBagLayout()); this.add(new JLabel("MPS system path:"), LayoutUtil.createLabelConstraints(0)); this.add(mySystemPath, LayoutUtil.createFieldConstraints(1)); this.add(new JLabel("MPS configuration path:"), LayoutUtil.createLabelConstraints(2)); this.add(myConfigurationPath, LayoutUtil.createFieldConstraints(3)); myVmOptions.setDialogCaption("Virtual machine parameters"); myVmOptions.setText(Mps_Command.getDefaultVirtualMachineParameters()); this.add(new JLabel("Virtual machine parameters:"), LayoutUtil.createLabelConstraints(4)); this.add(myVmOptions, LayoutUtil.createFieldConstraints(5)); this.add(new JLabel("Alternative JRE path:"), LayoutUtil.createLabelConstraints(6)); this.add(myJrePath, LayoutUtil.createFieldConstraints(7)); this.add(myProjectChooser, LayoutUtil.createPanelConstraints(8)); } public void applyTo(MpsStartupSettings_Configuration configuration) { configuration.setVmOptions(myVmOptions.getText()); configuration.setJrePath(myJrePath.getText()); configuration.setSystemPath(configuration.shinkPath(mySystemPath.getText())); configuration.setConfigurationPath(configuration.shinkPath(myConfigurationPath.getText())); Tuples._2<Boolean, String> value = myProjectChooser.getValue(); configuration.setOpenCurrentProject((boolean) value._0()); configuration.setProjectToOpen(configuration.shinkPath(value._1())); } public void resetFrom(MpsStartupSettings_Configuration configuration) { myVmOptions.setText(configuration.getVmOptions()); myJrePath.setText(configuration.getJrePath()); mySystemPath.setText(configuration.expandPath(configuration.getSystemPath())); myConfigurationPath.setText(configuration.expandPath(configuration.getConfigurationPath())); myProjectChooser.reset(configuration.getOpenCurrentProject(), configuration.expandPath(configuration.getProjectToOpen())); } public void setEditable(boolean editable) { myVmOptions.setEditable(editable); myJrePath.setEditable(editable); mySystemPath.setEditable(editable); myConfigurationPath.setEditable(editable); myProjectChooser.setEditable(editable); } }