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