summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fest-swing/src/main/java/org/fest/swing/driver/BasicJComboBoxCellReader.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/fest-swing/src/main/java/org/fest/swing/driver/BasicJComboBoxCellReader.java b/fest-swing/src/main/java/org/fest/swing/driver/BasicJComboBoxCellReader.java
index afdf654d..6a390dca 100644
--- a/fest-swing/src/main/java/org/fest/swing/driver/BasicJComboBoxCellReader.java
+++ b/fest-swing/src/main/java/org/fest/swing/driver/BasicJComboBoxCellReader.java
@@ -18,6 +18,7 @@ import static org.fest.swing.driver.ModelValueToString.asText;
import static org.fest.swing.edt.GuiActionRunner.execute;
import static org.fest.util.Preconditions.checkNotNull;
+import com.intellij.openapi.roots.ui.configuration.SdkListItem;
import java.awt.Component;
import org.jetbrains.annotations.NotNull;
@@ -71,7 +72,8 @@ public class BasicJComboBoxCellReader implements JComboBoxCellReader {
/**
* <p>
- * Returns the internal value of a cell in a {@code JComboBox} as expected in a test.
+ * Returns the internal value of a cell in a {@code JComboBox} as expected in a test, taking into consideration
+ * different cell types defined on {@link SdkListItem}.
* </p>
*
* <p>
@@ -92,7 +94,17 @@ public class BasicJComboBoxCellReader implements JComboBoxCellReader {
if (value != null) {
return value;
}
- return asText(comboBox.getItemAt(index));
+
+ Object comboBoxItem = comboBox.getItemAt(index);
+ if (comboBoxItem instanceof SdkListItem.SdkReferenceItem) {
+ return ((SdkListItem.SdkReferenceItem)comboBoxItem).name;
+ } else if (comboBoxItem instanceof SdkListItem.SdkItem) {
+ return ((SdkListItem.SdkItem)comboBoxItem).sdk.getName();
+ } else if (comboBoxItem instanceof SdkListItem.InvalidSdkItem) {
+ return ((SdkListItem.InvalidSdkItem)comboBoxItem).sdkName;
+ } else {
+ return asText(comboBoxItem);
+ }
}
@RunsInCurrentThread