diff --git a/src/main/java/fi/dy/masa/malilib/gui/widget/list/BaseListWidget.java b/src/main/java/fi/dy/masa/malilib/gui/widget/list/BaseListWidget.java index 49e981571e..7707653b13 100644 --- a/src/main/java/fi/dy/masa/malilib/gui/widget/list/BaseListWidget.java +++ b/src/main/java/fi/dy/masa/malilib/gui/widget/list/BaseListWidget.java @@ -677,6 +677,7 @@ public void refreshFilteredEntries() { this.reAddFilteredEntries(); this.onEntriesRefreshed(); + this.selectEntries(); this.notifyListWidgetFactory(); this.reCreateListEntryWidgets(); } @@ -689,6 +690,10 @@ protected void reAddFilteredEntries() { } + protected void selectEntries() + { + } + protected void notifyListWidgetFactory() { if (this.listEntryWidgetFactory != null) diff --git a/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListEntrySelectionHandler.java b/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListEntrySelectionHandler.java index 0ad6596fff..71d1687e19 100644 --- a/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListEntrySelectionHandler.java +++ b/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListEntrySelectionHandler.java @@ -17,6 +17,7 @@ public class DataListEntrySelectionHandler protected final Supplier> dataListSupplier; @Nullable protected Set selectedEntries; + @Nullable protected Collection selectedEntriesOnCreate; @Nullable protected SelectionListener selectionListener; @Nullable protected DATATYPE lastSelectedEntry; protected boolean allowMultiSelection; @@ -338,4 +339,18 @@ protected Set rebuildSelectedEntries() return selectedEntries; } + + protected void selectEntries() + { + if (this.selectedEntriesOnCreate != null) + { + this.setSelectedEntries(this.selectedEntriesOnCreate); + this.selectedEntriesOnCreate = null; + } + } + + public void setEntriesOnCreate(Collection entries) + { + this.selectedEntriesOnCreate = entries; + } } diff --git a/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListWidget.java b/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListWidget.java index e5e9a64eee..e4e45e0e6c 100644 --- a/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListWidget.java +++ b/src/main/java/fi/dy/masa/malilib/gui/widget/list/DataListWidget.java @@ -380,6 +380,14 @@ protected void reAddFilteredEntries() } } + protected void selectEntries() + { + if (this.selectionHandler != null) + { + this.selectionHandler.selectEntries(); + } + } + protected void addNonFilteredContents(List entries) { this.filteredDataList.addAll(entries);