JComponent () { JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.WEST; c.insets.bottom = 5; myDelegateToMavenCheckbox = new JCheckBox(MavenConfigurableBundle.message("maven.settings.runner.delegate")); if (!myRunConfigurationMode) { c.gridx = 0; c.gridy++; c.weightx = 1; c.gridwidth = GridBagConstraints.REMAINDER; panel.add(myDelegateToMavenCheckbox, c); } c.gridwidth = 1; JLabel labelVMParameters = new JLabel(MavenConfigurableBundle.message("maven.settings.runner.vm.options")); labelVMParameters.setLabelFor(myVMParametersEditor = new RawCommandLineEditor()); myVMParametersEditor.setDialogCaption(labelVMParameters.getText()); c.gridx = 0; c.gridy++; c.weightx = 0; panel.add(labelVMParameters, c); c.gridx = 1; c.weightx = 1; c.insets.left = 10; panel.add(myVMParametersEditor, c); JLabel labelOverrideJvmConfig = new JLabel(MavenConfigurableBundle.message("maven.settings.vm.options.tooltip")); labelOverrideJvmConfig.setFont(JBFont.small()); c.gridx = 1; c.gridy++; c.weightx = 1; c.insets.left = 20; panel.add(labelOverrideJvmConfig, c); c.insets.left = 0; myJdkLabel = new JLabel(MavenConfigurableBundle.message("maven.settings.runner.jre")); myJdkLabel.setLabelFor(myJdkCombo = new ExternalSystemJdkComboBox(myProject)); c.gridx = 0; c.gridy++; c.weightx = 0; panel.add(myJdkLabel, c); c.gridx = 1; c.weightx = 1; c.insets.left = 10; c.fill = GridBagConstraints.HORIZONTAL; panel.add(myJdkCombo, c); myTargetJdkCombo = new ComboBox<>(); ComponentUtil.putClientProperty(myTargetJdkCombo, UserActivityWatcher.DO_NOT_WATCH, true); myTargetJdkCombo.setVisible(false); panel.add(myTargetJdkCombo, c); c.insets.left = 0; myEnvVariablesComponent = new EnvironmentVariablesComponent(); myEnvVariablesComponent.setPassParentEnvs(true); myEnvVariablesComponent.setLabelLocation(BorderLayout.WEST); c.gridx = 0; c.gridy++; c.weightx = 1; c.gridwidth = 2; panel.add(myEnvVariablesComponent, c); c.gridwidth = 1; JPanel propertiesPanel = new JPanel(new BorderLayout()); propertiesPanel.setBorder(IdeBorderFactory.createTitledBorder(MavenConfigurableBundle.message("maven.settings.runner.properties"), false)); propertiesPanel.add(mySkipTestsCheckBox = new JCheckBox(MavenConfigurableBundle.message("maven.settings.runner.skip.tests")), BorderLayout.NORTH); collectProperties(); propertiesPanel.add(myPropertiesPanel = new MavenPropertiesPanel(myProperties), BorderLayout.CENTER); myPropertiesPanel.getTable().setShowGrid(false); myPropertiesPanel.getEmptyText().setText(MavenConfigurableBundle.message("maven.settings.runner.properties.not.defined")); c.gridx = 0; c.gridy++; c.weightx = c.weighty = 1; c.gridwidth = c.gridheight = GridBagConstraints.REMAINDER; c.fill = GridBagConstraints.BOTH; panel.add(propertiesPanel, c); return panel; }