From 537d19ba37d5733afd411d6e05b32d198f6f1574 Mon Sep 17 00:00:00 2001 From: Annevdl29 Date: Sun, 4 Sep 2022 23:21:06 +0200 Subject: [PATCH 1/2] allow selecting entries on create --- .../malilib/gui/StringListSelectionScreen.java | 1 + .../malilib/gui/widget/list/BaseListWidget.java | 5 +++++ .../list/DataListEntrySelectionHandler.java | 15 +++++++++++++++ .../malilib/gui/widget/list/DataListWidget.java | 8 ++++++++ 4 files changed, 29 insertions(+) diff --git a/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java b/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java index c38f59b51d..54917e8cef 100644 --- a/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java +++ b/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java @@ -50,6 +50,7 @@ protected void updateWidgetPositions() protected void onConfirm() { this.consumer.accept(this.getListWidget().getSelectedEntries()); + this.closeScreenOrShowParent(); } public List getStrings() 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); From 3ac292412a9feba542d8036077b34d2d37996a96 Mon Sep 17 00:00:00 2001 From: Annevdl29 Date: Mon, 5 Sep 2022 12:34:51 +0200 Subject: [PATCH 2/2] remove closing screen --- .../java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java b/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java index 54917e8cef..c38f59b51d 100644 --- a/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java +++ b/src/main/java/fi/dy/masa/malilib/gui/StringListSelectionScreen.java @@ -50,7 +50,6 @@ protected void updateWidgetPositions() protected void onConfirm() { this.consumer.accept(this.getListWidget().getSelectedEntries()); - this.closeScreenOrShowParent(); } public List getStrings()