From: <jde...@us...> - 2011-04-27 12:51:44
|
Revision: 14894 http://pcgen.svn.sourceforge.net/pcgen/?rev=14894&view=rev Author: jdempsey Date: 2011-04-27 12:51:37 +0000 (Wed, 27 Apr 2011) Log Message: ----------- FEATS TAB - hide entries that don't pertain to character Modified Paths: -------------- sandbox/uisync/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java sandbox/uisync/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java sandbox/uisync/code/src/java/pcgen/gui2/tabs/ability/AbilityTreeTableModel.java Modified: sandbox/uisync/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/core/facade/CharacterFacade.java 2011-04-27 05:17:23 UTC (rev 14893) +++ sandbox/uisync/code/src/java/pcgen/core/facade/CharacterFacade.java 2011-04-27 12:51:37 UTC (rev 14894) @@ -134,6 +134,15 @@ public ListFacade<AbilityFacade> getAbilities(AbilityCategoryFacade category); /** + * Retrieve a list of the ability categories that are currently relevant to + * the character. That is those ability categories that the character has + * abilities or unspent pool points in. The list will be updated as + * categories become active or inactive. + * @return The list of active categories. + */ + public ListFacade<AbilityCategoryFacade> getActiveAbilityCategories(); + + /** * * @return * @deprecated Modified: sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java 2011-04-27 05:17:23 UTC (rev 14893) +++ sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterAbilities.java 2011-04-27 12:51:37 UTC (rev 14894) @@ -78,6 +78,7 @@ private UIDelegate delegate; private Map<AbilityCategoryFacade, DefaultListFacade<AbilityFacade>> abilityListMap; + private DefaultListFacade<AbilityCategoryFacade> activeCategories; private CharID charID; private DataSetFacade dataSetFacade; @@ -95,6 +96,7 @@ { abilityListMap = new HashMap<AbilityCategoryFacade, DefaultListFacade<AbilityFacade>>(); + activeCategories = new DefaultListFacade<AbilityCategoryFacade>(); charID = theCharacter.getCharID(); GrantedAbilityFacet grantedAbilityFacet = FacetLibrary.getFacet(GrantedAbilityFacet.class); @@ -218,12 +220,14 @@ for (AbilityCategoryFacade category : categories) { AbilityCategory cat = (AbilityCategory) category; + boolean found = false; for (Ability ability : theCharacter.getAutomaticAbilityList(cat)) { CategorizedAbilitySelection cas = new CategorizedAbilitySelection(null, cat, ability, Nature.AUTOMATIC); addElement(cas); + found = true; } for (Ability ability : theCharacter.getRealAbilitiesList(cat)) { @@ -231,6 +235,7 @@ new CategorizedAbilitySelection(null, cat, ability, Nature.NORMAL); addElement(cas); + found = true; } for (Ability ability : theCharacter.getVirtualAbilityList(cat)) { @@ -238,7 +243,38 @@ new CategorizedAbilitySelection(null, cat, ability, Nature.VIRTUAL); addElement(cas); + found = true; } + + // Show the category if the character has pool points left + found |= theCharacter.getAvailableAbilityPool(cat).intValue() > 0; + + // Finally deal with visibility + switch (cat.getVisibility()) + { + case HIDDEN: + case OUTPUT_ONLY: + found = false; + break; + + case DEFAULT: + case DISPLAY_ONLY: + found = true; + break; + + case QUALIFY: + default: + break; + } + + if (found && !activeCategories.containsElement(cat)) + { + activeCategories.addElement(cat); + } + if (!found && activeCategories.containsElement(cat)) + { + activeCategories.removeElement(cat); + } } } @@ -444,6 +480,14 @@ } return abList; } + + /** + * @return The list of active ability categories. + */ + public ListFacade<AbilityCategoryFacade> getActiveAbilityCategories() + { + return activeCategories; + } /** * Get the number of selections that are remaining for this category. Modified: sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-04-27 05:17:23 UTC (rev 14893) +++ sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-04-27 12:51:37 UTC (rev 14894) @@ -458,6 +458,14 @@ } /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getActiveAbilityCategories() + */ + public ListFacade<AbilityCategoryFacade> getActiveAbilityCategories() + { + return characterAbilities.getActiveAbilityCategories(); + } + + /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getRemainingSelections(pcgen.core.facade.AbilityCategoryFacade) */ public int getRemainingSelections(AbilityCategoryFacade category) @@ -2762,6 +2770,5 @@ } return value; } - } Modified: sandbox/uisync/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2011-04-27 05:17:23 UTC (rev 14893) +++ sandbox/uisync/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2011-04-27 12:51:37 UTC (rev 14894) @@ -94,7 +94,7 @@ public AbilityTabsModel(CharacterFacade character) { this.character = character; - this.categories = character.getDataSet().getAbilityCategories(); + this.categories = character.getActiveAbilityCategories(); for (AbilityCategoryFacade category : categories) { String type = category.getType(); Modified: sandbox/uisync/code/src/java/pcgen/gui2/tabs/ability/AbilityTreeTableModel.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/tabs/ability/AbilityTreeTableModel.java 2011-04-27 05:17:23 UTC (rev 14893) +++ sandbox/uisync/code/src/java/pcgen/gui2/tabs/ability/AbilityTreeTableModel.java 2011-04-27 12:51:37 UTC (rev 14894) @@ -38,8 +38,16 @@ import pcgen.util.Comparators; /** - * + * The Class <code>AbilityTreeTableModel</code> is a model for the + * selected abilities tree table. It lists the abilities held by the + * character in a tree structure by category. + * + * <br/> + * Last Editor: $Author: $ + * Last Edited: $Date: $ + * * @author Connor Petty <cpm...@us...> + * @version $Revision: $ */ public class AbilityTreeTableModel extends AbstractTreeTableModel implements SortableTreeTableModel { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |