From: <th...@us...> - 2009-09-07 21:46:20
|
Revision: 10428 http://pcgen.svn.sourceforge.net/pcgen/?rev=10428&view=rev Author: thpr Date: 2009-09-07 21:46:03 +0000 (Mon, 07 Sep 2009) Log Message: ----------- Make CampaignFacet a "push" Facet Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/cdom/facet/CampaignFacet.java Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Added Paths: ----------- Trunk/pcgen/code/src/java/pcgen/cdom/facet/ExpandedCampaignFacet.java Modified: Trunk/pcgen/code/src/java/pcgen/cdom/facet/CampaignFacet.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/facet/CampaignFacet.java 2009-09-07 21:42:06 UTC (rev 10427) +++ Trunk/pcgen/code/src/java/pcgen/cdom/facet/CampaignFacet.java 2009-09-07 21:46:03 UTC (rev 10428) @@ -17,31 +17,8 @@ */ package pcgen.cdom.facet; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -import pcgen.cdom.enumeration.CharID; import pcgen.core.Campaign; -import pcgen.persistence.PersistenceManager; -public class CampaignFacet +public class CampaignFacet extends AbstractListFacet<Campaign> { - - public Collection<Campaign> getRootCampaigns(CharID id) - { - return PersistenceManager.getInstance().getLoadedCampaigns(); - } - - public Collection<Campaign> getSet(CharID id) - { - Set<Campaign> results = new HashSet<Campaign>(); - for (Campaign c : getRootCampaigns(id)) - { - results.add(c); - results.addAll(c.getSubCampaigns()); - } - return results; - } - } Added: Trunk/pcgen/code/src/java/pcgen/cdom/facet/ExpandedCampaignFacet.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/facet/ExpandedCampaignFacet.java (rev 0) +++ Trunk/pcgen/code/src/java/pcgen/cdom/facet/ExpandedCampaignFacet.java 2009-09-07 21:46:03 UTC (rev 10428) @@ -0,0 +1,40 @@ +/* + * Copyright (c) Thomas Parker, 2009. + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package pcgen.cdom.facet; + +import pcgen.core.Campaign; + +public class ExpandedCampaignFacet extends AbstractSourcedListFacet<Campaign> + implements DataFacetChangeListener<Campaign> +{ + + public void dataAdded(DataFacetChangeEvent<Campaign> dfce) + { + add(dfce.getCharID(), dfce.getCDOMObject(), dfce.getSource()); + addAll(dfce.getCharID(), dfce.getCDOMObject().getSubCampaigns(), dfce + .getSource()); + } + + public void dataRemoved(DataFacetChangeEvent<Campaign> dfce) + { + remove(dfce.getCharID(), dfce.getCDOMObject(), dfce.getSource()); + removeAll(dfce.getCharID(), dfce.getCDOMObject().getSubCampaigns(), + dfce.getSource()); + } + +} Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-09-07 21:42:06 UTC (rev 10427) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-09-07 21:46:03 UTC (rev 10428) @@ -102,6 +102,7 @@ import pcgen.cdom.facet.DomainFacet; import pcgen.cdom.facet.EquipmentFacet; import pcgen.cdom.facet.EquippedEquipmentFacet; +import pcgen.cdom.facet.ExpandedCampaignFacet; import pcgen.cdom.facet.FaceFacet; import pcgen.cdom.facet.FacetLibrary; import pcgen.cdom.facet.FactFacet; @@ -182,6 +183,7 @@ import pcgen.io.PCGFile; import pcgen.io.exporttoken.BonusToken; import pcgen.persistence.PersistenceLayerException; +import pcgen.persistence.PersistenceManager; import pcgen.persistence.lst.prereq.PreParserFactory; import pcgen.rules.context.LoadContext; import pcgen.util.Delta; @@ -218,6 +220,7 @@ private ClassFacet classFacet = FacetLibrary.getFacet(ClassFacet.class); private CompanionModFacet companionModFacet = FacetLibrary.getFacet(CompanionModFacet.class); private CampaignFacet campaignFacet = FacetLibrary.getFacet(CampaignFacet.class); + private ExpandedCampaignFacet expandedCampaignFacet = FacetLibrary.getFacet(ExpandedCampaignFacet.class); private BioSetFacet bioSetFacet = FacetLibrary.getFacet(BioSetFacet.class); private EquipmentFacet userEquipmentFacet = FacetLibrary.getFacet(UserEquipmentFacet.class); private EquipmentFacet equipmentFacet = FacetLibrary.getFacet(EquipmentFacet.class); @@ -428,6 +431,8 @@ equippedFacet.addDataFacetChangeListener(activeEquipmentFacet); naturalEquipmentFacet.addDataFacetChangeListener(activeEquipmentFacet); + campaignFacet.addDataFacetChangeListener(expandedCampaignFacet); + resolveFacet.associatePlayerCharacter(id, this); bonusFacet.associatePlayerCharacter(id, this); @@ -448,6 +453,7 @@ heightFacet.setHeight(id, 0); weightFacet.setWeight(id, 0); bioSetFacet.set(id, Globals.getBioSet()); + campaignFacet.addAll(id, PersistenceManager.getInstance().getLoadedCampaigns()); setRace(Globals.s_EMPTYRACE); setName(Constants.EMPTY_STRING); @@ -10660,7 +10666,7 @@ final ArrayList<PObject> results = new ArrayList<PObject>(); // Loaded campaigns - results.addAll(campaignFacet.getSet(id)); + results.addAll(expandedCampaignFacet.getSet(id)); // Alignment PCAlignment align = alignmentFacet.get(id); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |