alternative JRE editor: set system-dependent path in combobox editor (IDEA-CR-5650)

This commit is contained in:
nik
2015-10-09 13:12:56 +03:00
parent caad0cc0d9
commit 532c910277
@@ -137,7 +137,7 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor {
if (jre instanceof DefaultJreItem) {
return myPreviousCustomJrePath;
}
return jre.getPresentableText();
return jre.getPathOrName();
}
public boolean isAlternativeJreSelected() {
@@ -181,7 +181,7 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor {
private JreComboBoxItem findOrAddCustomJre(@NotNull String pathOrName) {
for (JreComboBoxItem item : myComboBoxModel.getItems()) {
if (item instanceof CustomJreItem && FileUtil.pathsEqual(pathOrName, ((CustomJreItem)item).myPath)
|| item.getPresentableText().equals(pathOrName)) {
|| pathOrName.equals(item.getPathOrName())) {
return item;
}
}
@@ -204,6 +204,8 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor {
interface JreComboBoxItem {
void render(SimpleColoredComponent component, boolean selected);
String getPresentableText();
@Nullable
String getPathOrName();
int getOrder();
}
@@ -224,6 +226,11 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor {
return mySdk.getName();
}
@Override
public String getPathOrName() {
return mySdk.getName();
}
@Override
public int getOrder() {
return 1;
@@ -239,12 +246,17 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor {
@Override
public void render(SimpleColoredComponent component, boolean selected) {
component.append(FileUtil.toSystemDependentName(getPresentableText()));
component.append(getPresentableText());
component.setIcon(AllIcons.Nodes.Folder);
}
@Override
public String getPresentableText() {
return FileUtil.toSystemDependentName(myPath);
}
@Override
public String getPathOrName() {
return myPath;
}
@@ -269,6 +281,11 @@ public class JrePathEditor extends JPanel implements PanelWithAnchor {
return DEFAULT_JRE_TEXT;
}
@Override
public String getPathOrName() {
return null;
}
@Override
public int getOrder() {
return 0;