void (@NotNull final PaintAwarePanel canvas, int indentLevel) { myProjectPathLabel = new JBLabel(ExternalSystemBundle.message( "run.configuration.settings.label.project", myExternalSystemId.getReadableName() )); FileChooserDescriptor projectPathChooserDescriptor = ExternalSystemApiUtil.getExternalProjectConfigDescriptor(myExternalSystemId); String title = ExternalSystemBundle.message("settings.label.select.project", myExternalSystemId.getReadableName()); myProjectPathField = new ExternalProjectPathField(myProject, myExternalSystemId, projectPathChooserDescriptor, title) { @Override public Dimension getPreferredSize() { return myVmOptionsEditor == null ? super.getPreferredSize() : myVmOptionsEditor.getTextField().getPreferredSize(); } }; canvas.add(myProjectPathLabel, ExternalSystemUiUtil.getLabelConstraints(0)); canvas.add(myProjectPathField, ExternalSystemUiUtil.getFillLineConstraints(0)); myTasksLabel = new JBLabel(ExternalSystemBundle.message("run.configuration.settings.label.tasks")); myTasksTextField = new EditorTextField("", myProject, PlainTextFileType.INSTANCE); canvas.add(myTasksLabel, ExternalSystemUiUtil.getLabelConstraints(0)); canvas.add(myTasksTextField, ExternalSystemUiUtil.getFillLineConstraints(0)); new TaskCompletionProvider(myProject, myExternalSystemId, myProjectPathField).apply(myTasksTextField); myVmOptionsLabel = new JBLabel(ExternalSystemBundle.message("run.configuration.settings.label.vmoptions")); myVmOptionsEditor = new RawCommandLineEditor(); myVmOptionsEditor.setDialogCaption(ExternalSystemBundle.message("run.configuration.settings.label.vmoptions")); canvas.add(myVmOptionsLabel, ExternalSystemUiUtil.getLabelConstraints(0)); canvas.add(myVmOptionsEditor, ExternalSystemUiUtil.getFillLineConstraints(0)); myArgumentsLabel = new JBLabel(ExternalSystemBundle.message("run.configuration.settings.label.arguments")); myArgumentsEditor = new RawCommandLineEditor(); myArgumentsEditor.setDialogCaption(ExternalSystemBundle.message("run.configuration.settings.label.arguments")); canvas.add(myArgumentsLabel, ExternalSystemUiUtil.getLabelConstraints(0)); canvas.add(myArgumentsEditor, ExternalSystemUiUtil.getFillLineConstraints(0)); myEnvVariablesComponent = new EnvironmentVariablesComponent(); JBLabel myEnvVariablesComponentLabel = myEnvVariablesComponent.getLabel(); myEnvVariablesComponentLabel.remove(myEnvVariablesComponentLabel); canvas.add(myEnvVariablesComponentLabel, ExternalSystemUiUtil.getLabelConstraints(0)); canvas.add(myEnvVariablesComponent, ExternalSystemUiUtil.getFillLineConstraints(0)); }