From: <jde...@us...> - 2011-10-16 12:03:44
|
Revision: 15454 http://pcgen.svn.sourceforge.net/pcgen/?rev=15454&view=rev Author: jdempsey Date: 2011-10-16 12:03:37 +0000 (Sun, 16 Oct 2011) Log Message: ----------- Add skeleton of the SpellFacade implementation Modified Paths: -------------- sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java sandbox/uisync/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java Added Paths: ----------- sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellFacadeImplem.java sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellSupportFacadeImpl.java Modified: sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-10-16 09:54:50 UTC (rev 15453) +++ sandbox/uisync/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-10-16 12:03:37 UTC (rev 15454) @@ -204,6 +204,7 @@ private Gui2InfoFactory infoFactory; private CharacterAbilities characterAbilities; private DescriptionFacade descriptionFacade; + private SpellSupportFacade spellSupportFacade; private TodoManager todoManager; /** @@ -246,6 +247,7 @@ infoFactory = new Gui2InfoFactory(pc); characterAbilities = new CharacterAbilities(pc, delegate, dataSet); descriptionFacade = new DescriptionFacadeImpl(pc); + spellSupportFacade = new SpellSupportFacadeImpl(pc); //TODO: Init appliedTempBonuses appliedTempBonuses = new DefaultListFacade<TempBonusFacade>(); @@ -2780,11 +2782,6 @@ return value; } - public String getAbilityChoiceDisplayString(AbilityCategoryFacade category, AbilityFacade ability) - { - return "";//TODO: implement - } - public SpellSupportFacade getSpellSupport() { throw new UnsupportedOperationException("Not supported yet."); Modified: sandbox/uisync/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java 2011-10-16 09:54:50 UTC (rev 15453) +++ sandbox/uisync/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java 2011-10-16 12:03:37 UTC (rev 15454) @@ -36,6 +36,7 @@ import pcgen.cdom.content.HitDie; import pcgen.cdom.enumeration.AspectName; import pcgen.cdom.enumeration.FormulaKey; +import pcgen.cdom.enumeration.IntegerKey; import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.MapKey; import pcgen.cdom.enumeration.ObjectKey; @@ -66,7 +67,10 @@ import pcgen.core.analysis.SkillInfoUtilities; import pcgen.core.analysis.SkillModifier; import pcgen.core.analysis.SkillRankControl; +import pcgen.core.analysis.SpellPoint; import pcgen.core.analysis.TemplateModifier; +import pcgen.core.character.CharacterSpell; +import pcgen.core.character.SpellInfo; import pcgen.core.character.WieldCategory; import pcgen.core.display.VisionDisplay; import pcgen.core.facade.AbilityFacade; @@ -80,6 +84,8 @@ import pcgen.core.facade.SpellFacade; import pcgen.core.facade.TemplateFacade; import pcgen.core.prereq.PrerequisiteUtilities; +import pcgen.core.spell.Spell; +import pcgen.gui.utils.InfoLabelTextBuilder; import pcgen.gui2.util.HtmlInfoBuilder; import pcgen.system.LanguageBundle; @@ -1045,7 +1051,78 @@ public String getHTMLInfo(SpellFacade spell) { - throw new UnsupportedOperationException("Not supported yet."); + if (spell == null || !(spell instanceof SpellFacadeImplem)) + { + return ""; + } + + SpellFacadeImplem sfi = (SpellFacadeImplem) spell; + CharacterSpell cs = sfi.getCharSpell(); + SpellInfo si = sfi.getSpellInfo(); + Spell aSpell = cs.getSpell(); + + if (aSpell == null) + { + return ""; + } + final InfoLabelTextBuilder b = + new InfoLabelTextBuilder(OutputNameFormatting.piString(aSpell, false)); + + final String addString = si.toString(); // would add [featList] + if (addString.length() > 0) + { + b.append(" ").append(addString); //$NON-NLS-1$ + } + + b.appendLineBreak(); + b.appendI18nElement("InfoSpells.level.title", Integer.toString(si.getOriginalLevel())); //$NON-NLS-1$ + + b.append(LanguageBundle.getFormattedString( + "InfoSpells.html.spell.details", //$NON-NLS-1$ + aSpell.getListAsString(ListKey.SPELL_SCHOOL), + aSpell.getListAsString(ListKey.SPELL_SUBSCHOOL), + aSpell.getListAsString(ListKey.SPELL_DESCRIPTOR), + aSpell.getListAsString(ListKey.COMPONENTS), + aSpell.getListAsString(ListKey.CASTTIME), + pc.parseSpellString(cs, aSpell.getListAsString(ListKey.DURATION)), + pc.getSpellRange(cs, si), + pc.parseSpellString(cs, aSpell.getSafe(StringKey.TARGET_AREA)), + aSpell.getListAsString(ListKey.SAVE_INFO), + aSpell.getListAsString(ListKey.SPELL_RESISTANCE))); + + if (Globals.hasSpellPPCost()) + { + b.appendSpacer(); + b.appendI18nElement("InfoSpellsSubTab.PPCost", String //$NON-NLS-1$ + .valueOf(aSpell.getSafe(IntegerKey.PP_COST))); + } + if (Spell.hasSpellPointCost()) + { + b.appendSpacer(); + b.appendI18nElement("InfoSpellsSubTab.SpellPointCost", String //$NON-NLS-1$ + .valueOf(SpellPoint.getSPCostStrings(pc, aSpell))); + } + b.appendLineBreak(); + b.appendI18nElement("in_descrip", pc.parseSpellString(cs, + pc.getDescription(aSpell))); + + final String cString = PrerequisiteUtilities.preReqHTMLStringsForList(pc, null, + aSpell.getPrerequisiteList(), false); + if (cString.length() > 0) + { + b.appendLineBreak(); + b.appendI18nElement("in_requirements", cString); //$NON-NLS-1$ + } + + String spellSource = SourceFormat.getFormattedString(aSpell, + Globals.getSourceDisplay(), true); + if (spellSource.length() > 0) + { + b.appendLineBreak(); + b.appendI18nElement("in_source", spellSource); //$NON-NLS-1$ + } + + return b.toString(); } } Added: sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellFacadeImplem.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellFacadeImplem.java (rev 0) +++ sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellFacadeImplem.java 2011-10-16 12:03:37 UTC (rev 15454) @@ -0,0 +1,153 @@ +/** + * SpellFacadeImplem.java + * Copyright James Dempsey, 2011 + * + * This library 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 library 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on 15/10/2011 4:04:57 PM + * + * $Id$ + */ +package pcgen.gui2.facade; + +import java.util.Collections; +import java.util.List; + +import pcgen.cdom.enumeration.ListKey; +import pcgen.cdom.enumeration.SourceFormat; +import pcgen.core.Globals; +import pcgen.core.PlayerCharacter; +import pcgen.core.character.CharacterSpell; +import pcgen.core.character.SpellInfo; +import pcgen.core.facade.SpellFacade; +import pcgen.core.spell.Spell; + +/** + * The Class <code>SpellFacadeImplem</code> is ... + * + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class SpellFacadeImplem implements SpellFacade +{ + private final PlayerCharacter pc; + private final Spell spell; + private final CharacterSpell charSpell; + private final SpellInfo spellInfo; + + public SpellFacadeImplem(PlayerCharacter pc, Spell spell, CharacterSpell charSpell, SpellInfo spellInfo) + { + this.pc = pc; + this.spell = spell; + this.charSpell = charSpell; + this.spellInfo = spellInfo; + + } + + /* (non-Javadoc) + * @see pcgen.core.facade.InfoFacade#getSource() + */ + public String getSource() + { + return SourceFormat.getFormattedString(spell, + Globals.getSourceDisplay(), true); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.InfoFacade#getKeyName() + */ + public String getKeyName() + { + return spell.getKeyName(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellFacade#getSchool() + */ + public String getSchool() + { + return spell.getListAsString(ListKey.SPELL_SCHOOL); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellFacade#getSubschool() + */ + public String getSubschool() + { + return spell.getListAsString(ListKey.SPELL_SUBSCHOOL); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellFacade#getDescriptors() + */ + public String[] getDescriptors() + { + List<String> descriptors = spell.getListFor(ListKey.SPELL_DESCRIPTOR); + return descriptors.toArray(new String[]{}); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellFacade#getComponents() + */ + public String getComponents() + { + return spell.getListAsString(ListKey.COMPONENTS); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellFacade#getRange() + */ + public String getRange() + { + return pc.getSpellRange(charSpell, spellInfo); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellFacade#getDuration() + */ + public String getDuration() + { + return pc.parseSpellString(charSpell, spell.getListAsString(ListKey.DURATION)); + } + + /** + * @return the spell + */ + Spell getSpell() + { + return spell; + } + + /** + * @return the charSpell + */ + CharacterSpell getCharSpell() + { + return charSpell; + } + + /** + * @return the spellInfo + */ + SpellInfo getSpellInfo() + { + return spellInfo; + } + +} Property changes on: sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellFacadeImplem.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Added: sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellSupportFacadeImpl.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellSupportFacadeImpl.java (rev 0) +++ sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellSupportFacadeImpl.java 2011-10-16 12:03:37 UTC (rev 15454) @@ -0,0 +1,231 @@ +/** + * SpellSupportFacadeImpl.java + * Copyright James Dempsey, 2011 + * + * This library 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 library 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on 15/10/2011 4:20:41 PM + * + * $Id$ + */ +package pcgen.gui2.facade; + +import pcgen.core.PlayerCharacter; +import pcgen.core.facade.ClassFacade; +import pcgen.core.facade.SpellFacade; +import pcgen.core.facade.SpellSupportFacade; +import pcgen.core.facade.util.DefaultListFacade; +import pcgen.core.facade.util.ListFacade; + +/** + * The Class <code>SpellSupportFacadeImpl</code> is ... + * + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class SpellSupportFacadeImpl implements SpellSupportFacade +{ + private final PlayerCharacter pc; + private DefaultListFacade<SpellNode> availableSpellNodes; + private DefaultListFacade<SpellNode> allKnownSpellNodes; + private DefaultListFacade<SpellNode> knownSpellNodes; + private DefaultListFacade<SpellNode> preparedSpellNodes; + private DefaultListFacade<SpellNode> bookSpellNodes; + + public SpellSupportFacadeImpl(PlayerCharacter pc) + { + this.pc = pc; + + availableSpellNodes = new DefaultListFacade<SpellSupportFacade.SpellNode>(); + allKnownSpellNodes = new DefaultListFacade<SpellSupportFacade.SpellNode>(); + knownSpellNodes = new DefaultListFacade<SpellSupportFacade.SpellNode>(); + preparedSpellNodes = new DefaultListFacade<SpellSupportFacade.SpellNode>(); + bookSpellNodes = new DefaultListFacade<SpellSupportFacade.SpellNode>(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#getAvailableSpellNodes() + */ + public ListFacade<SpellNode> getAvailableSpellNodes() + { + return availableSpellNodes; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#getAllKnownSpellNodes() + */ + public ListFacade<SpellNode> getAllKnownSpellNodes() + { + return allKnownSpellNodes; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#getKnownSpellNodes() + */ + public ListFacade<SpellNode> getKnownSpellNodes() + { + return knownSpellNodes; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#getPreparedSpellNodes() + */ + public ListFacade<SpellNode> getPreparedSpellNodes() + { + return preparedSpellNodes; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#getBookSpellNodes() + */ + public ListFacade<SpellNode> getBookSpellNodes() + { + return bookSpellNodes; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#addKnownSpell(pcgen.core.facade.SpellSupportFacade.SpellNode) + */ + public void addKnownSpell(SpellNode spell) + { + knownSpellNodes.addElement(spell); + + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#removeKnownSpell(pcgen.core.facade.SpellSupportFacade.SpellNode) + */ + public void removeKnownSpell(SpellNode spell) + { + knownSpellNodes.removeElement(spell); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#addPreparedSpell(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String) + */ + public void addPreparedSpell(SpellNode spell, String spellList) + { + // TODO Auto-generated method stub + preparedSpellNodes.addElement(spell); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#removePreparedSpell(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String) + */ + public void removePreparedSpell(SpellNode spell, String spellList) + { + // TODO Auto-generated method stub + preparedSpellNodes.removeElement(spell); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#addSpellList(java.lang.String) + */ + public void addSpellList(String spellList) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#removeSpellList(java.lang.String) + */ + public void removeSpellList(String spellList) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#addToSpellBook(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String) + */ + public void addToSpellBook(SpellNode node, String spellBook) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#removeFromSpellBook(pcgen.core.facade.SpellSupportFacade.SpellNode, java.lang.String) + */ + public void removeFromSpellBook(SpellNode node, String spellBook) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade#getClassInfo(pcgen.core.facade.ClassFacade) + */ + public String getClassInfo(ClassFacade spellcaster) + { + // TODO Auto-generated method stub + return null; + } + + public class SpellNodeImpl implements SpellNode + { + + private final SpellFacade spell; + private final ClassFacade cls; + private final String rootNode; + private final String level; + + public SpellNodeImpl (SpellFacade spell, ClassFacade cls, String level, String rootNode) + { + this.spell = spell; + this.cls = cls; + this.level = level; + this.rootNode = rootNode; + + } + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade.SpellNode#getSpellcastingClass() + */ + public ClassFacade getSpellcastingClass() + { + return cls; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade.SpellNode#getSpellLevel() + */ + public String getSpellLevel() + { + return level; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade.SpellNode#getSpell() + */ + public SpellFacade getSpell() + { + return spell; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.SpellSupportFacade.SpellNode#getRootNode() + */ + public String getRootNode() + { + return rootNode; + } + + } +} Property changes on: sandbox/uisync/code/src/java/pcgen/gui2/facade/SpellSupportFacadeImpl.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |