mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
corrected file chooser behaviour for 'JRE' path in run configurations
This commit is contained in:
@@ -15,10 +15,12 @@
|
||||
*/
|
||||
package com.intellij.execution.ui;
|
||||
|
||||
import com.intellij.openapi.ui.TextComponentAccessor;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.ui.SortedComboBoxModel;
|
||||
import com.intellij.ui.components.JBTextField;
|
||||
import com.intellij.util.ui.StatusText;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.plaf.basic.BasicComboBoxEditor;
|
||||
@@ -27,6 +29,7 @@ import javax.swing.plaf.basic.BasicComboBoxEditor;
|
||||
* @author nik
|
||||
*/
|
||||
class JreComboboxEditor extends BasicComboBoxEditor {
|
||||
public static final TextComponentAccessor<JComboBox> TEXT_COMPONENT_ACCESSOR = new JreComboBoxTextComponentAccessor();
|
||||
private final SortedComboBoxModel<JrePathEditor.JreComboBoxItem> myComboBoxModel;
|
||||
|
||||
public JreComboboxEditor(SortedComboBoxModel<JrePathEditor.JreComboBoxItem> comboBoxModel) {
|
||||
@@ -61,4 +64,17 @@ class JreComboboxEditor extends BasicComboBoxEditor {
|
||||
public JBTextField getEditorComponent() {
|
||||
return (JBTextField)super.getEditorComponent();
|
||||
}
|
||||
|
||||
private static class JreComboBoxTextComponentAccessor implements TextComponentAccessor<JComboBox> {
|
||||
@Override
|
||||
public String getText(JComboBox component) {
|
||||
Object item = component.getEditor().getItem();
|
||||
return item != null ? ((JrePathEditor.JreComboBoxItem)item).getPresentableText() : "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setText(JComboBox component, @NotNull String text) {
|
||||
component.getEditor().setItem(new JrePathEditor.CustomJreItem(FileUtil.toSystemIndependentName(text)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import com.intellij.openapi.projectRoots.ProjectJdkTable;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.roots.ui.OrderEntryAppearanceService;
|
||||
import com.intellij.openapi.ui.ComboBox;
|
||||
import com.intellij.openapi.ui.TextComponentAccessor;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
@@ -119,7 +118,7 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor {
|
||||
myPathField.addBrowseFolderListener(ExecutionBundle.message("run.configuration.select.alternate.jre.label"),
|
||||
ExecutionBundle.message("run.configuration.select.jre.dir.label"),
|
||||
null, BrowseFilesListener.SINGLE_DIRECTORY_DESCRIPTOR,
|
||||
TextComponentAccessor.STRING_COMBOBOX_WHOLE_TEXT);
|
||||
JreComboboxEditor.TEXT_COMPONENT_ACCESSOR);
|
||||
|
||||
setLayout(new MigLayout("ins 0, gap 10, fill, flowx"));
|
||||
add(myLabel, "shrinkx");
|
||||
|
||||
Reference in New Issue
Block a user