From: <th...@us...> - 2009-09-01 02:01:13
|
Revision: 10371 http://pcgen.svn.sourceforge.net/pcgen/?rev=10371&view=rev Author: thpr Date: 2009-09-01 02:00:58 +0000 (Tue, 01 Sep 2009) Log Message: ----------- update cdomui branch (code directory only) to Trunk 10050 Modified Paths: -------------- sandbox/cdomui/code/pluginbuild.xml sandbox/cdomui/code/src/java/gmgen/plugin/PlayerCharacterOutput.java sandbox/cdomui/code/src/java/gmgen/pluginmgr/JARClassLoader.java sandbox/cdomui/code/src/java/pcgen/base/lang/CaseInsensitiveString.java sandbox/cdomui/code/src/java/pcgen/base/util/KeyMap.java sandbox/cdomui/code/src/java/pcgen/base/util/WeightedCollection.java sandbox/cdomui/code/src/java/pcgen/cdom/base/CDOMObject.java sandbox/cdomui/code/src/java/pcgen/cdom/base/Constants.java sandbox/cdomui/code/src/java/pcgen/cdom/base/TransitionChoice.java sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/CompoundOrChoiceSet.java sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/RetainingChooser.java sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/SimpleChoiceSet.java sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/AssociationListKey.java sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ListKey.java sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ObjectKey.java sandbox/cdomui/code/src/java/pcgen/cdom/inst/PCClassLevel.java sandbox/cdomui/code/src/java/pcgen/cdom/reference/AbstractReferenceManufacturer.java sandbox/cdomui/code/src/java/pcgen/cdom/reference/ReferenceManufacturer.java sandbox/cdomui/code/src/java/pcgen/core/GameMode.java sandbox/cdomui/code/src/java/pcgen/core/PCClass.java sandbox/cdomui/code/src/java/pcgen/core/PlayerCharacter.java sandbox/cdomui/code/src/java/pcgen/core/chooser/ChooserUtilities.java sandbox/cdomui/code/src/java/pcgen/core/npcgen/LevelGeneratorOption.java sandbox/cdomui/code/src/java/pcgen/core/pclevelinfo/PCLevelInfo.java sandbox/cdomui/code/src/java/pcgen/core/term/PCCountChecksTermEvaluator.java sandbox/cdomui/code/src/java/pcgen/core/term/TermEvaluatorBuilderPCVar.java sandbox/cdomui/code/src/java/pcgen/gui/MainHP.java sandbox/cdomui/code/src/java/pcgen/gui/converter/loader/ClassLoader.java sandbox/cdomui/code/src/java/pcgen/gui/tabs/InfoClasses.java sandbox/cdomui/code/src/java/pcgen/gui/tabs/InfoResources.java sandbox/cdomui/code/src/java/pcgen/gui/tabs/InfoSummary.java sandbox/cdomui/code/src/java/pcgen/io/PCGVer2Creator.java sandbox/cdomui/code/src/java/pcgen/io/exporttoken/CheckToken.java sandbox/cdomui/code/src/java/pcgen/persistence/lst/BioSetLoader.java sandbox/cdomui/code/src/java/pcgen/persistence/lst/LstSystemLoader.java sandbox/cdomui/code/src/java/pcgen/persistence/lst/PCCheckLoader.java sandbox/cdomui/code/src/java/pcgen/persistence/lst/StatsAndChecksLoader.java sandbox/cdomui/code/src/java/pcgen/rules/context/AbstractReferenceContext.java sandbox/cdomui/code/src/java/pcgen/rules/context/LoadContext.java sandbox/cdomui/code/src/java/pcgen/rules/context/ReferenceContext.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/TokenLibrary.java sandbox/cdomui/code/src/java/plugin/bonustokens/Checks.java sandbox/cdomui/code/src/java/plugin/encounter/EncounterPlugin.java sandbox/cdomui/code/src/java/plugin/exporttokens/HitDiceToken.java sandbox/cdomui/code/src/java/plugin/initiative/gui/SavingThrowDialog.java sandbox/cdomui/code/src/java/plugin/lsttokens/BonusLst.java sandbox/cdomui/code/src/java/plugin/lsttokens/ChooseLst.java sandbox/cdomui/code/src/java/plugin/lsttokens/add/ClassSkillsLevelToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/campaign/ShowinmenuToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/equipmentmodifier/choose/StatBonusToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/race/MonsterclassToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/remove/FeatToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/statsandchecks/check/ChecknameToken.java sandbox/cdomui/code/src/java/plugin/pretokens/test/PreCheckBaseTester.java sandbox/cdomui/code/src/java/plugin/pretokens/test/PreCheckTester.java sandbox/cdomui/code/src/test/pcgen/core/PlayerCharacterTest.java sandbox/cdomui/code/src/test/pcgen/core/prereq/PreCheckBaseTest.java sandbox/cdomui/code/src/test/pcgen/core/prereq/PreCheckTest.java sandbox/cdomui/code/src/test/pcgen/persistence/lst/BioSetLoaderTest.java sandbox/cdomui/code/src/test/plugin/lsttokens/testsupport/TokenRegistration.java sandbox/cdomui/code/src/utest/pcgen/base/util/WeightedCollectionTest.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/base/util/IdentityList.java sandbox/cdomui/code/src/java/pcgen/core/chooser/CDOMChoiceManager.java sandbox/cdomui/code/src/java/pcgen/core/term/PCCastTimesAtWillTermEvaluator.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/ChoiceSetLoadUtilities.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/token/AbstractPCQualifierToken.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/token/AbstractQualifiedChooseToken.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/token/AbstractSimpleChooseToken.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/token/PrimitiveToken.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/token/QualifierToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/choose/CheckToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/choose/PCStatToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/choose/SizeToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/choose/TemplateToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/gamemode/StartStatMaxToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/gamemode/StartStatMinToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/gamemode/tab/SkilltablehiddencolumnsToken.java sandbox/cdomui/code/src/java/plugin/lsttokens/pcclass/level/DonotaddToken.java sandbox/cdomui/code/src/java/plugin/qualifier/ sandbox/cdomui/code/src/java/plugin/qualifier/pobject/ sandbox/cdomui/code/src/java/plugin/qualifier/pobject/AnyToken.java sandbox/cdomui/code/src/java/plugin/qualifier/pobject/QualifiedToken.java sandbox/cdomui/code/src/java/plugin/qualifier/template/ sandbox/cdomui/code/src/java/plugin/qualifier/template/PCToken.java sandbox/cdomui/code/src/utest/pcgen/base/util/IdentityListTest.java sandbox/cdomui/code/src/utest/plugin/lsttokens/choose/ sandbox/cdomui/code/src/utest/plugin/lsttokens/choose/TemplateTokenTest.java sandbox/cdomui/code/src/utest/plugin/lsttokens/testsupport/AbstractChooseTokenTestCase.java Removed Paths: ------------- sandbox/cdomui/code/src/java/plugin/qualifier/pobject/ sandbox/cdomui/code/src/java/plugin/qualifier/pobject/AnyToken.java sandbox/cdomui/code/src/java/plugin/qualifier/pobject/QualifiedToken.java sandbox/cdomui/code/src/java/plugin/qualifier/template/ sandbox/cdomui/code/src/java/plugin/qualifier/template/PCToken.java sandbox/cdomui/code/src/utest/plugin/lsttokens/choose/TemplateTokenTest.java Property Changed: ---------------- sandbox/cdomui/code/ Property changes on: sandbox/cdomui/code ___________________________________________________________________ Modified: svn:mergeinfo - /Trunk/pcgen/code:9778-9846,9863-9926,9953-10010 + /Trunk/pcgen/code:9778-9846,9863-9926,9953-10050 Modified: sandbox/cdomui/code/pluginbuild.xml =================================================================== --- sandbox/cdomui/code/pluginbuild.xml 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/pluginbuild.xml 2009-09-01 02:00:58 UTC (rev 10371) @@ -22,7 +22,7 @@ <property name="jepplugins.dir" value="${plugins.dir}/jepplugins" /> <property name="converterplugins.dir" value="${plugins.dir}/converterplugins" /> <property name="uiplugins.dir" value="${plugins.dir}/uiplugins" /> - <target name="jar-all-plugins" depends="makeplugindirs,jar-gmgen-plugins,jar-export-plugins,jar-bonus-plugins,jar-pre-plugins,jar-lst-plugins, jar-systemlst-plugins, jar-converter-plugins, jar-jep-plugins, jar-deprecated-plugin, jar-uitoken-plugin" description="Build (Link) plugin jar files"> + <target name="jar-all-plugins" depends="makeplugindirs,jar-gmgen-plugins,jar-export-plugins,jar-bonus-plugins,jar-pre-plugins,jar-lst-plugins, jar-systemlst-plugins, jar-converter-plugins, jar-jep-plugins, jar-deprecated-plugin, jar-uitoken-plugin, jar-primitive-plugins, jar-qualifier-plugins" description="Build (Link) plugin jar files"> </target> <target name="jar-gmgen-plugins" depends="makeplugindirs" description="Build (Link) GMGen plugin jar files"> @@ -2814,6 +2814,13 @@ </patternset> </fileset> </jar> + <jar jarfile="${lstplugins.dir}/ChooseToken-CHECK.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/choose/CheckToken.class" /> + </patternset> + </fileset> + </jar> <jar jarfile="${lstplugins.dir}/ChooseToken-CSKILLS.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> <patternset> @@ -2905,6 +2912,13 @@ </patternset> </fileset> </jar> + <jar jarfile="${lstplugins.dir}/ChooseToken-PCSTAT.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/choose/PCStatToken.class" /> + </patternset> + </fileset> + </jar> <jar jarfile="${lstplugins.dir}/ChooseToken-PROFICIENCY.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> <patternset> @@ -2940,6 +2954,13 @@ </patternset> </fileset> </jar> + <jar jarfile="${lstplugins.dir}/ChooseToken-SIZE.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/choose/SizeToken.class" /> + </patternset> + </fileset> + </jar> <jar jarfile="${lstplugins.dir}/ChooseToken-SKILLSNAMEDTOCCSKILL.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> <patternset> @@ -3010,6 +3031,13 @@ </patternset> </fileset> </jar> + <jar jarfile="${lstplugins.dir}/ChooseToken-TEMPLATE.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/choose/TemplateToken.class" /> + </patternset> + </fileset> + </jar> <jar jarfile="${lstplugins.dir}/ChooseToken-USERINPUT.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> <patternset> @@ -3297,6 +3325,13 @@ </patternset> </fileset> </jar> + <jar jarfile="${lstplugins.dir}/ClassLevelLstToken-DONOTADD.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/pcclass/level/DonotaddToken.class" /> + </patternset> + </fileset> + </jar> <jar jarfile="${lstplugins.dir}/ClassLevelLstToken-HITDIE.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> <patternset> @@ -5041,6 +5076,23 @@ <!-- System tokens--> <target name="jar-systemlst-plugins" depends="makeplugindirs" description="Build (Link) System Lst plugin jar files"> <!-- GameMode tokens--> + + <!-- CMP tokens--> + <jar jarfile="${systemlstplugins.dir}/GameModeLstToken-STARTSTATMIN.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/gamemode/StartStatMinToken.class" /> + </patternset> + </fileset> + </jar> + <jar jarfile="${systemlstplugins.dir}/GameModeLstToken-STARTSTATMAX.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/gamemode/StartStatMaxToken.class" /> + </patternset> + </fileset> + </jar> + <jar jarfile="${systemlstplugins.dir}/GameModeLstToken-ACABBREV.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> <patternset> @@ -5649,6 +5701,13 @@ </patternset> </fileset> </jar> + <jar jarfile="${systemlstplugins.dir}/GameMode-TabToken-SKILLTABLEHIDDENCOLUMNS.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/lsttokens/gamemode/tab/SkilltablehiddencolumnsToken.class" /> + </patternset> + </fileset> + </jar> <jar jarfile="${systemlstplugins.dir}/GameMode-TabToken-STATTABLEHIDDENCOLUMNS.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> <patternset> @@ -6291,6 +6350,41 @@ </fileset> </jar> </target> + <target name="jar-primitive-plugins" depends="" description="Build (Link) Lst Primitive Token plugin jar files"> + </target> + + <target name="jar-qualifier-plugins" depends="jar-qualifier-global-plugins,jar-qualifier-transition-plugins" description="Build (Link) Lst Compatibility Token plugin jar files"> + </target> + + <target name="jar-qualifier-global-plugins" depends="makeplugindirs" description="Build (Link) Global Qualifier Token plugin jar files"> + <!-- Global Qualifier tokens--> + <jar jarfile="${lstplugins.dir}/GlobalQualifier-ANY.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/qualifier/pobject/AnyToken.class" /> + </patternset> + </fileset> + </jar> + <jar jarfile="${lstplugins.dir}/GlobalQualifier-QUALIFIED.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/qualifier/pobject/QualifiedToken.class" /> + </patternset> + </fileset> + </jar> + </target> + + <target name="jar-qualifier-transition-plugins" depends="makeplugindirs" description="Build (Link) Transition Qualifier Token plugin jar files"> + <!-- Transition (temporary during CDOM changes) Qualifier tokens--> + <jar jarfile="${lstplugins.dir}/TransitionQualifier-PC.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/qualifier/template/PCToken.class" /> + </patternset> + </fileset> + </jar> + </target> + <target name="jar-deprecated-plugin" depends="manifest" description="Build (Link) plugin jar files"> <jar jarfile="${bonusplugins.dir}/BonusToken-DEPRECATED-DAMAGE.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> <fileset dir="${build.classes.dir}"> Modified: sandbox/cdomui/code/src/java/gmgen/plugin/PlayerCharacterOutput.java =================================================================== --- sandbox/cdomui/code/src/java/gmgen/plugin/PlayerCharacterOutput.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/gmgen/plugin/PlayerCharacterOutput.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -16,6 +16,7 @@ import pcgen.core.Domain; import pcgen.core.Equipment; import pcgen.core.Globals; +import pcgen.core.PCCheck; import pcgen.core.PCClass; import pcgen.core.PCStat; import pcgen.core.PlayerCharacter; @@ -292,22 +293,22 @@ public String getSaveFort() { return "+" - + pc.getTotalCheck(SettingsHandler.getGame().getCheckNamed( - "FORT")); + + pc.getTotalCheck(Globals.getContext().ref + .silentlyGetConstructedCDOMObject(PCCheck.class, "FORT")); } public String getSaveRef() { return "+" - + pc.getTotalCheck(SettingsHandler.getGame().getCheckNamed( - "REF")); + + pc.getTotalCheck(Globals.getContext().ref + .silentlyGetConstructedCDOMObject(PCCheck.class, "REF")); } public String getSaveWill() { return "+" - + pc.getTotalCheck(SettingsHandler.getGame().getCheckNamed( - "WILL")); + + pc.getTotalCheck(Globals.getContext().ref + .silentlyGetConstructedCDOMObject(PCCheck.class, "WILL")); } public String getSize() Modified: sandbox/cdomui/code/src/java/gmgen/pluginmgr/JARClassLoader.java =================================================================== --- sandbox/cdomui/code/src/java/gmgen/pluginmgr/JARClassLoader.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/gmgen/pluginmgr/JARClassLoader.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -56,6 +56,8 @@ import pcgen.persistence.lst.prereq.PreParserFactory; import pcgen.persistence.lst.prereq.PrerequisiteParserInterface; import pcgen.rules.persistence.TokenLibrary; +import pcgen.rules.persistence.token.PrimitiveToken; +import pcgen.rules.persistence.token.QualifierToken; import pcgen.util.Logging; import pcgen.util.PCGenCommand; import pcgen.util.PJEP; @@ -461,6 +463,8 @@ loadLstTokens(clazz, modifiers); loadBonusTokens(clazz, name, modifiers); loadPreTokens(clazz, modifiers); + loadPrimitives(clazz, modifiers); + loadQualifiers(clazz, modifiers); loadJepCommands(clazz, modifiers); loadConvertCommands(clazz, modifiers); } @@ -586,4 +590,26 @@ } return load; } + + + private void loadPrimitives(Class<?> clazz, int modifiers) throws Exception + { + if (!Modifier.isInterface(modifiers) && !Modifier.isAbstract(modifiers) + && PrimitiveToken.class.isAssignableFrom(clazz)) + { + PrimitiveToken<?> pl = (PrimitiveToken<?>) clazz.newInstance(); + TokenLibrary.addToPrimitiveMap(pl); + } + } + + private void loadQualifiers(Class<?> clazz, int modifiers) throws Exception + { + if (!Modifier.isInterface(modifiers) && !Modifier.isAbstract(modifiers) + && QualifierToken.class.isAssignableFrom(clazz)) + { + QualifierToken<?> pl = (QualifierToken<?>) clazz.newInstance(); + TokenLibrary.addToQualifierMap(pl); + } + } + } Modified: sandbox/cdomui/code/src/java/pcgen/base/lang/CaseInsensitiveString.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/base/lang/CaseInsensitiveString.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/base/lang/CaseInsensitiveString.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -81,8 +81,8 @@ { if (s instanceof CaseInsensitiveString) { - return string.equalsIgnoreCase(((CaseInsensitiveString) s) - .toString()); + CaseInsensitiveString cis = (CaseInsensitiveString) s; + return string == cis.string || string.equalsIgnoreCase(cis.string); } return false; } Copied: sandbox/cdomui/code/src/java/pcgen/base/util/IdentityList.java (from rev 10050, Trunk/pcgen/code/src/java/pcgen/base/util/IdentityList.java) =================================================================== --- sandbox/cdomui/code/src/java/pcgen/base/util/IdentityList.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/base/util/IdentityList.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -0,0 +1,433 @@ +/* + * Copyright 2009 (C) Tom Parker <th...@us...> + * + * 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 + */ +package pcgen.base.util; + +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.ListIterator; + +/** + * @author Thomas Parker (thpr [at] yahoo.com) + * + * IdentityList is an implementation of the List Interface that uses Identity + * (==) rather than equality (.equals() ) to establish behavior for remove. This + * is useful to maintain an input ordered identity list (not possible with + * IdentityHashMap because it does not maintain input order). + * + * @param <T> + * The type of object stored in this IdentityList + */ +public class IdentityList<T> implements List<T> +{ + /** + * The underlying map providing storage of Identity structures + */ + List<Identity<T>> embeddedList = new LinkedList<Identity<T>>(); + + /** + * Creates a new (empty) IdentityList + */ + public IdentityList() + { + } + + /** + * Createss a new IdentityList which will be initialized with the contents + * of the given List + * + * @param list + * The list of objects used to initialize the contents of this + * IdentityList + */ + public IdentityList(List<T> list) + { + addAll(list); + } + + /** + * Internal class used to convert an object to the Identity wrapper for that + * object. + */ + private <V> Identity<V> getIdentity(V o) + { + return new Identity<V>(o); + } + + /** + * @see java.util.List#add(int, java.lang.Object) + */ + public void add(int arg0, T arg1) + { + embeddedList.add(arg0, getIdentity(arg1)); + } + + /** + * @see java.util.List#add(java.lang.Object) + */ + public boolean add(T arg0) + { + return embeddedList.add(getIdentity(arg0)); + } + + /** + * @see java.util.List#addAll(java.util.Collection) + */ + public boolean addAll(Collection<? extends T> arg0) + { + for (T t : arg0) + { + add(t); + } + return true; + } + + /** + * @see java.util.List#addAll(int, java.util.Collection) + */ + public boolean addAll(int arg0, Collection<? extends T> arg1) + { + for (T t : arg1) + { + add(arg0++, t); + } + return true; + } + + /** + * @see java.util.List#clear() + */ + public void clear() + { + embeddedList.clear(); + } + + /** + * @see java.util.List#contains(java.lang.Object) + */ + public boolean contains(Object arg0) + { + return embeddedList.contains(getIdentity(arg0)); + } + + /** + * @see java.util.List#containsAll(java.util.Collection) + */ + public boolean containsAll(Collection<?> arg0) + { + for (Object o : arg0) + { + if (!embeddedList.contains(getIdentity(o))) + { + return false; + } + } + return true; + } + + /** + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object arg0) + { + return arg0 instanceof IdentityList + && embeddedList.equals(((IdentityList<?>) arg0).embeddedList); + } + + /** + * @see java.util.List#get(int) + */ + public T get(int arg0) + { + Identity<T> und = embeddedList.get(arg0); + return und == null ? null : und.getUnderlying(); + } + + /** + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() + { + return embeddedList.hashCode(); + } + + /** + * @see java.util.List#indexOf(java.lang.Object) + */ + public int indexOf(Object arg0) + { + return embeddedList.indexOf(arg0); + } + + /** + * @see java.util.List#isEmpty() + */ + public boolean isEmpty() + { + return embeddedList.isEmpty(); + } + + /** + * @see java.util.List#iterator() + */ + public Iterator<T> iterator() + { + return new IdentityIterator<T>(embeddedList.listIterator()); + } + + /** + * @see java.util.List#lastIndexOf(java.lang.Object) + */ + public int lastIndexOf(Object arg0) + { + return embeddedList.lastIndexOf(getIdentity(arg0)); + } + + /** + * @see java.util.List#listIterator() + */ + public ListIterator<T> listIterator() + { + return new IdentityIterator<T>(embeddedList.listIterator()); + } + + /** + * @see java.util.List#listIterator(int) + */ + public ListIterator<T> listIterator(int arg0) + { + return new IdentityIterator<T>(embeddedList.listIterator(arg0)); + } + + /** + * @see java.util.List#remove(int) + */ + public T remove(int arg0) + { + Identity<T> und = embeddedList.remove(arg0); + return und == null ? null : und.getUnderlying(); + } + + /** + * @see java.util.List#remove(java.lang.Object) + */ + public boolean remove(Object arg0) + { + return embeddedList.remove(getIdentity(arg0)); + } + + /** + * @see java.util.List#removeAll(java.util.Collection) + */ + public boolean removeAll(Collection<?> arg0) + { + boolean result = true; + for (Object o : arg0) + { + result &= remove(o); + } + return result; + } + + /** + * @see java.util.List#retainAll(java.util.Collection) + */ + public boolean retainAll(Collection<?> arg0) + { + throw new UnsupportedOperationException(); + } + + /** + * @see java.util.List#set(int, java.lang.Object) + */ + public T set(int arg0, T arg1) + { + Identity<T> und = embeddedList.set(arg0, getIdentity(arg1)); + return und == null ? null : und.getUnderlying(); + } + + /** + * @see java.util.List#size() + */ + public int size() + { + return embeddedList.size(); + } + + /** + * @see java.util.List#subList(int, int) + */ + public List<T> subList(int arg0, int arg1) + { + throw new UnsupportedOperationException(); + } + + /** + * @see java.util.List#toArray() + */ + public Object[] toArray() + { + Object[] array = embeddedList.toArray(); + putIntoArray(array, array); + return array; + } + + private <V> void putIntoArray(Object[] source, V[] target) + { + for (int i = 0; i < source.length; i++) + { + Identity<V> identity = (Identity<V>) source[i]; + target[i] = identity == null ? null : identity.getUnderlying(); + } + } + + /** + * @see java.util.List#toArray(T[]) + */ + public <V> V[] toArray(V[] arg0) + { + Object[] array = embeddedList.toArray(); + int size = embeddedList.size(); + // Protect for small array + if (arg0.length < size) + { + arg0 = (V[]) java.lang.reflect.Array.newInstance(arg0.getClass() + .getComponentType(), size); + } + putIntoArray(array, arg0); + return arg0; + } + + private static final class Identity<T> + { + + private final T underlying; + + public Identity(T o) + { + underlying = o; + } + + @Override + public boolean equals(Object obj) + { + return obj instanceof Identity + && ((Identity<?>) obj).underlying == underlying; + } + + @Override + public int hashCode() + { + return underlying.hashCode(); + } + + public T getUnderlying() + { + return underlying; + } + + } + + public class IdentityIterator<I> implements ListIterator<I> + { + private final ListIterator<Identity<I>> iter; + + public IdentityIterator(ListIterator<Identity<I>> iterator) + { + iter = iterator; + } + + /** + * @see java.util.ListIterator#add(java.lang.Object) + */ + public void add(I o) + { + iter.add(getIdentity(o)); + } + + /** + * @see java.util.ListIterator#hasNext() + */ + public boolean hasNext() + { + return iter.hasNext(); + } + + /** + * @see java.util.ListIterator#hasPrevious() + */ + public boolean hasPrevious() + { + return iter.hasPrevious(); + } + + /** + * @see java.util.ListIterator#next() + */ + public I next() + { + Identity<I> und = iter.next(); + return und == null ? null : und.getUnderlying(); + } + + /** + * @see java.util.ListIterator#nextIndex() + */ + public int nextIndex() + { + return iter.nextIndex(); + } + + /** + * @see java.util.ListIterator#previous() + */ + public I previous() + { + Identity<I> und = iter.previous(); + return und == null ? null : und.getUnderlying(); + } + + /** + * @see java.util.ListIterator#previousIndex() + */ + public int previousIndex() + { + return iter.previousIndex(); + } + + /** + * @see java.util.ListIterator#remove() + */ + public void remove() + { + iter.remove(); + } + + /** + * @see java.util.ListIterator#set(java.lang.Object) + */ + public void set(I o) + { + iter.set(getIdentity(o)); + } + + } +} Modified: sandbox/cdomui/code/src/java/pcgen/base/util/KeyMap.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/base/util/KeyMap.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/base/util/KeyMap.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.IdentityHashMap; import java.util.LinkedHashSet; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; @@ -48,6 +49,12 @@ private final Map<V, String> reverseMap; /** + * The underlying map used to store references from the Keys to the Values + * based on input order to the KeyMap. + */ + private final List<V> inputOrder; + + /** * Creates a new, empty DoubleKeyMap using HashMap as the underlying Map * class for both the primary and secondary underlying Map */ @@ -55,6 +62,7 @@ { forwardMap = new TreeMap<String, V>(String.CASE_INSENSITIVE_ORDER); reverseMap = new IdentityHashMap<V, String>(); + inputOrder = new IdentityList<V>(); } /** @@ -64,6 +72,7 @@ { forwardMap.clear(); reverseMap.clear(); + inputOrder.clear(); } /** @@ -161,6 +170,8 @@ public V put(String key, V value) { V old = forwardMap.put(key, value); + inputOrder.remove(old); + inputOrder.add(value); reverseMap.remove(old); reverseMap.put(value, key); return old; @@ -212,6 +223,7 @@ return null; } V value = forwardMap.remove(key); + inputOrder.remove(value); reverseMap.remove(value); return value; } @@ -237,11 +249,16 @@ * * @return A Collection of the values for this KeyMap */ - public Collection<V> values() + public Collection<V> keySortedValues() { return new ListSet<V>(forwardMap.values()); } + public List<V> insertOrderValues() + { + return new IdentityList<V>(inputOrder); + } + /** * Returns a String representation of this KeyMap, primarily for purposes of * debugging. It is strongly advised that no dependency on this method be Modified: sandbox/cdomui/code/src/java/pcgen/base/util/WeightedCollection.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/base/util/WeightedCollection.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/base/util/WeightedCollection.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -627,7 +627,8 @@ public void remove() { - throw new UnsupportedOperationException(); + iter.remove(); + currentEntry = null; } } Modified: sandbox/cdomui/code/src/java/pcgen/cdom/base/CDOMObject.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/base/CDOMObject.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/base/CDOMObject.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -591,7 +591,7 @@ clone.mapChar = new MapKeyMap(); clone.mapChar.putAll(mapChar); clone.cdomListMods = cdomListMods.clone(); - clone.ownBonuses(); + clone.ownBonuses(clone); return clone; } @@ -676,7 +676,7 @@ * Hopefully this is a temporary import - thpr Oct 9, 2008 * @throws CloneNotSupportedException */ - public void ownBonuses() throws CloneNotSupportedException + public void ownBonuses(Object owner) throws CloneNotSupportedException { List<BonusObj> bonusList = getListFor(ListKey.BONUS); if (bonusList != null) @@ -686,7 +686,7 @@ { BonusObj bonus = orig.clone(); addToListFor(ListKey.BONUS, bonus); - bonus.setCreatorObject(this); + bonus.setCreatorObject(owner); } } } Modified: sandbox/cdomui/code/src/java/pcgen/cdom/base/Constants.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/base/Constants.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/base/Constants.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -299,6 +299,7 @@ String COMMA = ","; //$NON-NLS-1$ String LST_DOT_CLEAR = ".CLEAR"; String LST_TYPE_OLD = "TYPE."; + String LST_NOT_TYPE_OLD = "!TYPE."; String LST_TYPE = "TYPE="; int HANDS_SIZEDEPENDENT = -1; String LST_ALL = "ALL"; Modified: sandbox/cdomui/code/src/java/pcgen/cdom/base/TransitionChoice.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/base/TransitionChoice.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/base/TransitionChoice.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -139,8 +139,11 @@ if (obj instanceof TransitionChoice) { TransitionChoice<?> other = (TransitionChoice<?>) obj; - return choiceCount.equals(other.choiceCount) - && choices.equals(other.choices); + if (choiceCount == other.choiceCount + || (choiceCount != null && choiceCount.equals(other.choiceCount))) + { + return choices.equals(other.choices); + } } return false; } @@ -153,7 +156,8 @@ @Override public int hashCode() { - return choiceCount.hashCode() * 29 + choices.hashCode(); + return choices.hashCode() + 29 + * (choiceCount == null ? -1 : choiceCount.hashCode()); } /** Modified: sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/CompoundOrChoiceSet.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/CompoundOrChoiceSet.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/CompoundOrChoiceSet.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -52,6 +52,8 @@ private final Set<PrimitiveChoiceSet<T>> set = new TreeSet<PrimitiveChoiceSet<T>>( ChoiceSetUtilities.WRITEABLE_SORTER); + private final String separator; + /** * Constructs a new CompoundOrChoiceSet which will contain objects contained * by the PrimitiveChoiceSets in the given Collection. @@ -72,11 +74,17 @@ */ public CompoundOrChoiceSet(Collection<PrimitiveChoiceSet<T>> col) { + this(col, Constants.PIPE); + } + + public CompoundOrChoiceSet(Collection<PrimitiveChoiceSet<T>> col, String sep) + { if (col == null) { throw new IllegalArgumentException(); } set.addAll(col); + separator = sep; } /** @@ -119,7 +127,7 @@ */ public String getLSTformat(boolean useAny) { - return ChoiceSetUtilities.joinLstFormat(set, Constants.COMMA, useAny); + return ChoiceSetUtilities.joinLstFormat(set, separator, useAny); } /** Modified: sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/RetainingChooser.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/RetainingChooser.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/RetainingChooser.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -162,9 +162,10 @@ choices.addAll(baseSet.getContainedObjects()); RETAIN: for (Iterator<T> it = choices.iterator(); it.hasNext();) { + T choice = it.next(); for (PrimitiveChoiceFilter<? super T> cf : retainingSet) { - if (cf.allow(pc, it.next())) + if (cf.allow(pc, choice)) { continue RETAIN; } Modified: sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/SimpleChoiceSet.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/SimpleChoiceSet.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/choiceset/SimpleChoiceSet.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -23,7 +23,9 @@ package pcgen.cdom.choiceset; import java.util.Collection; +import java.util.Comparator; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; import java.util.TreeSet; @@ -43,11 +45,15 @@ * @param <T> * The class of object this SimpleChoiceSet contains. */ -public class SimpleChoiceSet<T extends Comparable<T>> implements - PrimitiveChoiceSet<T> +public class SimpleChoiceSet<T> implements PrimitiveChoiceSet<T> { /** + * The Comparator to use for this SimpleChoiceSet. + */ + private final Comparator<? super T> comparator; + + /** * The underlying Set of objects in this SimpleChoiceSet */ private final Set<T> set; @@ -70,6 +76,33 @@ */ public SimpleChoiceSet(Collection<? extends T> col) { + this(col, null); + } + + /** + * Constructs a new SimpleChoiceSet which contains the Set of objects and + * uses the given Comparator to sort the objects. + * + * This constructor is both reference-semantic and value-semantic. Ownership + * of the Collection provided to this constructor is not transferred and + * this constructor will not modify the given Collection. Modification of + * the Collection (after this constructor completes) does not result in + * modifying the SimpleChoiceSet, and the SimpleChoiceSet will not modify + * the given Collection. However, this SimpleChoiceSet will maintain hard + * references to the objects contained within the given Collection and the + * given Comparator. + * + * @param col + * A Collection of objects contained within the SimpleChoiceSet + * @param comp + * A Comparator used to compare the objects in this + * SimpleChoiceSet + * @throws IllegalArgumentException + * if the given Collection is null or empty. + */ + public SimpleChoiceSet(Collection<? extends T> col, + Comparator<? super T> comp) + { super(); if (col == null) { @@ -81,7 +114,8 @@ throw new IllegalArgumentException( "Choice Collection cannot be empty"); } - set = new HashSet<T>(col); + set = new LinkedHashSet<T>(col); + comparator = comp; } /** @@ -96,7 +130,17 @@ */ public String getLSTformat(boolean useAny) { - return StringUtil.join(new TreeSet<T>(set), Constants.COMMA); + Set<T> sortingSet; + try + { + sortingSet = new TreeSet<T>(comparator); + sortingSet.addAll(set); + } + catch (ClassCastException cce) + { + sortingSet = set; + } + return StringUtil.join(sortingSet, Constants.COMMA); } /** Modified: sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/AssociationListKey.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/AssociationListKey.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/AssociationListKey.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -37,8 +37,12 @@ import pcgen.core.Ability; import pcgen.core.ArmorProf; import pcgen.core.Equipment; +import pcgen.core.PCCheck; import pcgen.core.PCClass; +import pcgen.core.PCStat; +import pcgen.core.PCTemplate; import pcgen.core.ShieldProf; +import pcgen.core.SizeAdjustment; import pcgen.core.Skill; import pcgen.core.SpecialAbility; import pcgen.core.SpellProhibitor; @@ -112,6 +116,14 @@ public static final AssociationListKey<SpecialAbility> SPECIAL_ABILITY = new AssociationListKey<SpecialAbility>(); + public static final AssociationListKey<PCTemplate> CHOOSE_TEMPLATE = new AssociationListKey<PCTemplate>(); + + public static final AssociationListKey<PCStat> CHOOSE_PCSTAT = new AssociationListKey<PCStat>(); + + public static final AssociationListKey<PCCheck> CHOOSE_PCCHECK = new AssociationListKey<PCCheck>(); + + public static final AssociationListKey<SizeAdjustment> CHOOSE_SIZEADJUSTMENT = new AssociationListKey<SizeAdjustment>(); + private static CaseInsensitiveMap<AssociationListKey<?>> map = null; private AssociationListKey() Modified: sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ListKey.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ListKey.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ListKey.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -32,6 +32,7 @@ import pcgen.base.util.CaseInsensitiveMap; import pcgen.cdom.base.CDOMReference; import pcgen.cdom.base.ChooseResultActor; +import pcgen.cdom.base.PersistentChoiceActor; import pcgen.cdom.base.PersistentTransitionChoice; import pcgen.cdom.base.TransitionChoice; import pcgen.cdom.content.CampaignURL; @@ -249,7 +250,8 @@ public static final ListKey<Class<?>> DUPES_ALLOWED = new ListKey<Class<?>>(); public static final ListKey<ObjectKey<?>> REMOVED_OBJECTKEY = new ListKey<ObjectKey<?>>(); public static final ListKey<CDOMReference<Ability>> FEAT_TOKEN_LIST = new ListKey<CDOMReference<Ability>>(); - + public static final ListKey<PersistentChoiceActor<?>> NEW_CHOOSE_ACTOR = new ListKey<PersistentChoiceActor<?>>(); + //These are case sensitive, please do not change them to upper case public static final ListKey<String> HIDDEN_Equipment = new ListKey<String>(); public static final ListKey<String> HIDDEN_Ability = new ListKey<String>(); Modified: sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ObjectKey.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ObjectKey.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/enumeration/ObjectKey.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -75,19 +75,19 @@ /** * @author Tom Parker <th...@us...> - * + * * This is a Typesafe enumeration of legal Object Characteristics of an object. * It is designed to act as an index to a specific Objects within a * CDOMObject. - * + * * ObjectKeys are designed to store items in a CDOMObject in a type-safe * fashion. Note that it is possible to use the ObjectKey to cast the object to * the type of object stored by the ObjectKey. (This assists with Generics) - * + * * A "default value" (may be null) must be provided at object construction (the * default is provided when getSafe(ObjectKey) is called in CDOMObject). This * default value is especially useful for Boolean ObjectKeys. - * + * * @param <T> * The class of object stored by this ObjectKey. */ @@ -229,7 +229,7 @@ public static final ObjectKey<LevelCommandFactory> MONSTER_CLASS = new ObjectKey<LevelCommandFactory>(null); public static final ObjectKey<CDOMSingleRef<Equipment>> BASE_ITEM = new ObjectKey<CDOMSingleRef<Equipment>>(null); - + public static final ObjectKey<LevelExchange> EXCHANGE_LEVEL = new ObjectKey<LevelExchange>(null); public static final ObjectKey<CDOMSingleRef<PCClass>> EX_CLASS = new ObjectKey<CDOMSingleRef<PCClass>>(null); @@ -259,7 +259,11 @@ public static final ObjectKey<TransitionChoice<Region>> REGION_CHOICE = new ObjectKey<TransitionChoice<Region>>(null); - public static final ObjectKey<Boolean> USE_MASTER_SKILL = new ObjectKey<Boolean>(Boolean.FALSE); + public static final ObjectKey<Boolean> USE_MASTER_SKILL = new ObjectKey<Boolean>(Boolean.FALSE); + + public static final ObjectKey<Boolean> DONTADD_HITDIE = new ObjectKey<Boolean>(null); + + public static final ObjectKey<Boolean> DONTADD_SKILLPOINTS = new ObjectKey<Boolean>(null); public static final ObjectKey<KitApply> APPLY_MODE = new ObjectKey<KitApply>(KitApply.PERMANENT); @@ -301,6 +305,8 @@ public static final ObjectKey<Boolean> ROLLED = new ObjectKey<Boolean>(Boolean.TRUE); + public static final ObjectKey<PersistentTransitionChoice<?>> CHOOSE_INFO = new ObjectKey<PersistentTransitionChoice<?>>(null); + /* * TODO Okay, this is a hack. */ @@ -331,7 +337,7 @@ } private final T defaultValue; - + private ObjectKey(T def) { defaultValue = def; Modified: sandbox/cdomui/code/src/java/pcgen/cdom/inst/PCClassLevel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/inst/PCClassLevel.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/inst/PCClassLevel.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -22,7 +22,6 @@ import pcgen.cdom.base.CDOMObject; import pcgen.cdom.enumeration.IntegerKey; import pcgen.cdom.enumeration.ListKey; -import pcgen.cdom.enumeration.ObjectKey; import pcgen.core.bonus.BonusObj; /** @@ -91,10 +90,9 @@ * items like CL are properly calculated. */ @Override - public void ownBonuses() throws CloneNotSupportedException + public void ownBonuses(Object owner) throws CloneNotSupportedException { List<BonusObj> bonusList = getListFor(ListKey.BONUS); - Object parent = get(ObjectKey.PARENT); if (bonusList != null) { removeListFor(ListKey.BONUS); @@ -102,7 +100,7 @@ { BonusObj bonus = orig.clone(); addToListFor(ListKey.BONUS, bonus); - bonus.setCreatorObject(parent); + bonus.setCreatorObject(owner); } } } Modified: sandbox/cdomui/code/src/java/pcgen/cdom/reference/AbstractReferenceManufacturer.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/reference/AbstractReferenceManufacturer.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/reference/AbstractReferenceManufacturer.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -1010,19 +1010,34 @@ /** * Returns a Collection of all of the objects contained in this - * AbstractReferenceManufacturer. This will not return null, it will return - * an empty list if no objects have been constructed by or imported into - * this AbstractReferenceManufacturer. + * AbstractReferenceManufacturer, sorted by their Key Name. This will not + * return null, it will return an empty list if no objects have been + * constructed by or imported into this AbstractReferenceManufacturer. * - * @return A Collection of all of the objects contained in this + * @return A sorted Collection of all of the objects contained in this * AbstractReferenceManufacturer */ public Collection<T> getAllObjects() { - return active.values(); + return active.keySortedValues(); } /** + * Returns a List of all of the objects contained in this + * AbstractReferenceManufacturer in the original order in which they were + * imported into this AbstractReferenceManufacturer. This will not return + * null, it will return an empty list if no objects have been constructed by + * or imported into this AbstractReferenceManufacturer. + * + * @return A List of all of the objects contained in this + * AbstractReferenceManufacturer + */ + public List<T> getOrderSortedObjects() + { + return active.insertOrderValues(); + } + + /** * Builds any objects whose construction was deferred. Identifiers for * objects for which construction was deferred were inserted into the * AbstractReferenceManufacturer using constructIfNecessary(String). Objects Modified: sandbox/cdomui/code/src/java/pcgen/cdom/reference/ReferenceManufacturer.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/cdom/reference/ReferenceManufacturer.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/cdom/reference/ReferenceManufacturer.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -18,6 +18,7 @@ package pcgen.cdom.reference; import java.util.Collection; +import java.util.List; import pcgen.cdom.base.PrereqObject; @@ -146,14 +147,26 @@ /** * Returns a Collection of all of the objects contained in this + * ReferenceManufacturer sorted by their KeyName. This will not return null, + * it will return an empty list if no objects have been constructed by or + * imported into this ReferenceManufacturer. + * + * @return A Collection of all of the objects contained in this + * ReferenceManufacturer + */ + public Collection<T> getAllObjects(); + + /** + * Returns a List of all of the objects contained in this + * ReferenceManufacturer sorted by the order they were added to the * ReferenceManufacturer. This will not return null, it will return an empty * list if no objects have been constructed by or imported into this * ReferenceManufacturer. * - * @return A Collection of all of the objects contained in this + * @return A List of all of the objects contained in this * ReferenceManufacturer */ - public Collection<T> getAllObjects(); + public List<T> getOrderSortedObjects(); /** * Changes the identifier for a given object, as stored in this Modified: sandbox/cdomui/code/src/java/pcgen/core/GameMode.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/GameMode.java 2009-09-01 01:48:47 UTC (rev 10370) +++ sandbox/cdomui/code/src/java/pcgen/core/GameMode.java 2009-09-01 02:00:58 UTC (rev 10371) @@ -121,7 +121,7 @@ private String rankModFormula = ""; private String addWithMetamagic = ""; private SortedMap<String, RuleCheck> ruleCheckMap = new TreeMap<String, RuleCheck>(); - private Map<Tab,TabInfo> tInfo = new HashMap<Tab,TabInfo>(); + private Map<Tab,TabInfo> tInfo = new HashMap<Tab,TabInfo>(); private boolean allowAutoResize = false; private boolean bonusStatAllowsStack = false; private boolean showClassDefense; @@ -132,7 +132,6 @@ private int checksMaxLvl = Integer.MAX_VALUE; //20 private int displayOrder = Integer.MAX_VALUE; private List<PCStat> statList = new ArrayList<PCStat>(); - private final List<PCCheck> checkList = new ArrayList<PCCheck>(); private final List<PCAlignment> alignmentList = new ArrayList<PCAlignment>(15); private final List<String> schoolsList = new ArrayList<String>(20); @@ -188,7 +187,7 @@ private int [] dieSizes; private int maxDieSize = 12; private int minDieSize = 4; - + private List<String> resizableTypeList = new ArrayList<String>(); private Map<Class<?>, Set<String>> hiddenTypes = new HashMap<Class<?>, Set<String>>(); @@ -197,6 +196,7 @@ /** The BioSet used for age calculations */ private BioSet bioSet = new BioSet(); + private final PCAlignment noAlignment; /** * Creates a new instance of GameMode. @@ -216,6 +216,8 @@ ti.tabName = aTab.label(); tInfo.put(aTab, ti); } + noAlignment = new PCAlignment(); + noAlignment.setName(""); } /** @@ -570,9 +572,9 @@ /** * map of LevelInfo objects. - * + * * @param xpTable the xp table to be used - * + * * @return level info map */ public Map<String, LevelInfo> getLevelInfo(final String xpTable) @@ -669,7 +671,7 @@ } /** - * Set the game mode name (aka key). Should not + * Set the game mode name (aka key). Should not * be used after game mode is loaded. * @param name the name to set */ @@ -1086,7 +1088,7 @@ { return this.weaponReachFormula; } - + /** * Return true if the AC Type is Valid * @param ACType @@ -1233,7 +1235,7 @@ { defaultDataSetList.clear(); } - + /** * Add Diety List * @param argDeityLine @@ -1353,7 +1355,7 @@ { this.weaponReachFormula = aString; } - + /** * Return true if RuleCheck exists given a key * @param aKey @@ -1480,7 +1482,7 @@ /** * Gets the list of default data sets. - * + * * @return the default data set list */ public List<String> getDefaultDataSetList() @@ -1607,53 +1609,6 @@ statList.clear(); } - //CHECKLIST - - /** - * Add a check to the list of checks. - * - * @param obj to add to the check list - */ - public void addToCheckList(final PCCheck obj) - { - checkList.add(obj); - } - - /** - * Empty the check list. - */ - public void clearCheckList() - { - checkList.clear(); - } - - - /** - * Return the requested object. - * @param aName - * @return PObject - */ - public PCCheck getCheckNamed(final String aName) - { - for (PCCheck check : checkList) - { - if (check.toString().equalsIgnoreCase(aName)) - { - return check; - } - } - return null; - } - - /** - * Return an <b>unmodifiable</b> version of the check list. - * @return an <b>unmodifiable</b> version of the check list. - */ - public List<PCCheck> getUnmodifiableCheckList() - { - return Collections.unmodifiableList(checkList); - } - //ALIGNMENTLIST /** @@ -1720,11 +1675,11 @@ } /** - * Returns a <tt>PCAlignment</tt> object for the alignment key or name + * Returns a <tt>PCAlignment</tt> object for the alignment key or name * passed in. - * + * * @param aKey A short alignment (LG) or long alignment (Lawful Good) - * + * * @return A <tt>PCAlignment</tt> object or null if no match is found. */ public PCAlignment getAlignment( final String aKey ) @@ -1738,9 +1693,9 @@ return align; } } - return null; + return noAlignment; } - + /** * Return an <b>unmodifiable</b> version of the alignmentlist. * @return an <b>unmodifiable</b> version of the alignmentlist. @@ -2760,9 +2715,19 @@ } return true; } - + /** */ + public void setSkillTabColumnVisible(final int columnIndex, final boolean bVisible) + { + if ((columnIndex >= 0) && (columnIndex < skillTabColumnVisible.length)) + { + skillTabColumnVisible[columnIndex] = bVisible; + } + } + + /** + */ public boolean getSkillTabColumnVisible(final int columnIndex) { if ((columnIndex >= 0) && (columnIndex < skillTabColumnVisible.length)) @@ -2867,7 +2832,7 @@ /** * Adds an <tt>AbilityCategory</tt> definition to the game mode. - * + * * @param aCategory The <tt>AbilityCategory</tt> to add. */ public void addAbilityCategory(final AbilityCategory aCategory) @@ -2877,7 +2842,7 @@ /** * Adds an <tt>AbilityCategory</tt> definition to the game mode. - * + * * @param aCategory The <tt>AbilityCategory</tt> to add. */ public void addLstAbilityCategory(final AbilityCategory aCategory) @@ -2886,21 +2851,21 @@ } /** - * Clears all LST sourced <tt>AbilityCategory</tt> definitions from the + * Clears all LST sourced <tt>AbilityCategory</tt> definitions from the * game mode. Used when unloading the data. - * + * * @param aCategory The <tt>AbilityCategory</tt> to add. */ public void clearLstAbilityCategories() { theLstAbilityCategories.clear(); } - + /** * Gets the <tt>AbilityCategory</tt> for the given key. - * + * * @param aKey The key of the <tt>AbilityCategory</tt> to retreive. - * + * * @return The requested <tt>AbilityCategory</tt> or <tt>null</tt> if the * category is not found in this game mode. */ @@ -2918,7 +2883,7 @@ } return ac; } - + public AbilityCategory silentlyGetAbilityCategory(final String aKey) { for ( final AbilityCategory cat : getAllAbilityCategories() ) @@ -2930,11 +2895,11 @@ } return null; } - + /** * Returns a <tt>Collection</tt> of <tt>AbilityCategory</tt> objects defined * by this game mode. - * + * * @return A <tt>Collection</tt> of <tt>AbilityCategory</tt> objects. */ public Collection<AbilityCategory> getAllAbilityCategories() @@ -2948,11 +2913,11 @@ allCats.addAll(theLstAbilityCategories); return Collections.unmodifiableCollection(allCats); } - + /** - * Returns a <tt>Collection</tt> of <tt>AbilityCategory</tt> objects + * Returns a <tt>Collection</tt> of <tt>AbilityCategory</tt> objects * defined by this game mode that match the display location. - * + * * @param displayLoc The display location to filter for. * @return A <tt>Collection</tt> of <tt>AbilityCategory</tt> objects. */ @@ -2973,11 +2938,11 @@ return Collections.unmodifiableCollection(catList); } - + /** - * Returns a <tt>Collection</tt> of <tt>AbilityCategory</tt> objects + * Returns a <tt>Collection</tt> of <tt>AbilityCategory</tt> objects * defined by this game mode that match the category key. - * + * * @param key The category key to filter for. * @return A <tt>Collection</tt> of <tt>AbilityCategory</tt> objects. */ @@ -3003,25 +2968,25 @@ { thePreviewDir = aDir; } - + public String getPreviewDir() { return thePreviewDir; } - + public void setDefaultPreviewSheet(final String aSheet) { theDefaultPreviewSheet = aSheet; } - + public String getDefaultPreviewSheet() { return theDefaultPreviewSheet; } /** - * Parses the DIESIZE tag's values to create + * Parses the DIESIZE tag's values to create * the dieSizes array - * + * * @param value */ public void setDieSizes(final String value) @@ -3032,10 +2997,10 @@ { String aString = aTok.nextToken(); // in case there is training\leading whitespace after the comma split - aString = aString.trim(); + aString = aString.trim(); String minValue; String maxValue; - + try { if (aString.contains("MIN=")) @@ -3054,7 +3019,7 @@ setMaxDieSize(die); list.add(die); } - else + else { int die = Integer.parseInt(aString); list.add(die); @@ -3064,15 +3029,15 @@ { Logging.errorPrint("Invalid integer value for DIESIZES: " + aString + ". Original value: DIESIZES:"+ value); } - + } if (list.size() == 0) { return; } - + int[] dieSizes = new int[list.size()]; - + for (int i = 0; i < list.size(); i++) { dieSizes[i] = list.get(i); @@ -3080,7 +3045,7 @@ list = null; this.setDieSizes(dieSizes); } - + /** * Get's current gamemodes MaxDieSize * @return maxDieSize @@ -3088,16 +3053,16 @@ public int getMaxDieSize() { return maxDieSize; - } + } /** * Sets's current gamemodes MaxDieSize - * @param dice - */ + * @param dice + */ public void setMaxDieSize(final int dice) { maxDieSize = dice; } - + /** * Get's current gamemodes MinDieSize * @return minDieSize @@ -3108,14 +3073,14 @@ } /** * Sets's current gamemodes MinDieSize - * @param dice + * @param dice */ public void setMinDieSize(final int dice) { minDieSize = dice; } - + /** * Get's current gamemodes DieSizes * @return dieSizes array @@ -3134,7 +3099,7 @@ } /** - * Retrieve the list of equipment types which flag it as able to + * Retrieve the list of equipment types which flag it as able to * be resized by the automatic resize feature. * @return the resizableTypeList */ @@ -3144,16 +3109,16 @@ } /** - * Set the list of equipment types which flag it as able to + * Set the list of equipment types which flag it as able to * be resized by the automatic resize feature. - * + * * @param resizableTypeList the resizableTypeList to set */ public void setResizableTypeList(List<String> resizableTypeList) { this.resizableTypeList = resizableTypeList; } - + private ConsolidatedListCommitStrategy masterLCS = new ConsolidatedListCommitStrategy(); private LoadContext context = new RuntimeLoadContext(getRefContext(), masterLCS); private GameReferenceContext gameRefContext = new GameReferenceContext(); @@ -3247,7 +3212,7 @@ /** * Gets the name of the currently selected experience table - * + * * @return the XP table name */ public String getXpTableName() @@ -3265,7 +3230,7 @@ /** * Sets the name of the currently selected experience table - * + * * @param tableName the new XP table name */ public void setXpTableName(String tableName) @@ -3275,7 +3240,7 @@ /** * Gets the array of names of defined experience tables. - * + * * @return the xp table names */ public List<String> getAvailXpTableNames() @@ -3285,7 +3250,7 @@ /** * Sets the array of names of defined experience tables. - * + * * @param names the new avail XP table names */ public void setAvailXpTableNames(List<String> names) @@ -3300,7 +3265,7 @@ /** * Checks if bonus stat stacking is allowed - * + * * @return true, if is bonus stat stacking allowed */ public boolean isBonusStatAllowsStack() @@ -3310,7 +3275,7 @@ /** * Sets the bonus stat stacking allowed value. - * + * * @param bonusStatAllowsStack the new bonus stat allows stack */ public void setBonusStatAllowsStack(boolean bonusStatAllowsStack) @@ -3342,7 +3307,7 @@ /** * Sets the title of the default source (used on the quick sources dialog). - * + * * @param title the new title */ public void setDefaultSourceTitle(String title) @@ -3352,7 +3317,7 @@ /** * Gets the default source title. - * + * * @return the default source title */ public String getDefau... [truncated message content] |