in JsTestDriver/plugin/src/main/java/com/google/jstestdriver/idea/execution/settings/ui/ConfigFileRunSettingsSection.java [53:130]
protected JComponent createComponent(@NotNull CreationContext creationContext) {
JPanel panel = new JPanel(new GridBagLayout());
{
GridBagConstraints c = new GridBagConstraints(
0, 0,
1, 1,
0.0, 0.0,
GridBagConstraints.EAST,
GridBagConstraints.NONE,
new Insets(UIUtil.DEFAULT_VGAP, 0, 0, UIUtil.DEFAULT_HGAP),
0, 0
);
myLabel.setDisplayedMnemonic('C');
myLabel.setHorizontalAlignment(SwingConstants.RIGHT);
myLabel.setLabelFor(myConfigFileTextFieldWithBrowseButton.getTextField());
panel.add(myLabel, c);
}
{
GridBagConstraints c = new GridBagConstraints(
1, 0,
1, 1,
1.0, 0.0,
GridBagConstraints.WEST,
GridBagConstraints.HORIZONTAL,
new Insets(UIUtil.DEFAULT_VGAP, 0, 0, 0),
0, 0
);
final Project project = creationContext.getProject();
final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, false, false) {
@Override
public boolean isFileVisible(VirtualFile file, boolean showHiddenFiles) {
boolean visible = super.isFileVisible(file, showHiddenFiles);
if (visible && !file.isDirectory() && !showHiddenFiles) {
visible = JstdConfigFileUtils.isJstdConfigFile(file);
}
return visible;
}
};
final JTextField configFileTextField = myConfigFileTextFieldWithBrowseButton.getTextField();
FileChooserFactory.getInstance().installFileCompletion(configFileTextField, descriptor, false, null);
myConfigFileTextFieldWithBrowseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
PsiFile initialPsiFile = getConfigFile(project);
TreeFileChooserDialog fileChooser = new TreeFileChooserDialog(
project,
"Select JsTestDriver configuration file",
initialPsiFile,
JstdConfigFileType.INSTANCE,
new TreeFileChooser.PsiFileFilter() {
@Override
public boolean accept(PsiFile psiFile) {
return true;
}
},
false,
false
);
boolean jstdConfigFilesExists = JstdSettingsUtil.areJstdConfigFilesInProject(project);
if (jstdConfigFilesExists) {
fileChooser.selectSearchByNameTab();
}
fileChooser.showDialog();
PsiFile psiFile = fileChooser.getSelectedFile();
if (psiFile != null) {
VirtualFile vFile = psiFile.getVirtualFile();
if (vFile != null) {
String path = FileUtil.toSystemDependentName(vFile.getPath());
configFileTextField.setText(path);
}
}
}
});
panel.add(myConfigFileTextFieldWithBrowseButton, c);
}
SwingUtils.addGreedyBottomRow(panel);
return panel;
}