From: <jde...@us...> - 2010-10-10 03:34:21
|
Revision: 13388 http://pcgen.svn.sourceforge.net/pcgen/?rev=13388&view=rev Author: jdempsey Date: 2010-10-10 03:34:13 +0000 (Sun, 10 Oct 2010) Log Message: ----------- Fix bug: Gender selection is not being properly saved in 5.17.1 Issue#: CODE-28 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/base/util/WeightedCollection.java Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/Gender.java Trunk/pcgen/code/src/java/pcgen/core/Globals.java Trunk/pcgen/code/src/java/pcgen/core/npcgen/Configuration.java Trunk/pcgen/code/src/java/pcgen/core/npcgen/GenderGeneratorOption.java Trunk/pcgen/code/src/java/pcgen/core/npcgen/NPCGenerator.java Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoDescription.java Modified: Trunk/pcgen/code/src/java/pcgen/base/util/WeightedCollection.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/base/util/WeightedCollection.java 2010-10-10 01:31:09 UTC (rev 13387) +++ Trunk/pcgen/code/src/java/pcgen/base/util/WeightedCollection.java 2010-10-10 03:34:13 UTC (rev 13388) @@ -241,7 +241,7 @@ } } /* - * CONSIDER Is this really unreachable error? + * This can occur if the list is empty. */ throw new IndexOutOfBoundsException(index + " >= " + total); } Modified: Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/Gender.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/Gender.java 2010-10-10 01:31:09 UTC (rev 13387) +++ Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/Gender.java 2010-10-10 03:34:13 UTC (rev 13388) @@ -17,6 +17,8 @@ */ package pcgen.cdom.enumeration; +import pcgen.util.PropertyFactory; + /** * Represents the Genders available in PCGen. * @@ -26,8 +28,30 @@ */ public enum Gender { - Male, Female, Neuter; + Male { + @Override + public String toString() + { + return PropertyFactory.getString("in_genderMale"); + } + }, + Female { + @Override + public String toString() + { + return PropertyFactory.getString("in_genderFemale"); + } + }, + + Neuter { + @Override + public String toString() + { + return PropertyFactory.getString("in_genderNeuter"); + } + }; + public static Gender getDefaultValue() { return Male; Modified: Trunk/pcgen/code/src/java/pcgen/core/Globals.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Globals.java 2010-10-10 01:31:09 UTC (rev 13387) +++ Trunk/pcgen/code/src/java/pcgen/core/Globals.java 2010-10-10 03:34:13 UTC (rev 13388) @@ -60,6 +60,7 @@ import pcgen.cdom.base.Constants; import pcgen.cdom.base.MasterListInterface; import pcgen.cdom.enumeration.AssociationKey; +import pcgen.cdom.enumeration.Gender; import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.ObjectKey; import pcgen.cdom.enumeration.Pantheon; @@ -2660,14 +2661,14 @@ * @return List of gender strings * TODO - Genders need to become objects. */ - public static List<String> getAllGenders() + public static List<Gender> getAllGenders() { - ArrayList<String> ret = new ArrayList<String>(); - ret.add(PropertyFactory.getString("in_genderMale")); //$NON-NLS-1$ - ret.add(PropertyFactory.getString("in_genderFemale")); //$NON-NLS-1$ - ret.add(PropertyFactory.getString("in_genderNeuter")); //$NON-NLS-1$ - ret.add(PropertyFactory.getString("in_comboNone")); //$NON-NLS-1$ - ret.add(PropertyFactory.getString("in_comboOther")); //$NON-NLS-1$ + ArrayList<Gender> ret = new ArrayList<Gender>(); + ret.add(Gender.Male); + ret.add(Gender.Female); + ret.add(Gender.Neuter); +// ret.add(PropertyFactory.getString("in_comboNone")); //$NON-NLS-1$ +// ret.add(PropertyFactory.getString("in_comboOther")); //$NON-NLS-1$ return ret; } Modified: Trunk/pcgen/code/src/java/pcgen/core/npcgen/Configuration.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/npcgen/Configuration.java 2010-10-10 01:31:09 UTC (rev 13387) +++ Trunk/pcgen/code/src/java/pcgen/core/npcgen/Configuration.java 2010-10-10 03:34:13 UTC (rev 13388) @@ -31,6 +31,7 @@ import pcgen.base.util.WeightedCollection; import pcgen.cdom.base.Constants; +import pcgen.cdom.enumeration.Gender; import pcgen.core.Ability; import pcgen.core.AbilityCategory; import pcgen.core.Deity; @@ -209,11 +210,11 @@ ret.add((GenderGeneratorOption)opt); } } - for ( final String gender : Globals.getAllGenders() ) + for ( final Gender gender : Globals.getAllGenders() ) { final GenderGeneratorOption opt = new GenderGeneratorOption(); - opt.setName(gender); - opt.addChoice(1, gender); + opt.setName(gender.toString()); + opt.addChoice(1, gender.toString()); ret.add(opt); } return ret; Modified: Trunk/pcgen/code/src/java/pcgen/core/npcgen/GenderGeneratorOption.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/npcgen/GenderGeneratorOption.java 2010-10-10 01:31:09 UTC (rev 13387) +++ Trunk/pcgen/code/src/java/pcgen/core/npcgen/GenderGeneratorOption.java 2010-10-10 03:34:13 UTC (rev 13388) @@ -23,6 +23,7 @@ package pcgen.core.npcgen; import pcgen.base.util.WeightedCollection; +import pcgen.cdom.enumeration.Gender; import pcgen.core.Globals; /** @@ -33,7 +34,7 @@ */ public class GenderGeneratorOption extends GeneratorOption { - private WeightedCollection<String> theChoices = null; + private WeightedCollection<Gender> theChoices = null; /** * @see pcgen.core.npcgen.GeneratorOption#addChoice(int, java.lang.String) @@ -43,12 +44,12 @@ { if ( theChoices == null ) { - theChoices = new WeightedCollection<String>(); + theChoices = new WeightedCollection<Gender>(); } if ( aValue.equals("*") ) //$NON-NLS-1$ { - for ( final String gender : Globals.getAllGenders() ) + for ( final Gender gender : Globals.getAllGenders() ) { if ( ! theChoices.contains(gender) ) { @@ -57,7 +58,15 @@ } return; } - theChoices.add(aValue, aWeight); + + for ( final Gender gender : Globals.getAllGenders() ) + { + if (gender.toString().equalsIgnoreCase(aValue)) + { + theChoices.add(gender, aWeight); + } + } + } /** @@ -66,7 +75,7 @@ * @return WeightedCollection of gender choices */ @Override - public WeightedCollection<String> getList() + public WeightedCollection<Gender> getList() { return theChoices; } Modified: Trunk/pcgen/code/src/java/pcgen/core/npcgen/NPCGenerator.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/npcgen/NPCGenerator.java 2010-10-10 01:31:09 UTC (rev 13387) +++ Trunk/pcgen/code/src/java/pcgen/core/npcgen/NPCGenerator.java 2010-10-10 03:34:13 UTC (rev 13388) @@ -285,7 +285,7 @@ return option.getList().getRandomValue(); } - private String getGender(final GenderGeneratorOption option) + private Gender getGender(final GenderGeneratorOption option) { return option.getList().getRandomValue(); } @@ -580,9 +580,9 @@ return; } - final String gender = getGender( aGender ); + final Gender gender = getGender( aGender ); Logging.debugPrint( "NPCGenerator: Selecting " + gender + " for gender " + aGender ); //$NON-NLS-1$ //$NON-NLS-2$ - aPC.setGender(Gender.valueOf(gender)); + aPC.setGender(gender); boolean doneRacialClasses = false; for (int i = 0; i < classList.size(); i++) Modified: Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoDescription.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoDescription.java 2010-10-10 01:31:09 UTC (rev 13387) +++ Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoDescription.java 2010-10-10 03:34:13 UTC (rev 13388) @@ -592,9 +592,7 @@ northPanel.add(genderComboBox); genderComboBox.setAllItems(Globals.getAllGenders().toArray()); - // genderComboBox.addItem(PropertyFactory.getString("in_genderMale")); - // genderComboBox.addItem(PropertyFactory.getString("in_genderFemale")); - // genderComboBox.addItem(PropertyFactory.getString("in_genderNeuter")); + // TODO: Indentiofy if the following undeclared genders need to be supported // genderComboBox.addItem(PropertyFactory.getString("in_comboNone")); // genderComboBox.addItem(PropertyFactory.getString("in_comboOther")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |