From 0905897a18e91c0d8178aae757d7bb4a931c952c Mon Sep 17 00:00:00 2001 From: Debangshu Date: Wed, 22 Oct 2025 21:04:09 +0530 Subject: [PATCH 1/4] Convert fixed-value ComboBoxes to SearchableComboBox (#14083) --- CHANGELOG.md | 1 + .../org/jabref/gui/importer/fetcher/WebSearchPaneView.java | 6 +++--- .../preferences/customentrytypes/CustomEntryTypesTab.java | 4 ++-- .../org/jabref/gui/preferences/external/ExternalTab.java | 4 ++-- .../java/org/jabref/gui/preferences/general/GeneralTab.java | 3 ++- .../preferences/customentrytypes/CustomEntryTypesTab.fxml | 4 ++-- .../org/jabref/gui/preferences/external/ExternalTab.fxml | 6 +++--- .../org/jabref/gui/preferences/general/GeneralTab.fxml | 3 ++- 8 files changed, 17 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86f56da295a..41c78be668c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -358,6 +358,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv - We disabled the actions "Open Terminal here" and "Reveal in file explorer" for unsaved libraries. [#11920](https://github.com/JabRef/jabref/issues/11920) - JabRef now opens the corresponding directory in the library properties when "Browse" is clicked. [#12223](https://github.com/JabRef/jabref/pull/12223) - We changed the icon for macOS to be more consistent with Apple's Guidelines [#8443](https://github.com/JabRef/jabref/issues/8443) +- We changed fixed-value ComboBoxes to SearchableComboBox for better usability. [#14083](https://github.com/JabRef/jabref/issues/14083) ### Fixed diff --git a/jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java b/jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java index d5347ccc061..53b2c09f492 100644 --- a/jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java +++ b/jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java @@ -5,7 +5,6 @@ import javafx.beans.value.ObservableBooleanValue; import javafx.css.PseudoClass; import javafx.scene.control.Button; -import javafx.scene.control.ComboBox; import javafx.scene.control.TextField; import javafx.scene.control.Tooltip; import javafx.scene.input.KeyCode; @@ -27,6 +26,7 @@ import org.jabref.logic.l10n.Localization; import com.tobiasdiez.easybind.EasyBind; +import org.controlsfx.control.SearchableComboBox; public class WebSearchPaneView extends VBox { @@ -84,8 +84,8 @@ private void addQueryValidationHints(TextField query) { /** * Create combo box for selecting fetcher */ - private ComboBox createFetcherComboBox() { - ComboBox fetchers = new ComboBox<>(); + private SearchableComboBox createFetcherComboBox() { + SearchableComboBox fetchers = new SearchableComboBox<>(); new ViewModelListCellFactory() .withText(SearchBasedFetcher::getName) .install(fetchers); diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java index 832cde6eb81..38a62602124 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java @@ -6,7 +6,6 @@ import javafx.fxml.FXML; import javafx.scene.Group; import javafx.scene.control.Button; -import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.TableColumn; import javafx.scene.control.TableRow; @@ -40,6 +39,7 @@ import com.tobiasdiez.easybind.EasyBind; import de.saxsys.mvvmfx.utils.validation.visualization.ControlsFxVisualizer; import jakarta.inject.Inject; +import org.controlsfx.control.SearchableComboBox; public class CustomEntryTypesTab extends AbstractPreferenceTabView implements PreferencesTab { @@ -52,7 +52,7 @@ public class CustomEntryTypesTab extends AbstractPreferenceTabView fieldTypeColumn; @FXML private TableColumn fieldTypeActionColumn; @FXML private TableColumn fieldTypeMultilineColumn; - @FXML private ComboBox addNewField; + @FXML private SearchableComboBox addNewField; @FXML private Button addNewEntryTypeButton; @FXML private Button addNewFieldButton; diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTab.java index 7f3c34c368b..cfea969d701 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTab.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTab.java @@ -4,7 +4,6 @@ import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; -import javafx.scene.control.ComboBox; import javafx.scene.control.TextField; import org.jabref.gui.actions.ActionFactory; @@ -20,12 +19,13 @@ import com.airhacks.afterburner.views.ViewLoader; import de.saxsys.mvvmfx.utils.validation.visualization.ControlsFxVisualizer; +import org.controlsfx.control.SearchableComboBox; public class ExternalTab extends AbstractPreferenceTabView implements PreferencesTab { @FXML private TextField eMailReferenceSubject; @FXML private CheckBox autoOpenAttachedFolders; - @FXML private ComboBox pushToApplicationCombo; + @FXML private SearchableComboBox pushToApplicationCombo; @FXML private TextField citeCommand; @FXML private Button autolinkExternalHelp; diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTab.java index 50b3023808a..2ec82e3c46d 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTab.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTab.java @@ -32,10 +32,11 @@ import com.tobiasdiez.easybind.EasyBind; import de.saxsys.mvvmfx.utils.validation.visualization.ControlsFxVisualizer; import jakarta.inject.Inject; +import org.controlsfx.control.SearchableComboBox; public class GeneralTab extends AbstractPreferenceTabView implements PreferencesTab { - @FXML private ComboBox language; + @FXML private SearchableComboBox language; @FXML private ComboBox theme; @FXML private CheckBox themeSyncOs; @FXML private TextField customThemePath; diff --git a/jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml index 5dbb82e844b..64b750d1639 100644 --- a/jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml +++ b/jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml @@ -1,7 +1,6 @@ - @@ -11,6 +10,7 @@ + @@ -61,7 +61,7 @@ - +