From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>

---
 .../freecol/client/control/InGameController.java   | 31 ++++++++++++++--------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/src/net/sf/freecol/client/control/InGameController.java 
b/src/net/sf/freecol/client/control/InGameController.java
index 1ec1857f4bb..ba06c1c1acf 100644
--- a/src/net/sf/freecol/client/control/InGameController.java
+++ b/src/net/sf/freecol/client/control/InGameController.java
@@ -1294,6 +1294,23 @@ public final class InGameController extends 
FreeColClientHolder {
         return result;
     }
 
+    private List<ChoiceItem<NativeTradeItem>> 
getNativeTradeItemChoices(List<NativeTradeItem> items) {
+        List<ChoiceItem<NativeTradeItem>> result = new ArrayList<>();
+        for (NativeTradeItem nti : items)
+            result.add(new ChoiceItem<NativeTradeItem>(
+                Messages.message(nti.getGoods().getLabel(true)),nti));
+        return result;
+    }
+
+    private List<ChoiceItem<NativeTradeItem>> 
getNativeTradeItemChoicesPriceValid(List<NativeTradeItem> items) {
+        List<ChoiceItem<NativeTradeItem>> result = new ArrayList<>();
+        for (NativeTradeItem nti : items)
+            if (nti.priceIsValid())
+                result.add(new ChoiceItem<NativeTradeItem>(
+                    Messages.message(nti.getGoods().getLabel(true)),nti));
+        return result;
+    }
+
     /**
      * Check the carrier for passengers to disembark, possibly
      * snatching a useful result from the jaws of a
@@ -3962,11 +3979,6 @@ public final class InGameController extends 
FreeColClientHolder {
         // "enhanced trade" mode.
         nt.limitSettlementToUnit(3);
 
-        final Function<NativeTradeItem, ChoiceItem<NativeTradeItem>>
-            goodsMapper = i -> {
-            String label = Messages.message(i.getGoods().getLabel(true));
-            return new ChoiceItem<>(label, i);
-        };
         while (!nt.getDone()) {
             if (act == null) {
                 if (prompt == null) prompt = base;
@@ -3981,8 +3993,7 @@ public final class InGameController extends 
FreeColClientHolder {
                 if (nti == null) {
                     nti = getGUI().getChoice(unit.getTile(),
                         Messages.message("buyProposition.text"), is, "nothing",
-                        transform(nt.getSettlementToUnit(),
-                                  NativeTradeItem::priceIsValid, goodsMapper));
+                            
getNativeTradeItemChoicesPriceValid(nt.getSettlementToUnit()));
                     if (nti == null) break;
                     nt.setItem(nti);
                 }
@@ -4002,8 +4013,7 @@ public final class InGameController extends 
FreeColClientHolder {
                 if (nti == null) {
                     nti = getGUI().getChoice(unit.getTile(),
                         Messages.message("sellProposition.text"), is, 
"nothing",
-                        transform(nt.getUnitToSettlement(),
-                                  NativeTradeItem::priceIsValid, goodsMapper));
+                            
getNativeTradeItemChoicesPriceValid(nt.getUnitToSettlement()));
                     if (nti == null) break;
                     nt.setItem(nti);
                 }
@@ -4022,8 +4032,7 @@ public final class InGameController extends 
FreeColClientHolder {
                 act = null;
                 nti = getGUI().getChoice(unit.getTile(),
                     Messages.message("gift.text"), is, "cancel",
-                    transform(nt.getUnitToSettlement(), alwaysTrue(),
-                              goodsMapper));
+                    getNativeTradeItemChoices(nt.getUnitToSettlement()));
                 if (nti != null) {
                     nt.setItem(nti);
                     askServer().nativeTrade(NativeTradeAction.GIFT, nt);
-- 
2.11.0.rc0.7.gbe5a750


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to