diff options
-rw-r--r-- | fest-swing/src/main/java/org/fest/swing/driver/BasicJComboBoxCellReader.java | 16 |
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 |