From 4e16b3aa3a649b87a54a6e43a5c01360fd255a83 Mon Sep 17 00:00:00 2001 From: ghidra1 Date: Tue, 27 Apr 2021 09:21:33 -0400 Subject: [PATCH] GP-0 correct AnalysisOptionsTest failures --- .../plugin/core/analysis/AnalysisOptionsTest.java | 4 ++-- .../widgets/dialogs/InputWithChoicesDialog.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/analysis/AnalysisOptionsTest.java b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/analysis/AnalysisOptionsTest.java index 0aed91ed43..00f5619b65 100644 --- a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/analysis/AnalysisOptionsTest.java +++ b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/analysis/AnalysisOptionsTest.java @@ -29,7 +29,7 @@ import org.junit.*; import docking.action.DockingActionIf; import docking.widgets.OptionDialog; import docking.widgets.combobox.GhidraComboBox; -import docking.widgets.dialogs.InputDialog; +import docking.widgets.dialogs.InputWithChoicesDialog; import ghidra.app.plugin.core.codebrowser.CodeBrowserPlugin; import ghidra.app.services.ProgramManager; import ghidra.framework.Application; @@ -276,7 +276,7 @@ public class AnalysisOptionsTest extends AbstractGhidraHeadedIntegrationTest { } private void saveConfig(String name) { - InputDialog dialog = waitForDialogComponent(InputDialog.class); + InputWithChoicesDialog dialog = waitForDialogComponent(InputWithChoicesDialog.class); runSwing(() -> dialog.setValue(name)); pressButtonByText(dialog, "OK"); waitForSwing(); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/InputWithChoicesDialog.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/InputWithChoicesDialog.java index 6d24a935b3..73c967e021 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/InputWithChoicesDialog.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/dialogs/InputWithChoicesDialog.java @@ -17,6 +17,7 @@ package docking.widgets.dialogs; import java.awt.BorderLayout; import java.awt.Dimension; +import java.util.NoSuchElementException; import javax.swing.*; @@ -182,4 +183,17 @@ public class InputWithChoicesDialog extends DialogComponentProvider { Object selectedItem = combo.getSelectedItem(); return selectedItem == null ? null : selectedItem.toString(); } + + /** + * Set the current choice to value. + * @param value updated choice + * @throws NoSuchElementException if choice does not permit edits and value is + * not a valid choice. + */ + public void setValue(String value) { + combo.setSelectedItem(value); + if (!combo.isEditable() && !combo.getSelectedItem().equals(value)) { + throw new NoSuchElementException(); + } + } }