From b697346cb6705f8bdd7361b0433d55ed867f7594 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sun, 31 Dec 2017 00:26:54 +0400 Subject: [PATCH] Fixed fast search compatibly with non string data models --- .../java/mage/client/dialog/ConnectDialog.java | 2 +- .../java/mage/client/dialog/PickChoiceDialog.java | 2 +- .../java/mage/client/util/gui/FastSearchUtil.java | 14 ++++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java index 4cb7a20ec87..7a453e38435 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java @@ -744,7 +744,7 @@ public class ConnectDialog extends MageDialog { DefaultComboBoxModel flagModel = (DefaultComboBoxModel)cbFlag.getModel(); String[] flagItem; - for(int i = 0; i < flagModel.getSize() - 1; i++){ + for(int i = 0; i < flagModel.getSize(); i++){ flagItem = (String[])flagModel.getElementAt(i); choiceItems.put(flagItem[1], flagItem[0]); } 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 1e5f70cda1e..60cadbfa3d0 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PickChoiceDialog.java @@ -181,7 +181,7 @@ public class PickChoiceDialog extends MageDialog { // start selection if((startSelectionValue != null)){ int selectIndex = -1; - for(int i = 0; i < this.listChoices.getModel().getSize() - 1; i++){ + for(int i = 0; i < this.listChoices.getModel().getSize(); i++){ KeyValueItem listItem = (KeyValueItem)this.listChoices.getModel().getElementAt(i); if (listItem.Key.equals(startSelectionValue)){ selectIndex = i; diff --git a/Mage.Client/src/main/java/mage/client/util/gui/FastSearchUtil.java b/Mage.Client/src/main/java/mage/client/util/gui/FastSearchUtil.java index 9d88e27137a..ed54815434b 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/FastSearchUtil.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/FastSearchUtil.java @@ -32,8 +32,8 @@ public class FastSearchUtil { Map choiceSorting = new HashMap<>(comboModel.getSize()); String item; - for(int i = 0; i < comboModel.getSize() - 1; i++){ - item = (String)comboModel.getElementAt(i); + for(int i = 0; i < comboModel.getSize(); i++){ + item = comboModel.getElementAt(i).toString(); choiceItems.put(item, item); choiceSorting.put(item, i); // need so sorting } @@ -44,7 +44,7 @@ public class FastSearchUtil { // current selection value restore String needSelectValue; - needSelectValue = (String)comboModel.getSelectedItem(); + needSelectValue = comboModel.getSelectedItem().toString(); // ask for new value PickChoiceDialog dlg = new PickChoiceDialog(); @@ -52,7 +52,13 @@ public class FastSearchUtil { dlg.showDialog(choice, needSelectValue); if(choice.isChosen()){ item = choice.getChoiceKey(); - comboModel.setSelectedItem(item); + + // compatible select for object's models (use setSelectedIndex instead setSelectedObject) + for(int i = 0; i < comboModel.getSize(); i++){ + if(comboModel.getElementAt(i).toString().equals(item)){ + combo.setSelectedIndex(i); + } + } } } }