From: <jde...@us...> - 2011-06-27 10:01:20
|
Revision: 15190 http://pcgen.svn.sourceforge.net/pcgen/?rev=15190&view=rev Author: jdempsey Date: 2011-06-27 10:01:14 +0000 (Mon, 27 Jun 2011) Log Message: ----------- Add getChoices method for retrieving ability choices Modified Paths: -------------- sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java sandbox/uisync/code/src/test/pcgen/gui2/facade/CharacterAbilitiesTest.java Modified: sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java 2011-06-27 04:53:57 UTC (rev 15189) +++ sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java 2011-06-27 10:01:14 UTC (rev 15190) @@ -28,7 +28,9 @@ import java.util.List; import java.util.Map; +import pcgen.base.lang.StringUtil; import pcgen.cdom.base.CDOMObjectUtilities; +import pcgen.cdom.base.ChooseInformation; import pcgen.cdom.base.Constants; import pcgen.cdom.enumeration.AssociationKey; import pcgen.cdom.enumeration.CharID; @@ -587,6 +589,40 @@ } + /** + * Retrieves the choices the character has made for an ability. + * + * @param abilityFacade The ability to be reported. + * @return The human readable string of the choices made. + */ + public String getChoices(AbilityFacade abilityFacade) + { + if (!(abilityFacade instanceof Ability)) + { + return ""; + } + + final Ability ability = (Ability) abilityFacade; + StringBuilder result = new StringBuilder(); + + if (ability.getSafe(ObjectKey.MULTIPLE_ALLOWED)) + { + ChooseInformation<?> chooseInfo = + ability.get(ObjectKey.CHOOSE_INFO); + + if (chooseInfo != null) + { + result.append(chooseInfo.getDisplay(theCharacter, ability)); + } + else + { + result.append(StringUtil.joinToStringBuffer( + theCharacter.getExpandedAssociations(ability), ",")); + } + } + return result.toString(); + } + private boolean checkAbilityQualify(final Ability anAbility, AbilityCategory theCategory) { Modified: sandbox/uisync/code/src/test/pcgen/gui2/facade/CharacterAbilitiesTest.java =================================================================== --- sandbox/uisync/code/src/test/pcgen/gui2/facade/CharacterAbilitiesTest.java 2011-06-27 04:53:57 UTC (rev 15189) +++ sandbox/uisync/code/src/test/pcgen/gui2/facade/CharacterAbilitiesTest.java 2011-06-27 10:01:14 UTC (rev 15190) @@ -119,6 +119,32 @@ } + /** + * Test the getChoices method with text choices. + */ + public void testGetChoices() + { + PlayerCharacter pc = getCharacter(); + CharacterAbilities ca = new CharacterAbilities(pc, uiDelegate, dataset); + + Ability choiceAbility = + TestHelper.makeAbility("Skill Focus", AbilityCategory.FEAT, + "General"); + choiceAbility.put(ObjectKey.MULTIPLE_ALLOWED, true); + Ability pcAbility = + pc.addAbilityNeedCheck(AbilityCategory.FEAT, choiceAbility); + AbilityUtilities.finaliseAbility(pcAbility, "Perception", pc, + AbilityCategory.FEAT); + assertEquals("Incorrect single choice", "Perception", + ca.getChoices(pcAbility)); + + AbilityUtilities.finaliseAbility(pcAbility, "Acrobatics", pc, + AbilityCategory.FEAT); + assertEquals("Incorrect multiple choice", "Perception,Acrobatics", + ca.getChoices(pcAbility)); + + } + /* (non-Javadoc) * @see pcgen.AbstractCharacterTestCase#setUp() */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |