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

---
 .../gui/panel/colopedia/UnitDetailPanel.java       | 57 +++++++++++-----------
 .../sf/freecol/common/model/IndianNationType.java  |  9 ++++
 2 files changed, 38 insertions(+), 28 deletions(-)

diff --git a/src/net/sf/freecol/client/gui/panel/colopedia/UnitDetailPanel.java 
b/src/net/sf/freecol/client/gui/panel/colopedia/UnitDetailPanel.java
index 7ded9ea3b1b..566a9d1b34a 100644
--- a/src/net/sf/freecol/client/gui/panel/colopedia/UnitDetailPanel.java
+++ b/src/net/sf/freecol/client/gui/panel/colopedia/UnitDetailPanel.java
@@ -135,38 +135,39 @@ public class UnitDetailPanel extends 
ColopediaGameObjectTypePanel<UnitType> {
             panel.add(Utility.localizedLabel("colopedia.unit.skill"));
             panel.add(new JLabel(Integer.toString(type.getSkill())), "right");
 
-            List<BuildingType> schools = transform(spec.getBuildingTypeList(),
-                bt -> bt.hasAbility(Ability.TEACH) && bt.canAdd(type));
-            if (!schools.isEmpty()) {
-                panel.add(Utility.localizedLabel("colopedia.unit.school"), 
"newline");
-                int count = 0;
-                for (BuildingType school : schools) {
-                    JButton label = getButton(school);
-                    if (count > 0 && count % 3 == 0) {
-                        panel.add(label, "skip");
-                    } else {
-                        panel.add(label);
-                    }
-                    count++;
+            int count = 0;
+
+            for (BuildingType school : spec.getBuildingTypeList()) {
+                if (!school.hasAbility(Ability.TEACH) || !school.canAdd(type))
+                    continue;
+
+                if (count == 0)
+                    panel.add(Utility.localizedLabel("colopedia.unit.school"), 
"newline");
+
+                JButton label = getButton(school);
+                if (count > 0 && count % 3 == 0) {
+                    panel.add(label, "skip");
+                } else {
+                    panel.add(label);
                 }
+                count++;
             }
 
-            List<IndianNationType> nations
-                = transform(spec.getIndianNationTypes(),
-                            nt -> any(nt.getSkills(),
-                                      matchKey(type, 
RandomChoice::getObject)));
-            if (!nations.isEmpty()) {
-                panel.add(Utility.localizedLabel("colopedia.unit.natives"), 
"newline");
-                int count = 0;
-                for (IndianNationType nation : nations) {
-                    JButton label = getButton(nation);
-                    if (count > 0 && count % 3 == 0) {
-                        panel.add(label, "skip");
-                    } else {
-                        panel.add(label);
-                    }
-                    count++;
+            count = 0;
+            for (IndianNationType nt : spec.getIndianNationTypes()) {
+                if (!nt.hasSkill(type))
+                    continue;
+
+                if (count == 0)
+                    
panel.add(Utility.localizedLabel("colopedia.unit.natives"), "newline");
+
+                JButton label = getButton(nt);
+                if (count > 0 && count % 3 == 0) {
+                    panel.add(label, "skip");
+                } else {
+                    panel.add(label);
                 }
+                count++;
             }
 
         }
diff --git a/src/net/sf/freecol/common/model/IndianNationType.java 
b/src/net/sf/freecol/common/model/IndianNationType.java
index 1f3e78959e2..139d3addb4b 100644
--- a/src/net/sf/freecol/common/model/IndianNationType.java
+++ b/src/net/sf/freecol/common/model/IndianNationType.java
@@ -128,6 +128,15 @@ public class IndianNationType extends NationType {
             : skills;
     }
 
+    public boolean hasSkill(UnitType t) {
+        if (skills != null)
+            for (RandomChoice<UnitType> walk : skills)
+                if (walk.getObject() == t)
+                    return true;
+
+        return true;
+    }
+
     /**
      * Add a skill.
      *
-- 
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