package com.google.jstestdriver.idea.execution.settings.ui;
import com.google.jstestdriver.idea.execution.settings.JstdRunSettings;
import com.google.jstestdriver.idea.util.ObjectUtils;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
class ConfigFileRunSettingsSection extends AbstractRunSettingsSection {
private TextFieldWithBrowseButton myConfigFileTextFieldWithBrowseButton;
@Override
public void resetFrom(JstdRunSettings runSettings) {
myConfigFileTextFieldWithBrowseButton.setText(runSettings.getConfigFile());
}
@Override
public void applyTo(JstdRunSettings.Builder runSettingsBuilder) {
runSettingsBuilder.setConfigFile(ObjectUtils.notNull(myConfigFileTextFieldWithBrowseButton.getText(), ""));
}
@NotNull
@Override
public JComponent createComponent(@NotNull CreationContext creationContext) {
JPanel panel = new JPanel(new GridBagLayout());
JLabel label = new JLabel("Configuration file:");
{
GridBagConstraints c = new GridBagConstraints(
0, 0,
1, 1,
0.0, 0.0,
GridBagConstraints.LINE_START,
GridBagConstraints.NONE,
new Insets(4, 0, UISettingsUtil.TEXT_LABEL_BOTTOM_SPACING, 0),
0, 0
);
label.setDisplayedMnemonic('C');
panel.add(label, c);
}
{
GridBagConstraints c = new GridBagConstraints(
0, 1,
1, 1,
1.0, 1.0,
GridBagConstraints.FIRST_LINE_START,
GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0),
0, 0
);
myConfigFileTextFieldWithBrowseButton = new TextFieldWithBrowseButton();
myConfigFileTextFieldWithBrowseButton.addBrowseFolderListener(
"Select JsTestDriver configuration file",
"",
creationContext.getProject(),
FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor()
);
panel.add(myConfigFileTextFieldWithBrowseButton, c);
}
label.setLabelFor(myConfigFileTextFieldWithBrowseButton);
return panel;
}
}