From 531b5bc5690c667d02aaf071abe27acdb992bc36 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov <jaydi85@gmail.com> Date: Mon, 25 Dec 2017 09:21:25 +0400 Subject: [PATCH] Added auto enabled search for all pickup dialogs with many items; --- .../java/mage/client/dialog/PickChoiceDialog.java | 2 ++ Mage/src/main/java/mage/choices/ChoiceImpl.java | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java index ba596b8413..b0d371c19d 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java @@ -168,6 +168,7 @@ public class PickChoiceDialog extends MageDialog { int maxSel = this.listChoices.getModel().getSize() - 1; if(newSel <= maxSel){ this.listChoices.setSelectedIndex(newSel); + this.listChoices.ensureIndexIsVisible(newSel); } } @@ -175,6 +176,7 @@ public class PickChoiceDialog extends MageDialog { int newSel = this.listChoices.getSelectedIndex() - 1; if(newSel >= 0){ this.listChoices.setSelectedIndex(newSel); + this.listChoices.ensureIndexIsVisible(newSel); } } diff --git a/Mage/src/main/java/mage/choices/ChoiceImpl.java b/Mage/src/main/java/mage/choices/ChoiceImpl.java index 56928171b7..233093458b 100644 --- a/Mage/src/main/java/mage/choices/ChoiceImpl.java +++ b/Mage/src/main/java/mage/choices/ChoiceImpl.java @@ -40,6 +40,8 @@ import java.util.Set; */ public class ChoiceImpl implements Choice, Serializable { + private int ENABLE_SEARCH_FOR_ITEMS_COUNT = 5; // enable search for choices more then X items (for non standard choices) + protected boolean chosen; protected final boolean required; protected String choice; @@ -48,7 +50,7 @@ public class ChoiceImpl implements Choice, Serializable { protected Map<String, String> keyChoices = new LinkedHashMap<>(); protected String message; protected String subMessage; - protected boolean searchEnabled; + protected boolean searchEnabled = true; protected String searchText; public ChoiceImpl() { @@ -70,6 +72,12 @@ public class ChoiceImpl implements Choice, Serializable { this.keyChoices = choice.keyChoices; // list should never change for the same object so copy by reference } + private void autoSearchEnable(){ + if((this.choices != null) && (this.choices.size() >= ENABLE_SEARCH_FOR_ITEMS_COUNT)){ + this.setSearchEnabled(true); + } + } + @Override public boolean isChosen() { return chosen; @@ -106,6 +114,7 @@ public class ChoiceImpl implements Choice, Serializable { @Override public void setChoices(Set<String> choices) { this.choices = choices; + autoSearchEnable(); } @Override @@ -139,6 +148,7 @@ public class ChoiceImpl implements Choice, Serializable { @Override public void setKeyChoices(Map<String, String> choices) { keyChoices = choices; + autoSearchEnable(); } @Override