From: <cpm...@us...> - 2009-04-11 23:29:04
|
Revision: 9833 http://pcgen.svn.sourceforge.net/pcgen/?rev=9833&view=rev Author: cpmeister Date: 2009-04-11 23:28:53 +0000 (Sat, 11 Apr 2009) Log Message: ----------- UI Update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java sandbox/cdomui/code/src/java/pcgen/core/EquipmentEditor.java sandbox/cdomui/code/src/java/pcgen/core/EquipmentOutput.java sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCatagoryFacade.java Added: sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -0,0 +1,104 @@ +/* + * CharacterEditor.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Mar 1, 2009, 6:15:37 PM + */ +package pcgen.core; + +import pcgen.cdom.enumeration.Gender; +import pcgen.core.facade.AbilityCategoryFacade; +import pcgen.core.facade.AbilityFacade; +import pcgen.core.facade.AlignmentFacade; +import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.CharacterLevelFacade; +import pcgen.core.facade.ClassFacade; +import pcgen.core.facade.SkillFacade; +import pcgen.core.facade.StatFacade; +import pcgen.core.facade.TempBonusFacade; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class CharacterEditor +{ + + public static void setAlignment(CharacterFacade character, + AlignmentFacade alignment) + { + } + + public static void setGender(CharacterFacade character, Gender gender) + { + } + + public static void setScore(CharacterFacade character, StatFacade stat, + int score) + { + } + + public static void addAbility(CharacterFacade character, AbilityFacade ability) + { + } + + public static void removeAbility(CharacterFacade character, AbilityFacade ability) + { + } + + public static void addLevels(CharacterFacade character, ClassFacade[] classes) + { + } + + public static void removeLevels(CharacterFacade character, int levels) + { + } + + public static void setRemainingSelection(CharacterFacade character, + AbilityCategoryFacade catagory, + int remaining) + { + } + + public static void applyTempBonus(CharacterFacade character, TempBonusFacade bonus, + boolean apply) + { + } + + /** + * + * This method handles adding and removing skill points to the character's + * skills. This methods takes into acount the skill cost and spendable skill + * points and will call appropriate message dialogs when an inappropriate + * action is called. + * @param skill the skill to invest points in + * @param points the amount of points to invest + * @return true if the points were successfuly invested + */ + public static boolean investSkillPoints(CharacterFacade character, + CharacterLevelFacade level, SkillFacade skill, + int points) + { + return false; + } + + public static void setGainedSkillPoints(CharacterFacade character, + CharacterLevelFacade level, int points) + { + } + +} Added: sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -0,0 +1,164 @@ +/* + * CharacterOutput.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Mar 1, 2009, 7:01:25 PM + */ +package pcgen.core; + +import javax.swing.undo.UndoManager; +import pcgen.cdom.enumeration.Gender; +import pcgen.cdom.enumeration.SkillCost; +import pcgen.core.facade.AbilityFacade; +import pcgen.core.facade.AbilityCategoryFacade; +import pcgen.core.facade.AlignmentFacade; +import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.EquipmentFacade; +import pcgen.core.facade.ClassFacade; +import pcgen.core.facade.CharacterLevelFacade; +import pcgen.core.facade.StatFacade; +import pcgen.core.facade.SkillFacade; +import pcgen.core.facade.TempBonusFacade; +import pcgen.gui2.util.GenericComboBoxModel; +import pcgen.gui2.util.GenericListModel; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class CharacterOutput +{ + + public static UndoManager getUndoManager(CharacterFacade character) + { + return null; + } + + public static AlignmentFacade getAlignment(CharacterFacade character) + { + return null; + } + + public static Gender getGender(CharacterFacade character) + { + return null; + } + + public static int getScore(CharacterFacade character, StatFacade stat) + { + return 0; + } + + public static int getMod(CharacterFacade character, StatFacade stat) + { + return 0; + } + + public static ClassFacade getSelectedClass(CharacterFacade character, + CharacterLevelFacade level) + { + return null; + } + + public static SkillCost getSkillCost(CharacterFacade character, + CharacterLevelFacade level, + SkillFacade skill) + { + return null; + } + + public static float getMaxRanks(CharacterFacade character, CharacterLevelFacade level, + SkillCost cost) + { + return 0; + } + + public static int getRankCost(CharacterFacade character, CharacterLevelFacade level, + SkillCost cost) + { + return 0; + } + + public static int getGainedSkillPoints(CharacterFacade character, + CharacterLevelFacade level) + { + return 0; + } + + public static int getSpentSkillPoints(CharacterFacade character, + CharacterLevelFacade level) + { + return 0; + } + + /** + * Note: This method should never return null. If the character does not possess + * any abilities in the parameter catagory, this method should create a new + * DefaultGenericListModel for that catagory and keep a reference to it for future use. + * @param catagory + * @return a List of Abilities the character posseses in the specified catagory + */ + public static GenericListModel<AbilityFacade> getAbilities( + CharacterFacade character, AbilityCategory catagory) + { + return null; + } + + public static GenericComboBoxModel<EquipmentFacade> getEquipmentSets( + CharacterFacade character) + { + return null; + } + + public static GenericListModel<TempBonusFacade> getTempBonuses( + CharacterFacade character) + { + return null; + } + + public static GenericListModel<CharacterLevelFacade> getLevels(CharacterFacade character) + { + return null; + } + + public static int getClassLevel(CharacterFacade character, ClassFacade cl) + { + return 0; + } + + public static int getRemainingSelections(CharacterFacade character, + AbilityCategoryFacade catagory) + { + return 0; + } + + public static int getSkillTotal(CharacterFacade character, SkillFacade skill) + { + return 0; + } + + public static int getSkillModifier(CharacterFacade character, SkillFacade skill) + { + return 0; + } + + public static float getSkillRanks(CharacterFacade character, SkillFacade skill) + { + return 0; + } + +} Added: sandbox/cdomui/code/src/java/pcgen/core/EquipmentEditor.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/EquipmentEditor.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/EquipmentEditor.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -0,0 +1,30 @@ +/* + * EquipmentEditor.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Mar 2, 2009, 6:10:12 PM + */ + +package pcgen.core; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class EquipmentEditor { + +} Added: sandbox/cdomui/code/src/java/pcgen/core/EquipmentOutput.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/EquipmentOutput.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/EquipmentOutput.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -0,0 +1,30 @@ +/* + * EquipmentOutput.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Mar 2, 2009, 6:10:56 PM + */ + +package pcgen.core; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class EquipmentOutput { + +} Deleted: sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCatagoryFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCatagoryFacade.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCatagoryFacade.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -1,51 +0,0 @@ -/* - * AbilityCatagoryFacade.java - * Copyright 2008 Connor Petty <cpm...@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 - * - * Created on Jun 30, 2008, 5:01:57 PM - */ -package pcgen.core.facade; - -import java.util.List; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public interface AbilityCatagoryFacade -{ - - /** - * - * @return "Feats", "Class Abilities", or "Salient Divine Ability" - */ - public String getType(); - - /** - * - * @return the singular name of the Catagory - */ - public String getName(); - - /** - * - * @return the plural name of the Catagory - */ - @Override - public String toString(); - -} Copied: sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java (from rev 9831, sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCatagoryFacade.java) =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -0,0 +1,51 @@ +/* + * AbilityCategoryFacade.java + * Copyright 2008 Connor Petty <cpm...@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 + * + * Created on Jun 30, 2008, 5:01:57 PM + */ +package pcgen.core.facade; + +import java.util.List; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public interface AbilityCategoryFacade +{ + + /** + * + * @return "Feats", "Class Abilities", or "Salient Divine Ability" + */ + public String getType(); + + /** + * + * @return the singular name of the Catagory + */ + public String getName(); + + /** + * + * @return the plural name of the Catagory + */ + @Override + public String toString(); + +} Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -48,13 +48,13 @@ public void setScore(StatFacade stat, int score); - public void addAbility(AbilityCatagoryFacade catagory, + public void addAbility(AbilityCategoryFacade catagory, AbilityFacade ability); - public void removeAbility(AbilityCatagoryFacade catagory, + public void removeAbility(AbilityCategoryFacade catagory, AbilityFacade ability); - public boolean hasAbility(AbilityCatagoryFacade catagory, + public boolean hasAbility(AbilityCategoryFacade catagory, AbilityFacade ability); /** @@ -65,7 +65,7 @@ * @return a List of Abilities the character posseses in the specified catagory */ public GenericListModel<AbilityFacade> getAbilities( - AbilityCatagoryFacade catagory); + AbilityCategoryFacade catagory); public GenericListModel<CharacterLevelFacade> getLevels(); @@ -75,9 +75,9 @@ public int getClassLevel(ClassFacade c); - public int getRemainingSelections(AbilityCatagoryFacade catagory); + public int getRemainingSelections(AbilityCategoryFacade catagory); - public void setRemainingSelection(AbilityCatagoryFacade catagory, + public void setRemainingSelection(AbilityCategoryFacade catagory, int remaining); public int getSkillTotal(SkillFacade skill); Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -31,14 +31,14 @@ public interface DataSetFacade { - public GenericListModel<AbilityFacade> getAbilities(AbilityCatagoryFacade catagory); + public GenericListModel<AbilityFacade> getAbilities(AbilityCategoryFacade catagory); - public AbilityFacade getAbility(AbilityCatagoryFacade catagory, + public AbilityFacade getAbility(AbilityCategoryFacade catagory, String ability); - public GenericListModel<AbilityCatagoryFacade> getAbilityCatagories(); + public GenericListModel<AbilityCategoryFacade> getAbilityCatagories(); - public AbilityCatagoryFacade getAbilityCatagory(String catagory); + public AbilityCategoryFacade getAbilityCatagory(String catagory); public GenericListModel<SkillFacade> getSkills(); Added: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -0,0 +1,30 @@ +/* + * EquipmentFacade.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Apr 4, 2009, 6:07:39 PM + */ + +package pcgen.core.facade; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public interface EquipmentFacade { + +} Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -69,7 +69,7 @@ import pcgen.base.util.WeightedCollection; import pcgen.cdom.enumeration.Gender; import pcgen.core.SettingsHandler; -import pcgen.core.facade.AbilityCatagoryFacade; +import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.AbilityFacade; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.ClassFacade; @@ -491,20 +491,20 @@ manager.setModel(model); } - private class AbilityCatagoryManager extends AbstractGenericListDataWrapper<AbilityCatagoryFacade> + private class AbilityCatagoryManager extends AbstractGenericListDataWrapper<AbilityCategoryFacade> { - private final Map<AbilityCatagoryFacade, AnyInfoFacadeGenerator<AbilityFacade>> catagoryMap; + private final Map<AbilityCategoryFacade, AnyInfoFacadeGenerator<AbilityFacade>> catagoryMap; public AbilityCatagoryManager() { - this.catagoryMap = new HashMap<AbilityCatagoryFacade, AnyInfoFacadeGenerator<AbilityFacade>>(); + this.catagoryMap = new HashMap<AbilityCategoryFacade, AnyInfoFacadeGenerator<AbilityFacade>>(); } @Override - protected void addData(Collection<? extends AbilityCatagoryFacade> data) + protected void addData(Collection<? extends AbilityCategoryFacade> data) { - for (AbilityCatagoryFacade abilityCatagoryFacade : data) + for (AbilityCategoryFacade abilityCatagoryFacade : data) { AnyInfoFacadeGenerator<AbilityFacade> generator = new AnyInfoFacadeGenerator<AbilityFacade>(dataset.getAbilities(abilityCatagoryFacade)); generatorMap.put(GeneratorType.ABILITY, @@ -515,9 +515,9 @@ } @Override - protected void removeData(Collection<? extends AbilityCatagoryFacade> data) + protected void removeData(Collection<? extends AbilityCategoryFacade> data) { - for (AbilityCatagoryFacade abilityCatagoryFacade : data) + for (AbilityCategoryFacade abilityCatagoryFacade : data) { generatorMap.remove(GeneratorType.ABILITY, abilityCatagoryFacade.getName(), @@ -2140,26 +2140,26 @@ { private String name; - protected Map<AbilityCatagoryFacade, AbstractInfoFacadeGenerator<AbilityFacade>> generatorMap; + protected Map<AbilityCategoryFacade, AbstractInfoFacadeGenerator<AbilityFacade>> generatorMap; public DefaultAbilityBuild(GeneratorManager manager, GeneratorElement element) throws MissingDataException { this.name = element.getAttributeValue("name"); - this.generatorMap = new HashMap<AbilityCatagoryFacade, AbstractInfoFacadeGenerator<AbilityFacade>>(); + this.generatorMap = new HashMap<AbilityCategoryFacade, AbstractInfoFacadeGenerator<AbilityFacade>>(); @SuppressWarnings("unchecked") List<GeneratorElement> children = element.getChildren("GENERATOR"); for ( GeneratorElement element1 : children) { DefaultMutableAbilityGenerator generator = new DefaultMutableAbilityGenerator(manager, element1); - AbilityCatagoryFacade catagory = manager.dataset.getAbilityCatagory(generator.toString()); + AbilityCategoryFacade catagory = manager.dataset.getAbilityCatagory(generator.toString()); generatorMap.put(catagory, generator); } } - public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCatagoryFacade catagory) + public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCategoryFacade catagory) { return generatorMap.get(catagory); } @@ -2218,7 +2218,7 @@ element.fireChangeEvent(); } - public void setGenerator(AbilityCatagoryFacade catagory, + public void setGenerator(AbilityCategoryFacade catagory, InfoFacadeGenerator<AbilityFacade> generator) { generatorMap.put(catagory, Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -21,7 +21,7 @@ package pcgen.gui2.generator.ability; import pcgen.gui2.generator.*; -import pcgen.core.facade.AbilityCatagoryFacade; +import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.AbilityFacade; /** @@ -31,6 +31,6 @@ public interface AbilityBuild { - public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCatagoryFacade catagory); + public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCategoryFacade catagory); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -22,7 +22,7 @@ import pcgen.gui2.generator.*; import pcgen.gui2.generator.ability.AbilityBuild; -import pcgen.core.facade.AbilityCatagoryFacade; +import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.AbilityFacade; /** @@ -32,7 +32,7 @@ public interface MutableAbilityBuild extends AbilityBuild, Mutable { - public void setGenerator(AbilityCatagoryFacade catagory, + public void setGenerator(AbilityCategoryFacade catagory, InfoFacadeGenerator<AbilityFacade> generator); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -31,7 +31,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import pcgen.gui2.PCGenUIManager; -import pcgen.core.facade.AbilityCatagoryFacade; +import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.CharacterFacade; import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericListModel; @@ -80,20 +80,20 @@ HashMap<String, Hashtable<Object, Object>> tabs = new HashMap<String, Hashtable<Object, Object>>(); List<String> titles = new ArrayList<String>(); @SuppressWarnings("unchecked") - final ListMap<String, AbilityCatagoryFacade, DefaultGenericListModel<AbilityCatagoryFacade>> catagoryListMap = + final ListMap<String, AbilityCategoryFacade, DefaultGenericListModel<AbilityCategoryFacade>> catagoryListMap = CollectionMaps.createListMap(HashMap.class, DefaultGenericListModel.class); - AbstractGenericListDataWrapper<AbilityCatagoryFacade> listener = new AbstractGenericListDataWrapper<AbilityCatagoryFacade>() + AbstractGenericListDataWrapper<AbilityCategoryFacade> listener = new AbstractGenericListDataWrapper<AbilityCategoryFacade>() { @Override - protected void addData(Collection<? extends AbilityCatagoryFacade> data) + protected void addData(Collection<? extends AbilityCategoryFacade> data) { @SuppressWarnings("unchecked") - ListMap<String, AbilityCatagoryFacade, ArrayList<AbilityCatagoryFacade>> catagorySubListMap = + ListMap<String, AbilityCategoryFacade, ArrayList<AbilityCategoryFacade>> catagorySubListMap = CollectionMaps.createListMap(HashMap.class, ArrayList.class); - for ( AbilityCatagoryFacade catagory : data) + for ( AbilityCategoryFacade catagory : data) { catagorySubListMap.add(catagory.getType(), catagory); } @@ -107,13 +107,13 @@ } @Override - protected void removeData(Collection<? extends AbilityCatagoryFacade> data) + protected void removeData(Collection<? extends AbilityCategoryFacade> data) { @SuppressWarnings("unchecked") - ListMap<String, AbilityCatagoryFacade, ArrayList<AbilityCatagoryFacade>> catagorySubListMap = + ListMap<String, AbilityCategoryFacade, ArrayList<AbilityCategoryFacade>> catagorySubListMap = CollectionMaps.createListMap(HashMap.class, ArrayList.class); - for ( AbilityCatagoryFacade catagory : data) + for ( AbilityCategoryFacade catagory : data) { catagorySubListMap.add(catagory.getType(), catagory); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2009-04-05 18:48:38 UTC (rev 9832) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2009-04-11 23:28:53 UTC (rev 9833) @@ -46,7 +46,7 @@ import javax.swing.event.ListSelectionListener; import javax.swing.table.AbstractTableModel; import javax.swing.undo.StateEditable; -import pcgen.core.facade.AbilityCatagoryFacade; +import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.AbilityFacade; import pcgen.core.facade.CharacterFacade; import pcgen.gui2.tools.ChooserPane; @@ -113,7 +113,7 @@ private AvailableAbilityTreeViewModel availableModel; private SelectedAbilityTreeViewModel selectedModel; private CatagoryTableModel catagoryModel; - private AbilityCatagoryFacade selectedCatagory; + private AbilityCategoryFacade selectedCatagory; private AbilityFacade selectedAbility; public AbilityChooserTab() @@ -142,15 +142,15 @@ if (!data.isEmpty()) { Object obj = data.get(0); - AbilityCatagoryFacade catagory = selectedCatagory; + AbilityCategoryFacade catagory = selectedCatagory; if (obj instanceof AbilityFacade) { ability = (AbilityFacade) obj; catagory = selectedModel.getCatagoryForAbility(ability); } - else if (obj instanceof AbilityCatagoryFacade) + else if (obj instanceof AbilityCategoryFacade) { - catagory = (AbilityCatagoryFacade) obj; + catagory = (AbilityCategoryFacade) obj; } setSelectedCatagory(catagory); } @@ -220,7 +220,7 @@ setInfoPaneText(ability.getInfo()); } - private void setSelectedCatagory(AbilityCatagoryFacade catagory) + private void setSelectedCatagory(AbilityCategoryFacade catagory) { this.selectedCatagory = catagory; @@ -228,31 +228,31 @@ setInfoPaneTitle(catagory.getName() + " Info"); } - private static final class SelectedAbilityTreeViewModel extends AbstractGenericListDataWrapper<AbilityCatagoryFacade> + private static final class SelectedAbilityTreeViewModel extends AbstractGenericListDataWrapper<AbilityCategoryFacade> implements FilterableTreeViewModel<AbilityFacade> { private final List<? extends TreeView<AbilityFacade>> treeViews = null; - private final Map<AbilityFacade, AbilityCatagoryFacade> catagoryMap; + private final Map<AbilityFacade, AbilityCategoryFacade> catagoryMap; private final Map<GenericListModel<AbilityFacade>, GenericListDataListener> listenerMap; private final DefaultGenericListModel<AbilityFacade> model; private final CharacterFacade character; public SelectedAbilityTreeViewModel(CharacterFacade character, - DefaultGenericListModel<AbilityCatagoryFacade> catagories) + DefaultGenericListModel<AbilityCategoryFacade> catagories) { super(catagories); - this.catagoryMap = new HashMap<AbilityFacade, AbilityCatagoryFacade>(); + this.catagoryMap = new HashMap<AbilityFacade, AbilityCategoryFacade>(); this.listenerMap = new HashMap<GenericListModel<AbilityFacade>, GenericListDataListener>(); this.model = new DefaultGenericListModel<AbilityFacade>(); this.character = character; setModel(catagories); } - protected void addData(Collection<? extends AbilityCatagoryFacade> catagories) + protected void addData(Collection<? extends AbilityCategoryFacade> catagories) { - AbilityCatagoryFacade[] catagoryArray = catagories.toArray(new AbilityCatagoryFacade[0]); - for (final AbilityCatagoryFacade catagory : catagoryArray) + AbilityCategoryFacade[] catagoryArray = catagories.toArray(new AbilityCategoryFacade[0]); + for (final AbilityCategoryFacade catagory : catagoryArray) { GenericListModel<AbilityFacade> abilityList = character.getAbilities(catagory); GenericListDataListener<AbilityFacade> listener = new AbilityModelListener(abilityList) @@ -273,9 +273,9 @@ } } - protected void removeData(Collection<? extends AbilityCatagoryFacade> catagories) + protected void removeData(Collection<? extends AbilityCategoryFacade> catagories) { - for (AbilityCatagoryFacade catagory : catagories) + for (AbilityCategoryFacade catagory : catagories) { GenericListModel<AbilityFacade> abilityList = character.getAbilities(catagory); abilityList.removeGenericListDataListener(listenerMap.get(abilityList)); @@ -287,7 +287,7 @@ } } - public AbilityCatagoryFacade getCatagoryForAbility(AbilityFacade ability) + public AbilityCategoryFacade getCatagoryForAbility(AbilityFacade ability) { return catagoryMap.get(ability); } @@ -342,7 +342,7 @@ private final DefaultGenericListModel<AbilityFacade> dataModel; private final CharacterFacade character; - private AbilityCatagoryFacade catagory; + private AbilityCategoryFacade catagory; public AvailableAbilityTreeViewModel(CharacterFacade character) { @@ -370,7 +370,7 @@ return dataModel; } - public void setAbilityCatagory(AbilityCatagoryFacade catagory) + public void setAbilityCatagory(AbilityCategoryFacade catagory) { this.catagory = catagory; GenericListModel<AbilityFacade> abilities = character.getDataSet().getAbilities(catagory); @@ -411,17 +411,17 @@ { private CharacterFacade character; - private DefaultGenericListModel<AbilityCatagoryFacade> catagories; + private DefaultGenericListModel<AbilityCategoryFacade> catagories; public CatagoryTableModel(CharacterFacade character, - DefaultGenericListModel<AbilityCatagoryFacade> catagories) + DefaultGenericListModel<AbilityCategoryFacade> catagories) { this.character = character; this.catagories = catagories; catagories.addListDataListener(this); } - public AbilityCatagoryFacade getCatagory(int index) + public AbilityCategoryFacade getCatagory(int index) { return catagories.getElementAt(index); } @@ -448,7 +448,7 @@ public Object getValueAt(int rowIndex, int columnIndex) { - AbilityCatagoryFacade catagory = catagories.getElementAt(rowIndex); + AbilityCategoryFacade catagory = catagories.getElementAt(rowIndex); switch (columnIndex) { case 0: @@ -619,7 +619,7 @@ private static final String AVAILABLE_TREEVIEW_PANEL_STATE = "AvailableTreeViewPanelState"; public Hashtable<Object, Object> createState(CharacterFacade character, - DefaultGenericListModel<AbilityCatagoryFacade> catagories) + DefaultGenericListModel<AbilityCategoryFacade> catagories) { Hashtable<Object, Object> state = new Hashtable<Object, Object>(); state.put(CatagoryTableModel.class, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2009-05-01 00:48:29
|
Revision: 9883 http://pcgen.svn.sourceforge.net/pcgen/?rev=9883&view=rev Author: thpr Date: 2009-05-01 00:48:24 +0000 (Fri, 01 May 2009) Log Message: ----------- remove @Override in interfaces to allow build in Eclipse Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/AlignmentFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/GameModeFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/StatFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/filter/DisplayableFilter.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/Generator.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGenerationMethod.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/AbilityCategoryFacade.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -20,7 +20,6 @@ */ package pcgen.core.facade; -import java.util.List; /** * @@ -45,7 +44,6 @@ * * @return the plural name of the Catagory */ - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/AlignmentFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/AlignmentFacade.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/AlignmentFacade.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -31,7 +31,6 @@ public String getAbbreviation(); - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -27,7 +27,6 @@ public interface EquipmentSetFacade { - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/GameModeFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/GameModeFacade.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/GameModeFacade.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -40,7 +40,6 @@ public File getGeneratorFile(); - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFacade.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFacade.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -31,7 +31,6 @@ public String getSource(); - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/StatFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/StatFacade.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/StatFacade.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -31,7 +31,6 @@ public String getAbbreviation(); - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/filter/DisplayableFilter.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/filter/DisplayableFilter.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/gui2/filter/DisplayableFilter.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -31,7 +31,6 @@ public String getCode(); - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/Generator.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/Generator.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/Generator.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -45,7 +45,6 @@ * This returns the name of this generator that will be displayed. * @return the string representation for this Generator */ - @Override public String toString(); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGenerationMethod.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGenerationMethod.java 2009-04-26 22:19:18 UTC (rev 9882) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGenerationMethod.java 2009-05-01 00:48:24 UTC (rev 9883) @@ -27,7 +27,6 @@ public interface StatGenerationMethod { - @Override public String toString(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2009-05-12 09:28:41
|
Revision: 9907 http://pcgen.svn.sourceforge.net/pcgen/?rev=9907&view=rev Author: jdempsey Date: 2009-05-12 09:28:32 +0000 (Tue, 12 May 2009) Log Message: ----------- Correct catagory misspelling to category Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuildPanel.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java Modified: sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/core/CharacterEditor.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -69,7 +69,7 @@ } public static void setRemainingSelection(CharacterFacade character, - AbilityCategoryFacade catagory, + AbilityCategoryFacade category, int remaining) { } Modified: sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/core/CharacterOutput.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -107,13 +107,13 @@ /** * Note: This method should never return null. If the character does not possess - * any abilities in the parameter catagory, this method should create a new - * DefaultGenericListModel for that catagory and keep a reference to it for future use. - * @param catagory - * @return a List of Abilities the character posseses in the specified catagory + * any abilities in the parameter category, this method should create a new + * DefaultGenericListModel for that category and keep a reference to it for future use. + * @param category + * @return a List of Abilities the character posseses in the specified category */ public static GenericListModel<AbilityFacade> getAbilities( - CharacterFacade character, AbilityCategory catagory) + CharacterFacade character, AbilityCategory category) { return null; } @@ -141,7 +141,7 @@ } public static int getRemainingSelections(CharacterFacade character, - AbilityCategoryFacade catagory) + AbilityCategoryFacade category) { return 0; } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -48,24 +48,24 @@ public void setScore(StatFacade stat, int score); - public void addAbility(AbilityCategoryFacade catagory, + public void addAbility(AbilityCategoryFacade category, AbilityFacade ability); - public void removeAbility(AbilityCategoryFacade catagory, + public void removeAbility(AbilityCategoryFacade category, AbilityFacade ability); - public boolean hasAbility(AbilityCategoryFacade catagory, + public boolean hasAbility(AbilityCategoryFacade category, AbilityFacade ability); /** * Note: This method should never return null. If the character does not possess - * any abilities in the parameter catagory, this method should create a new - * DefaultGenericListModel for that catagory and keep a reference to it for future use. - * @param catagory - * @return a List of Abilities the character posseses in the specified catagory + * any abilities in the parameter category, this method should create a new + * DefaultGenericListModel for that category and keep a reference to it for future use. + * @param category + * @return a List of Abilities the character posseses in the specified category */ public GenericListModel<AbilityFacade> getAbilities( - AbilityCategoryFacade catagory); + AbilityCategoryFacade category); public GenericListModel<CharacterLevelFacade> getLevels(); @@ -75,9 +75,9 @@ public int getClassLevel(ClassFacade c); - public int getRemainingSelections(AbilityCategoryFacade catagory); + public int getRemainingSelections(AbilityCategoryFacade category); - public void setRemainingSelection(AbilityCategoryFacade catagory, + public void setRemainingSelection(AbilityCategoryFacade category, int remaining); public int getSkillTotal(SkillFacade skill); Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -31,14 +31,14 @@ public interface DataSetFacade { - public GenericListModel<AbilityFacade> getAbilities(AbilityCategoryFacade catagory); + public GenericListModel<AbilityFacade> getAbilities(AbilityCategoryFacade category); - public AbilityFacade getAbility(AbilityCategoryFacade catagory, + public AbilityFacade getAbility(AbilityCategoryFacade category, String ability); public GenericListModel<AbilityCategoryFacade> getAbilityCatagories(); - public AbilityCategoryFacade getAbilityCatagory(String catagory); + public AbilityCategoryFacade getAbilityCatagory(String category); public GenericListModel<SkillFacade> getSkills(); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/GeneratorManager.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -307,10 +307,10 @@ for ( GeneratorElement refElement : refElements) { String name = refElement.getAttributeValue("name"); - String catagory = refElement.getAttributeValue("catagory"); + String category = refElement.getAttributeValue("category"); GeneratorType<?> type = GeneratorType.getGeneratorType(refElement.getName().replaceFirst("_REF", "")); - if (!generatorMap.containsKey(type, catagory, name)) + if (!generatorMap.containsKey(type, category, name)) { String generatorUri = refElement.getAttributeValue("uri"); if (generatorUri != null) @@ -345,7 +345,7 @@ } } } - if (!generatorMap.containsKey(type, catagory, name)) + if (!generatorMap.containsKey(type, category, name)) { Logging.log(Logging.XML_ERROR, "Invalid Reference in " + basedoc.getBaseURI() + ", ignoring " + @@ -361,7 +361,7 @@ private void loadGenerator(GeneratorElement element, boolean mutable) { String name = element.getAttributeValue("name"); - String catagory = element.getAttributeValue("catagory"); + String category = element.getAttributeValue("category"); GeneratorType<?> type = GeneratorType.getGeneratorType(element.getName()); //Class<?> c; if (checkSources(element) && checkReferences(element)) @@ -377,7 +377,7 @@ { obj = type.beaninfo.newBaseInstance(this, element); } - generatorMap.put(type, catagory, name, obj); + generatorMap.put(type, category, name, obj); return; } catch (Exception ex) @@ -389,7 +389,7 @@ try { Object obj = type.beaninfo.newInvalidInstance(this, name); - generatorMap.put(type, catagory, name, obj); + generatorMap.put(type, category, name, obj); } catch (Exception ex) { @@ -410,7 +410,7 @@ } private final DataSetFacade dataset; - // The second and third keys are "catagory" and "name" respectively + // The second and third keys are "category" and "name" respectively private final TripleKeyMap<GeneratorType<?>, String, String, Object> generatorMap; private final Set<Document> loadedDocuments; @@ -446,8 +446,8 @@ dataset.getGameMode().getAlignments()); loadAnyWeightedGenerator(GeneratorType.GENDER, new DefaultGenericListModel<Gender>(Arrays.asList(Gender.values()))); - AbilityCatagoryManager catagoryManager = new AbilityCatagoryManager(); - catagoryManager.setModel(dataset.getAbilityCatagories()); + AbilityCatagoryManager categoryManager = new AbilityCatagoryManager(); + categoryManager.setModel(dataset.getAbilityCatagories()); loadAnyInfoFacadeGenerator(GeneratorType.RACE, dataset.getRaces()); loadAnyInfoFacadeGenerator(GeneratorType.CLASS, dataset.getClasses()); } @@ -494,11 +494,11 @@ private class AbilityCatagoryManager extends AbstractGenericListDataWrapper<AbilityCategoryFacade> { - private final Map<AbilityCategoryFacade, AnyInfoFacadeGenerator<AbilityFacade>> catagoryMap; + private final Map<AbilityCategoryFacade, AnyInfoFacadeGenerator<AbilityFacade>> categoryMap; public AbilityCatagoryManager() { - this.catagoryMap = new HashMap<AbilityCategoryFacade, AnyInfoFacadeGenerator<AbilityFacade>>(); + this.categoryMap = new HashMap<AbilityCategoryFacade, AnyInfoFacadeGenerator<AbilityFacade>>(); } @Override @@ -510,7 +510,7 @@ generatorMap.put(GeneratorType.ABILITY, abilityCatagoryFacade.getName(), generator.toString(), generator); - catagoryMap.put(abilityCatagoryFacade, generator); + categoryMap.put(abilityCatagoryFacade, generator); } } @@ -521,7 +521,7 @@ { generatorMap.remove(GeneratorType.ABILITY, abilityCatagoryFacade.getName(), - catagoryMap.remove(abilityCatagoryFacade).toString()); + categoryMap.remove(abilityCatagoryFacade).toString()); } } @@ -2153,15 +2153,15 @@ { DefaultMutableAbilityGenerator generator = new DefaultMutableAbilityGenerator(manager, element1); - AbilityCategoryFacade catagory = manager.dataset.getAbilityCatagory(generator.toString()); - generatorMap.put(catagory, generator); + AbilityCategoryFacade category = manager.dataset.getAbilityCatagory(generator.toString()); + generatorMap.put(category, generator); } } - public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCategoryFacade catagory) + public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCategoryFacade category) { - return generatorMap.get(catagory); + return generatorMap.get(category); } @Override @@ -2201,7 +2201,7 @@ Element ref = new Element("ABILITY_GENERATOR_REF"); Element e = abilityGenerator.element; ref.setAttribute((Attribute) e.getAttribute("name").clone()); - ref.setAttribute((Attribute) e.getAttribute("catagory").clone()); + ref.setAttribute((Attribute) e.getAttribute("category").clone()); if (element.getDocument() != e.getDocument()) { String uri = e.getDocument().getBaseURI(); @@ -2218,10 +2218,10 @@ element.fireChangeEvent(); } - public void setGenerator(AbilityCategoryFacade catagory, + public void setGenerator(AbilityCategoryFacade category, InfoFacadeGenerator<AbilityFacade> generator) { - generatorMap.put(catagory, + generatorMap.put(category, (AbstractInfoFacadeGenerator<AbilityFacade>) generator); } @@ -2297,7 +2297,7 @@ @Override protected AbilityFacade getFacade(String name) { - return manager.dataset.getAbility(manager.dataset.getAbilityCatagory(element.getAttributeValue("catagory")), + return manager.dataset.getAbility(manager.dataset.getAbilityCatagory(element.getAttributeValue("category")), name); } @@ -2321,7 +2321,7 @@ protected AbilityFacade getFacade(String name) { - return manager.dataset.getAbility(manager.dataset.getAbilityCatagory(element.getAttributeValue("catagory")), + return manager.dataset.getAbility(manager.dataset.getAbilityCatagory(element.getAttributeValue("category")), name); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuild.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -31,6 +31,6 @@ public interface AbilityBuild { - public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCategoryFacade catagory); + public InfoFacadeGenerator<AbilityFacade> getGenerator(AbilityCategoryFacade category); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuildPanel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuildPanel.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/AbilityBuildPanel.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -35,7 +35,7 @@ private final AbilityTableModel model; private final FilteredTreeViewPanel abilityPanel; - private final JComboBox catagoryBox; + private final JComboBox categoryBox; private final JComboBox generatorBox; private final JCheckBox orderBox; private final JTable table; @@ -48,7 +48,7 @@ { super(new GridBagLayout()); this.abilityPanel = new FilteredTreeViewPanel(); - this.catagoryBox = new JComboBox(); + this.categoryBox = new JComboBox(); this.generatorBox = new JComboBox(); this.orderBox = new JCheckBox(); this.model = new AbilityTableModel(); @@ -97,9 +97,9 @@ add(new JLabel(ResourceManager.getText("abilityCatagory")), gridBagConstraints2); { - catagoryBox.addItemListener(model); + categoryBox.addItemListener(model); } - add(catagoryBox, gridBagConstraints); + add(categoryBox, gridBagConstraints); add(new JLabel(ResourceManager.getText("useGen")), gridBagConstraints2); { generatorBox.addItemListener(model); @@ -265,7 +265,7 @@ } ItemSelectable source = e.getItemSelectable(); - if (source == catagoryBox) + if (source == categoryBox) { } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/ability/MutableAbilityBuild.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -32,7 +32,7 @@ public interface MutableAbilityBuild extends AbilityBuild, Mutable { - public void setGenerator(AbilityCategoryFacade catagory, + public void setGenerator(AbilityCategoryFacade category, InfoFacadeGenerator<AbilityFacade> generator); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -80,7 +80,7 @@ HashMap<String, Hashtable<Object, Object>> tabs = new HashMap<String, Hashtable<Object, Object>>(); List<String> titles = new ArrayList<String>(); @SuppressWarnings("unchecked") - final ListMap<String, AbilityCategoryFacade, DefaultGenericListModel<AbilityCategoryFacade>> catagoryListMap = + final ListMap<String, AbilityCategoryFacade, DefaultGenericListModel<AbilityCategoryFacade>> categoryListMap = CollectionMaps.createListMap(HashMap.class, DefaultGenericListModel.class); AbstractGenericListDataWrapper<AbilityCategoryFacade> listener = new AbstractGenericListDataWrapper<AbilityCategoryFacade>() @@ -90,19 +90,19 @@ protected void addData(Collection<? extends AbilityCategoryFacade> data) { @SuppressWarnings("unchecked") - ListMap<String, AbilityCategoryFacade, ArrayList<AbilityCategoryFacade>> catagorySubListMap = + ListMap<String, AbilityCategoryFacade, ArrayList<AbilityCategoryFacade>> categorySubListMap = CollectionMaps.createListMap(HashMap.class, ArrayList.class); - for ( AbilityCategoryFacade catagory : data) + for ( AbilityCategoryFacade category : data) { - catagorySubListMap.add(catagory.getType(), catagory); + categorySubListMap.add(category.getType(), category); } // Warning: this does not take into acount whether or not a new "type" // has been introduced!! - for ( String type : catagorySubListMap.keySet()) + for ( String type : categorySubListMap.keySet()) { - catagoryListMap.addAll(type, - catagorySubListMap.get(type)); + categoryListMap.addAll(type, + categorySubListMap.get(type)); } } @@ -110,29 +110,29 @@ protected void removeData(Collection<? extends AbilityCategoryFacade> data) { @SuppressWarnings("unchecked") - ListMap<String, AbilityCategoryFacade, ArrayList<AbilityCategoryFacade>> catagorySubListMap = + ListMap<String, AbilityCategoryFacade, ArrayList<AbilityCategoryFacade>> categorySubListMap = CollectionMaps.createListMap(HashMap.class, ArrayList.class); - for ( AbilityCategoryFacade catagory : data) + for ( AbilityCategoryFacade category : data) { - catagorySubListMap.add(catagory.getType(), catagory); + categorySubListMap.add(category.getType(), category); } // Warning this does not take into acount whether or not a "type" // should be removed from the tabs - for ( String type : catagorySubListMap.keySet()) + for ( String type : categorySubListMap.keySet()) { - catagoryListMap.removeAll(type, - catagorySubListMap.get(type)); + categoryListMap.removeAll(type, + categorySubListMap.get(type)); } } }; listener.setModel(character.getDataSet().getAbilityCatagories()); - for ( String type : catagoryListMap.keySet()) + for ( String type : categoryListMap.keySet()) { titles.add(type); tabs.put(type, abilityTab.createState(character, - catagoryListMap.get(type))); + categoryListMap.get(type))); } Hashtable<Object, Object> state = new Hashtable<Object, Object>(); state.put("Titles", Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2009-05-11 08:40:14 UTC (rev 9906) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2009-05-12 09:28:32 UTC (rev 9907) @@ -109,10 +109,10 @@ }; private final FilteredTreeViewPanel availableTreeViewPanel; private final FilteredTreeViewPanel selectedTreeViewPanel; - private final JTable catagoryTable; + private final JTable categoryTable; private AvailableAbilityTreeViewModel availableModel; private SelectedAbilityTreeViewModel selectedModel; - private CatagoryTableModel catagoryModel; + private CatagoryTableModel categoryModel; private AbilityCategoryFacade selectedCatagory; private AbilityFacade selectedAbility; @@ -120,7 +120,7 @@ { this.availableTreeViewPanel = new FilteredTreeViewPanel(); this.selectedTreeViewPanel = new FilteredTreeViewPanel(); - this.catagoryTable = new JTable(); + this.categoryTable = new JTable(); initComponents(); } @@ -142,17 +142,17 @@ if (!data.isEmpty()) { Object obj = data.get(0); - AbilityCategoryFacade catagory = selectedCatagory; + AbilityCategoryFacade category = selectedCatagory; if (obj instanceof AbilityFacade) { ability = (AbilityFacade) obj; - catagory = selectedModel.getCatagoryForAbility(ability); + category = selectedModel.getCatagoryForAbility(ability); } else if (obj instanceof AbilityCategoryFacade) { - catagory = (AbilityCategoryFacade) obj; + category = (AbilityCategoryFacade) obj; } - setSelectedCatagory(catagory); + setSelectedCatagory(category); } setSelectedAbility(ability); } @@ -193,7 +193,7 @@ pane.setDividerSize(7); setPrimaryChooserComponent(pane); - selectionModel = catagoryTable.getSelectionModel(); + selectionModel = categoryTable.getSelectionModel(); selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); selectionModel.addListSelectionListener( new ListSelectionListener() @@ -203,13 +203,13 @@ { if (!e.getValueIsAdjusting()) { - setSelectedCatagory(catagoryModel.getCatagory(e.getFirstIndex())); + setSelectedCatagory(categoryModel.getCatagory(e.getFirstIndex())); } } }); - setSecondaryChooserComponent(new JScrollPane(catagoryTable, + setSecondaryChooserComponent(new JScrollPane(categoryTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER)); } @@ -220,12 +220,12 @@ setInfoPaneText(ability.getInfo()); } - private void setSelectedCatagory(AbilityCategoryFacade catagory) + private void setSelectedCatagory(AbilityCategoryFacade category) { - this.selectedCatagory = catagory; + this.selectedCatagory = category; - availableModel.setAbilityCatagory(catagory); - setInfoPaneTitle(catagory.getName() + " Info"); + availableModel.setAbilityCatagory(category); + setInfoPaneTitle(category.getName() + " Info"); } private static final class SelectedAbilityTreeViewModel extends AbstractGenericListDataWrapper<AbilityCategoryFacade> @@ -233,7 +233,7 @@ { private final List<? extends TreeView<AbilityFacade>> treeViews = null; - private final Map<AbilityFacade, AbilityCategoryFacade> catagoryMap; + private final Map<AbilityFacade, AbilityCategoryFacade> categoryMap; private final Map<GenericListModel<AbilityFacade>, GenericListDataListener> listenerMap; private final DefaultGenericListModel<AbilityFacade> model; private final CharacterFacade character; @@ -242,7 +242,7 @@ DefaultGenericListModel<AbilityCategoryFacade> catagories) { super(catagories); - this.catagoryMap = new HashMap<AbilityFacade, AbilityCategoryFacade>(); + this.categoryMap = new HashMap<AbilityFacade, AbilityCategoryFacade>(); this.listenerMap = new HashMap<GenericListModel<AbilityFacade>, GenericListDataListener>(); this.model = new DefaultGenericListModel<AbilityFacade>(); this.character = character; @@ -251,10 +251,10 @@ protected void addData(Collection<? extends AbilityCategoryFacade> catagories) { - AbilityCategoryFacade[] catagoryArray = catagories.toArray(new AbilityCategoryFacade[0]); - for (final AbilityCategoryFacade catagory : catagoryArray) + AbilityCategoryFacade[] categoryArray = catagories.toArray(new AbilityCategoryFacade[0]); + for (final AbilityCategoryFacade category : categoryArray) { - GenericListModel<AbilityFacade> abilityList = character.getAbilities(catagory); + GenericListModel<AbilityFacade> abilityList = character.getAbilities(category); GenericListDataListener<AbilityFacade> listener = new AbilityModelListener(abilityList) { @@ -263,7 +263,7 @@ { for (AbilityFacade ability : data) { - catagoryMap.put(ability, catagory); + categoryMap.put(ability, category); } model.addAll(data); } @@ -275,21 +275,21 @@ protected void removeData(Collection<? extends AbilityCategoryFacade> catagories) { - for (AbilityCategoryFacade catagory : catagories) + for (AbilityCategoryFacade category : catagories) { - GenericListModel<AbilityFacade> abilityList = character.getAbilities(catagory); + GenericListModel<AbilityFacade> abilityList = character.getAbilities(category); abilityList.removeGenericListDataListener(listenerMap.get(abilityList)); listenerMap.remove(abilityList); final List<AbilityFacade> listWrapper = new GenericListModelWrapper<AbilityFacade>(abilityList); model.removeAll(listWrapper); - catagoryMap.keySet().removeAll(listWrapper); + categoryMap.keySet().removeAll(listWrapper); } } public AbilityCategoryFacade getCatagoryForAbility(AbilityFacade ability) { - return catagoryMap.get(ability); + return categoryMap.get(ability); } public List<? extends TreeView<AbilityFacade>> getTreeViews() @@ -324,7 +324,7 @@ protected void removeData(Collection<? extends AbilityFacade> data) { model.removeAll(data); - catagoryMap.keySet().removeAll(data); + categoryMap.keySet().removeAll(data); } } @@ -342,7 +342,7 @@ private final DefaultGenericListModel<AbilityFacade> dataModel; private final CharacterFacade character; - private AbilityCategoryFacade catagory; + private AbilityCategoryFacade category; public AvailableAbilityTreeViewModel(CharacterFacade character) { @@ -370,10 +370,10 @@ return dataModel; } - public void setAbilityCatagory(AbilityCategoryFacade catagory) + public void setAbilityCatagory(AbilityCategoryFacade category) { - this.catagory = catagory; - GenericListModel<AbilityFacade> abilities = character.getDataSet().getAbilities(catagory); + this.category = category; + GenericListModel<AbilityFacade> abilities = character.getDataSet().getAbilities(category); dataModel.clear(); setModel(abilities); } @@ -385,7 +385,7 @@ while (it.hasNext()) { AbilityFacade ability = it.next(); - if (!ability.isMult() && character.hasAbility(catagory, ability)) + if (!ability.isMult() && character.hasAbility(category, ability)) { it.remove(); } @@ -448,13 +448,13 @@ public Object getValueAt(int rowIndex, int columnIndex) { - AbilityCategoryFacade catagory = catagories.getElementAt(rowIndex); + AbilityCategoryFacade category = catagories.getElementAt(rowIndex); switch (columnIndex) { case 0: - return catagory; + return category; case 1: - return character.getRemainingSelections(catagory); + return character.getRemainingSelections(category); default: throw new IndexOutOfBoundsException(); } @@ -643,17 +643,17 @@ public void storeState(Hashtable<Object, Object> state) { - //state.put("SelectedCatagory", catagoryTreeTable.getSelectedRow()); + //state.put("SelectedCatagory", categoryTreeTable.getSelectedRow()); } public void restoreState(Hashtable<?, ?> state) { - catagoryModel = (CatagoryTableModel) state.get(CatagoryTableModel.class); + categoryModel = (CatagoryTableModel) state.get(CatagoryTableModel.class); selectedModel = (SelectedAbilityTreeViewModel) state.get(SelectedAbilityTreeViewModel.class); availableModel = (AvailableAbilityTreeViewModel) state.get(AvailableAbilityTreeViewModel.class); AbilityTransferHandler handler = (AbilityTransferHandler) state.get(AbilityTransferHandler.class); - catagoryTable.setModel(catagoryModel); + categoryTable.setModel(categoryModel); selectedTreeViewPanel.setTransferHandler(handler); availableTreeViewPanel.setTransferHandler(handler); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2009-09-02 08:11:06
|
Revision: 10384 http://pcgen.svn.sourceforge.net/pcgen/?rev=10384&view=rev Author: cpmeister Date: 2009-09-02 08:10:52 +0000 (Wed, 02 Sep 2009) Log Message: ----------- Plugin system update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/bonus/Bonus.java sandbox/cdomui/code/src/java/pcgen/core/prereq/PrerequisiteTestFactory.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java sandbox/cdomui/code/src/java/pcgen/persistence/lst/TokenStore.java sandbox/cdomui/code/src/java/pcgen/persistence/lst/prereq/PreParserFactory.java sandbox/cdomui/code/src/java/pcgen/rules/persistence/TokenLibrary.java sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java sandbox/cdomui/code/src/java/pcgen/system/PluginLoader.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java sandbox/cdomui/code/src/java/pcgen/system/Main.java Modified: sandbox/cdomui/code/src/java/pcgen/core/bonus/Bonus.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/bonus/Bonus.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/core/bonus/Bonus.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -36,13 +36,14 @@ import java.util.HashMap; import java.util.List; import java.util.StringTokenizer; +import pcgen.system.PluginLoader; /** * <code>Bonus</code> * * @author Greg Bingleman <by...@ho...> */ -public class Bonus +public class Bonus implements PluginLoader { static final int BONUS_UNDEFINED = -1; @@ -50,10 +51,30 @@ private static final HashMap<String, BonusMapEntry> BONUS_TAG_MAP = new HashMap<String, BonusMapEntry>(); + private static Bonus instance = null; + private Bonus() { // Constructor } + public static Bonus getInstance() + { + if (instance == null) + { + instance = new Bonus(); + } + return instance; + } + public void loadPlugin(Class<?> clazz) throws Exception + { + addBonusClass(clazz, clazz.getName()); + } + + public Class[] getPluginClasses() + { + return new Class[]{BonusObj.class}; + } + /** * Get the bonus type given a name * @param bonusName Modified: sandbox/cdomui/code/src/java/pcgen/core/prereq/PrerequisiteTestFactory.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/prereq/PrerequisiteTestFactory.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/core/prereq/PrerequisiteTestFactory.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -26,6 +26,7 @@ import java.util.HashMap; import java.util.Map; +import pcgen.system.PluginLoader; import pcgen.util.Logging; import pcgen.util.PropertyFactory; @@ -33,7 +34,7 @@ * @author wardc * */ -public class PrerequisiteTestFactory { +public class PrerequisiteTestFactory implements PluginLoader{ private static PrerequisiteTestFactory instance = null; private static Map<String, PrerequisiteTest> testLookup = new HashMap<String, PrerequisiteTest>(); @@ -89,4 +90,14 @@ } return test; } + + public void loadPlugin(Class<?> clazz) throws Exception + { + register((PrerequisiteTest) clazz.newInstance()); + } + + public Class[] getPluginClasses() + { + return new Class[]{PrerequisiteTest.class}; + } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -0,0 +1,123 @@ +/* + * SplashScreen.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Sep 1, 2009, 10:49:27 PM + */ +package pcgen.gui2; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.io.File; +import java.net.URL; +import java.util.Observable; +import java.util.Observer; +import javax.swing.ImageIcon; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JProgressBar; +import javax.swing.JWindow; +import pcgen.gui2.tools.ResourceManager; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class SplashScreen extends JWindow implements Observer +{ + + private final JProgressBar loadProgress; + private final JLabel loadingLabel; + + public SplashScreen() + { + this.loadProgress = new JProgressBar(); + this.loadingLabel = new JLabel(); + initComponents(); + } + + private void initComponents() + { + Container pane = getContentPane(); + pane.setLayout(new BorderLayout()); + + JLabel splashLabel = new JLabel(ResourceManager.getImageIcon("SplashPcgen_Alpha.png")); + pane.add(splashLabel, BorderLayout.NORTH); + loadingLabel.setText(" "); + pane.add(loadingLabel, BorderLayout.CENTER); + + loadProgress.setStringPainted(false); + pane.add(loadProgress, BorderLayout.SOUTH); + + pack(); + } + + public void update(Observable o, Object arg) + { + if (arg instanceof Integer) + { + loadProgress.setMinimum(0); + loadProgress.setMaximum((Integer) arg); + setVisible(true); + } + else if (arg instanceof URL) + { + URL url = (URL) arg; + File file = new File(url.getFile()); + loadingLabel.setText(file.getName()); + loadProgress.setValue(loadProgress.getValue() + 1); + } + else if (arg instanceof String) + { + String str = (String) arg; + if (str.equalsIgnoreCase("done")) + { + dispose(); + } + } + } + + private static class SplashPanel extends JPanel + { + + private final ImageIcon splashImage; + + public SplashPanel() + { + splashImage = ResourceManager.getImageIcon("SplashPcgen_Alpha.png"); + if (splashImage != null) + { + setPreferredSize(new Dimension(splashImage.getIconWidth(), + splashImage.getIconHeight())); + } + } + + @Override + public void paintComponent(Graphics g) + { + if (splashImage != null) + { + splashImage.paintIcon(this, g, 0, 0); + } + } + + } +} Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -67,599 +67,606 @@ public class AbilityChooserTab extends ChooserPane implements StateEditable { - private static final DataView<AbilityFacade> abilityDataView = new DataView<AbilityFacade>() - { + private static final DataView<AbilityFacade> abilityDataView = new DataView<AbilityFacade>() + { - private final List<? extends DataViewColumn> dataColumns = - Arrays.asList(new DefaultDataViewColumn("Type", - String.class), - new DefaultDataViewColumn("Mult", - Boolean.class), - new DefaultDataViewColumn("Stack", - Boolean.class), - new DefaultDataViewColumn("Description", - String.class), - new DefaultDataViewColumn("Source", - String.class)); + private final List<? extends DataViewColumn> dataColumns = + Arrays.asList(new DefaultDataViewColumn("Type", + String.class), + new DefaultDataViewColumn("Mult", + Boolean.class), + new DefaultDataViewColumn("Stack", + Boolean.class), + new DefaultDataViewColumn("Description", + String.class), + new DefaultDataViewColumn("Source", + String.class)); - public List<? extends DataViewColumn> getDataColumns() - { - return dataColumns; - } + public List<? extends DataViewColumn> getDataColumns() + { + return dataColumns; + } - public List<?> getData(AbilityFacade obj) - { - return Arrays.asList(getTypes(obj.getTypes()), - obj.isMult(), - obj.isStackable(), - obj.getDescription(), - obj.getSource()); - } + public List<?> getData(AbilityFacade obj) + { + return Arrays.asList(getTypes(obj.getTypes()), + obj.isMult(), + obj.isStackable(), + obj.getDescription(), + obj.getSource()); + } - private String getTypes(List<String> types) - { - String ret = types.get(0); - for (int x = 1; x < types.size(); x++) - { - ret += ", " + types.get(x); - } - return ret; - } + private String getTypes(List<String> types) + { + String ret = types.get(0); + for (int x = 1; x < types.size(); x++) + { + ret += ", " + types.get(x); + } + return ret; + } - }; - private final FilteredTreeViewPanel availableTreeViewPanel; - private final FilteredTreeViewPanel selectedTreeViewPanel; - private final JTable categoryTable; - private AvailableAbilityTreeViewModel availableModel; - private SelectedAbilityTreeViewModel selectedModel; - private CatagoryTableModel categoryModel; - private AbilityCategoryFacade selectedCatagory; - private AbilityFacade selectedAbility; + }; + private final FilteredTreeViewPanel availableTreeViewPanel; + private final FilteredTreeViewPanel selectedTreeViewPanel; + private final JTable categoryTable; + private AvailableAbilityTreeViewModel availableModel; + private SelectedAbilityTreeViewModel selectedModel; + private CatagoryTableModel categoryModel; + private AbilityCategoryFacade selectedCatagory; + private AbilityFacade selectedAbility; - public AbilityChooserTab() - { - this.availableTreeViewPanel = new FilteredTreeViewPanel(); - this.selectedTreeViewPanel = new FilteredTreeViewPanel(); - this.categoryTable = new JTable(); - initComponents(); - } + public AbilityChooserTab() + { + this.availableTreeViewPanel = new FilteredTreeViewPanel(); + this.selectedTreeViewPanel = new FilteredTreeViewPanel(); + this.categoryTable = new JTable(); + initComponents(); + } - private void initComponents() - { - ListSelectionModel selectionModel; - selectionModel = selectedTreeViewPanel.getSelectionModel(); - selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - selectionModel.addListSelectionListener( - new ListSelectionListener() - { + private void initComponents() + { + ListSelectionModel selectionModel; + selectionModel = selectedTreeViewPanel.getSelectionModel(); + selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + selectionModel.addListSelectionListener( + new ListSelectionListener() + { - public void valueChanged(ListSelectionEvent e) - { - if (!e.getValueIsAdjusting()) - { - List<Object> data = selectedTreeViewPanel.getSelectedData(); - AbilityFacade ability = null; - if (!data.isEmpty()) - { - Object obj = data.get(0); - AbilityCategoryFacade category = selectedCatagory; - if (obj instanceof AbilityFacade) - { - ability = (AbilityFacade) obj; - category = selectedModel.getCatagoryForAbility(ability); - } - else if (obj instanceof AbilityCategoryFacade) - { - category = (AbilityCategoryFacade) obj; - } - setSelectedCatagory(category); - } - setSelectedAbility(ability); - } - } + public void valueChanged(ListSelectionEvent e) + { + if (!e.getValueIsAdjusting()) + { + List<Object> data = selectedTreeViewPanel.getSelectedData(); + AbilityFacade ability = null; + if (!data.isEmpty()) + { + Object obj = data.get(0); + AbilityCategoryFacade category = selectedCatagory; + if (obj instanceof AbilityFacade) + { + ability = (AbilityFacade) obj; + category = selectedModel.getCatagoryForAbility(ability); + } + else if (obj instanceof AbilityCategoryFacade) + { + category = (AbilityCategoryFacade) obj; + } + setSelectedCatagory(category); + } + setSelectedAbility(ability); + } + } - }); + }); - selectionModel = availableTreeViewPanel.getSelectionModel(); - selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - selectionModel.addListSelectionListener( - new ListSelectionListener() - { + selectionModel = availableTreeViewPanel.getSelectionModel(); + selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + selectionModel.addListSelectionListener( + new ListSelectionListener() + { - public void valueChanged(ListSelectionEvent e) - { - if (!e.getValueIsAdjusting()) - { - List<Object> data = availableTreeViewPanel.getSelectedData(); - if (!data.isEmpty() && - data.get(0) instanceof AbilityFacade) - { - setSelectedAbility((AbilityFacade) data.get(0)); - } - else - { - setSelectedAbility(null); - } - } - } + public void valueChanged(ListSelectionEvent e) + { + if (!e.getValueIsAdjusting()) + { + List<Object> data = availableTreeViewPanel.getSelectedData(); + if (!data.isEmpty() && + data.get(0) instanceof AbilityFacade) + { + setSelectedAbility((AbilityFacade) data.get(0)); + } + else + { + setSelectedAbility(null); + } + } + } - }); + }); - FlippingSplitPane pane = new FlippingSplitPane(JSplitPane.VERTICAL_SPLIT, - true, - selectedTreeViewPanel, - availableTreeViewPanel); - pane.setOneTouchExpandable(true); - pane.setDividerSize(7); - setPrimaryChooserComponent(pane); + FlippingSplitPane pane = new FlippingSplitPane(JSplitPane.VERTICAL_SPLIT, + true, + selectedTreeViewPanel, + availableTreeViewPanel); + pane.setOneTouchExpandable(true); + pane.setDividerSize(7); + setPrimaryChooserComponent(pane); - selectionModel = categoryTable.getSelectionModel(); - selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - selectionModel.addListSelectionListener( - new ListSelectionListener() - { + selectionModel = categoryTable.getSelectionModel(); + selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + selectionModel.addListSelectionListener( + new ListSelectionListener() + { - public void valueChanged(ListSelectionEvent e) - { - if (!e.getValueIsAdjusting()) - { - setSelectedCatagory(categoryModel.getCatagory(e.getFirstIndex())); - } - } + public void valueChanged(ListSelectionEvent e) + { + if (!e.getValueIsAdjusting()) + { + setSelectedCatagory(categoryModel.getCatagory(e.getFirstIndex())); + } + } - }); + }); - setSecondaryChooserComponent(new JScrollPane(categoryTable, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_NEVER)); - } + setSecondaryChooserComponent(new JScrollPane(categoryTable, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER)); + } - private void setSelectedAbility(AbilityFacade ability) - { - this.selectedAbility = ability; - setInfoPaneText(ability.getInfo()); - } + private void setSelectedAbility(AbilityFacade ability) + { + this.selectedAbility = ability; + setInfoPaneText(ability.getInfo()); + } - private void setSelectedCatagory(AbilityCategoryFacade category) - { - this.selectedCatagory = category; + private void setSelectedCatagory(AbilityCategoryFacade category) + { + this.selectedCatagory = category; - availableModel.setAbilityCatagory(category); - setInfoPaneTitle(category.getName() + " Info"); - } + availableModel.setAbilityCatagory(category); + setInfoPaneTitle(category.getName() + " Info"); + } - private static final class SelectedAbilityTreeViewModel extends AbstractGenericListDataWrapper<AbilityCategoryFacade> - implements FilterableTreeViewModel<AbilityFacade> - { + private static final class SelectedAbilityTreeViewModel extends AbstractGenericListDataWrapper<AbilityCategoryFacade> + implements FilterableTreeViewModel<AbilityFacade> + { - private final List<? extends TreeView<AbilityFacade>> treeViews = null; - private final Map<AbilityFacade, AbilityCategoryFacade> categoryMap; - private final Map<GenericListModel<AbilityFacade>, GenericListDataListener> listenerMap; - private final DefaultGenericListModel<AbilityFacade> model; - private final CharacterFacade character; + private final List<? extends TreeView<AbilityFacade>> treeViews = null; + private final Map<AbilityFacade, AbilityCategoryFacade> categoryMap; + private final Map<GenericListModel<AbilityFacade>, GenericListDataListener> listenerMap; + private final DefaultGenericListModel<AbilityFacade> model; + private final CharacterFacade character; - public SelectedAbilityTreeViewModel(CharacterFacade character, - DefaultGenericListModel<AbilityCategoryFacade> catagories) - { - super(catagories); - this.categoryMap = new HashMap<AbilityFacade, AbilityCategoryFacade>(); - this.listenerMap = new HashMap<GenericListModel<AbilityFacade>, GenericListDataListener>(); - this.model = new DefaultGenericListModel<AbilityFacade>(); - this.character = character; - setModel(catagories); - } + public SelectedAbilityTreeViewModel(CharacterFacade character, + DefaultGenericListModel<AbilityCategoryFacade> catagories) + { + super(catagories); + this.categoryMap = new HashMap<AbilityFacade, AbilityCategoryFacade>(); + this.listenerMap = new HashMap<GenericListModel<AbilityFacade>, GenericListDataListener>(); + this.model = new DefaultGenericListModel<AbilityFacade>(); + this.character = character; + setModel(catagories); + } - protected void addData(Collection<? extends AbilityCategoryFacade> catagories) - { - AbilityCategoryFacade[] categoryArray = catagories.toArray(new AbilityCategoryFacade[0]); - for (final AbilityCategoryFacade category : categoryArray) - { - GenericListModel<AbilityFacade> abilityList = character.getAbilities(category); - GenericListDataListener<AbilityFacade> listener = new AbilityModelListener(abilityList) - { + protected void addData(Collection<? extends AbilityCategoryFacade> catagories) + { + AbilityCategoryFacade[] categoryArray = catagories.toArray(new AbilityCategoryFacade[0]); + for (final AbilityCategoryFacade category : categoryArray) + { + GenericListModel<AbilityFacade> abilityList = character.getAbilities(category); + GenericListDataListener<AbilityFacade> listener = new AbilityModelListener( + abilityList) + { - @Override - protected void addData(Collection<? extends AbilityFacade> data) - { - for (AbilityFacade ability : data) - { - categoryMap.put(ability, category); - } - model.addAll(data); - } + @Override + protected void addData(Collection<? extends AbilityFacade> data) + { + for (AbilityFacade ability : data) + { + categoryMap.put(ability, category); + } + model.addAll(data); + } - }; - listenerMap.put(abilityList, listener); - } - } + }; + listenerMap.put(abilityList, listener); + } + } - protected void removeData(Collection<? extends AbilityCategoryFacade> catagories) - { - for (AbilityCategoryFacade category : catagories) - { - GenericListModel<AbilityFacade> abilityList = character.getAbilities(category); - abilityList.removeGenericListDataListener(listenerMap.get(abilityList)); - listenerMap.remove(abilityList); + protected void removeData(Collection<? extends AbilityCategoryFacade> catagories) + { + for (AbilityCategoryFacade category : catagories) + { + GenericListModel<AbilityFacade> abilityList = character.getAbilities(category); + abilityList.removeGenericListDataListener(listenerMap.get(abilityList)); + listenerMap.remove(abilityList); - final List<AbilityFacade> listWrapper = new GenericListModelWrapper<AbilityFacade>(abilityList); - model.removeAll(listWrapper); - categoryMap.keySet().removeAll(listWrapper); - } - } + final List<AbilityFacade> listWrapper = new GenericListModelWrapper<AbilityFacade>( + abilityList); + model.removeAll(listWrapper); + categoryMap.keySet().removeAll(listWrapper); + } + } - public AbilityCategoryFacade getCatagoryForAbility(AbilityFacade ability) - { - return categoryMap.get(ability); - } + public AbilityCategoryFacade getCatagoryForAbility(AbilityFacade ability) + { + return categoryMap.get(ability); + } - public List<? extends TreeView<AbilityFacade>> getTreeViews() - { - return treeViews; - } + public List<? extends TreeView<AbilityFacade>> getTreeViews() + { + return treeViews; + } - public int getDefaultTreeViewIndex() - { - return 0; - } + public int getDefaultTreeViewIndex() + { + return 0; + } - public DataView<AbilityFacade> getDataView() - { - return abilityDataView; - } + public DataView<AbilityFacade> getDataView() + { + return abilityDataView; + } - public DefaultGenericListModel<AbilityFacade> getDataModel() - { - return model; - } + public DefaultGenericListModel<AbilityFacade> getDataModel() + { + return model; + } - private abstract class AbilityModelListener extends AbstractGenericListDataWrapper<AbilityFacade> - { + private abstract class AbilityModelListener extends AbstractGenericListDataWrapper<AbilityFacade> + { - public AbilityModelListener(GenericListModel<AbilityFacade> model) - { - super(model); - } + public AbilityModelListener(GenericListModel<AbilityFacade> model) + { + super(model); + } - @Override - protected void removeData(Collection<? extends AbilityFacade> data) - { - model.removeAll(data); - categoryMap.keySet().removeAll(data); - } + @Override + protected void removeData(Collection<? extends AbilityFacade> data) + { + model.removeAll(data); + categoryMap.keySet().removeAll(data); + } - } + } - public Class<AbilityFacade> getFilterClass() - { - return AbilityFacade.class; - } + public Class<AbilityFacade> getFilterClass() + { + return AbilityFacade.class; + } - } + } - private static final class AvailableAbilityTreeViewModel extends AbstractGenericListDataWrapper<AbilityFacade> - implements FilterableTreeViewModel<AbilityFacade> - { + private static final class AvailableAbilityTreeViewModel extends AbstractGenericListDataWrapper<AbilityFacade> + implements FilterableTreeViewModel<AbilityFacade> + { - private final DefaultGenericListModel<AbilityFacade> dataModel; - private final CharacterFacade character; - private AbilityCategoryFacade category; + private final DefaultGenericListModel<AbilityFacade> dataModel; + private final CharacterFacade character; + private AbilityCategoryFacade category; - public AvailableAbilityTreeViewModel(CharacterFacade character) - { - this.dataModel = new DefaultGenericListModel<AbilityFacade>(); - this.character = character; - } + public AvailableAbilityTreeViewModel(CharacterFacade character) + { + this.dataModel = new DefaultGenericListModel<AbilityFacade>(); + this.character = character; + } - public List<? extends TreeView<AbilityFacade>> getTreeViews() - { - return null; - } + public List<? extends TreeView<AbilityFacade>> getTreeViews() + { + return null; + } - public int getDefaultTreeViewIndex() - { - return 0; - } + public int getDefaultTreeViewIndex() + { + return 0; + } - public DataView<AbilityFacade> getDataView() - { - return abilityDataView; - } + public DataView<AbilityFacade> getDataView() + { + return abilityDataView; + } - public DefaultGenericListModel<AbilityFacade> getDataModel() - { - return dataModel; - } + public DefaultGenericListModel<AbilityFacade> getDataModel() + { + return dataModel; + } - public void setAbilityCatagory(AbilityCategoryFacade category) - { - this.category = category; - GenericListModel<AbilityFacade> abilities = character.getDataSet().getAbilities(category); - dataModel.clear(); - setModel(abilities); - } + public void setAbilityCatagory(AbilityCategoryFacade category) + { + this.category = category; + GenericListModel<AbilityFacade> abilities = character.getDataSet().getAbilities(category); + dataModel.clear(); + setModel(abilities); + } - protected void addData(Collection<? extends AbilityFacade> abilities) - { - HashSet<AbilityFacade> abilitySet = new HashSet<AbilityFacade>(abilities); - Iterator<AbilityFacade> it = abilitySet.iterator(); - while (it.hasNext()) - { - AbilityFacade ability = it.next(); - if (!ability.isMult() && character.hasAbility(category, ability)) - { - it.remove(); - } - } - dataModel.addAll(abilitySet); - } + protected void addData(Collection<? extends AbilityFacade> abilities) + { + HashSet<AbilityFacade> abilitySet = new HashSet<AbilityFacade>(abilities); + Iterator<AbilityFacade> it = abilitySet.iterator(); + while (it.hasNext()) + { + AbilityFacade ability = it.next(); + if (!ability.isMult() && character.hasAbility(category, ability)) + { + it.remove(); + } + } + dataModel.addAll(abilitySet); + } - @Override - protected void removeData(Collection<? extends AbilityFacade> data) - { - dataModel.removeAll(data); - } + @Override + protected void removeData(Collection<? extends AbilityFacade> data) + { + dataModel.removeAll(data); + } - public Class<AbilityFacade> getFilterClass() - { - return AbilityFacade.class; - } + public Class<AbilityFacade> getFilterClass() + { + return AbilityFacade.class; + } - } + } - private static final class CatagoryTableModel extends AbstractTableModel - implements ListDataListener - { + private static final class CatagoryTableModel extends AbstractTableModel + implements ListDataListener + { - private CharacterFacade character; - private DefaultGenericListModel<AbilityCategoryFacade> catagories; + private CharacterFacade character; + private DefaultGenericListModel<AbilityCategoryFacade> catagories; - public CatagoryTableModel(CharacterFacade character, - DefaultGenericListModel<AbilityCategoryFacade> catagories) - { - this.character = character; - this.catagories = catagories; - catagories.addListDataListener(this); - } + public CatagoryTableModel(CharacterFacade character, + DefaultGenericListModel<AbilityCategoryFacade> catagories) + { + this.character = character; + this.catagories = catagories; + catagories.addListDataListener(this); + } - public AbilityCategoryFacade getCatagory(int index) - { - return catagories.getElementAt(index); - } + public AbilityCategoryFacade getCatagory(int index) + { + return catagories.getElementAt(index); + } - public int getRowCount() - { - return catagories.getSize(); - } + public int getRowCount() + { + return catagories.getSize(); + } - public int getColumnCount() - { - return 2; - } + public int getColumnCount() + { + return 2; + } - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) - { - if (columnIndex == 1) - { - return true; - } - return false; - } + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) + { + if (columnIndex == 1) + { + return true; + } + return false; + } - public Object getValueAt(int rowIndex, int columnIndex) - { - AbilityCategoryFacade category = catagories.getElementAt(rowIndex); - switch (columnIndex) - { - case 0: - return category; - case 1: - return character.getRemainingSelections(category); - default: - throw new IndexOutOfBoundsException(); - } - } + public Object getValueAt(int rowIndex, int columnIndex) + { + AbilityCategoryFacade category = catagories.getElementAt(rowIndex); + switch (columnIndex) + { + case 0: + return category; + case 1: + return character.getRemainingSelections(category); + default: + throw new IndexOutOfBoundsException(); + } + } - @Override - public void setValueAt(Object aValue, int rowIndex, int columnIndex) - { - character.setRemainingSelection(catagories.getElementAt(rowIndex), - (Integer) aValue); - } + @Override + public void setValueAt(Object aValue, int rowIndex, int columnIndex) + { + character.setRemainingSelection(catagories.getElementAt(rowIndex), + (Integer) aValue); + } - @Override - public String getColumnName(int column) - { - if (column == 0) - { - return "Catagory"; - } - return "Remaining"; - } + @Override + public String getColumnName(int column) + { + if (column == 0) + { + return "Catagory"; + } + return "Remaining"; + } - @Override - public Class<?> getColumnClass(int columnIndex) - { - if (columnIndex == 1) - { - return Integer.class; - } - return Object.class; - } + @Override + public Class<?> getColumnClass(int columnIndex) + { + if (columnIndex == 1) + { + return Integer.class; + } + return Object.class; + } - public void intervalAdded(ListDataEvent e) - { - fireTableRowsInserted(e.getIndex0(), e.getIndex1()); - } + public void intervalAdded(ListDataEvent e) + { + fireTableRowsInserted(e.getIndex0(), e.getIndex1()); + } - public void intervalRemoved(ListDataEvent e) - { - fireTableRowsDeleted(e.getIndex0(), e.getIndex1()); - } + public void intervalRemoved(ListDataEvent e) + { + fireTableRowsDeleted(e.getIndex0(), e.getIndex1()); + } - public void contentsChanged(ListDataEvent e) - { - fireTableRowsUpdated(e.getIndex0(), e.getIndex1()); - } + public void contentsChanged(ListDataEvent e) + { + fireTableRowsUpdated(e.getIndex0(), e.getIndex1()); + } - } + } - private final class AbilityTransferHandler extends TransferHandler - { + private final class AbilityTransferHandler extends TransferHandler + { - private CharacterFacade character; + private CharacterFacade character; - public AbilityTransferHandler(CharacterFacade character) - { - this.character = character; - } + public AbilityTransferHandler(CharacterFacade character) + { + this.character = character; + } - private final DataFlavor abilityFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + - ";class=" + - AbilityFacade.class.getName(), - null); + private final DataFlavor abilityFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + + ";class=" + + AbilityFacade.class.getName(), + null); - @Override - public int getSourceActions(JComponent c) - { - if (selectedAbility != null) - { - if (selectedTreeViewPanel.isAncestorOf(c)) - { - return MOVE; - } - if (selectedAbility.isMult()) - { - return COPY; - } - if (!character.hasAbility(selectedCatagory, selectedAbility)) - { - return MOVE; - } - } - return NONE; - } + @Override + public int getSourceActions(JComponent c) + { + if (selectedAbility != null) + { + if (selectedTreeViewPanel.isAncestorOf(c)) + { + return MOVE; + } + if (selectedAbility.isMult()) + { + return COPY; + } + if (!character.hasAbility(selectedCatagory, selectedAbility)) + { + return MOVE; + } + } + return NONE; + } - @Override - protected Transferable createTransferable(JComponent c) - { - final AbilityFacade transferAbility = selectedAbility; - return new Transferable() - { + @Override + protected Transferable createTransferable(JComponent c) + { + final AbilityFacade transferAbility = selectedAbility; + return new Transferable() + { - public DataFlavor[] getTransferDataFlavors() - { - return new DataFlavor[]{abilityFlavor}; - } + public DataFlavor[] getTransferDataFlavors() + { + return new DataFlavor[] + { + abilityFlavor + }; + } - public boolean isDataFlavorSupported(DataFlavor flavor) - { - return abilityFlavor == flavor; - } + public boolean isDataFlavorSupported(DataFlavor flavor) + { + return abilityFlavor == flavor; + } - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException - { - if (!isDataFlavorSupported(flavor)) - { - throw new UnsupportedFlavorException(flavor); - } - return transferAbility; - } + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException + { + if (!isDataFlavorSupported(flavor)) + { + throw new UnsupportedFlavorException(flavor); + } + return transferAbility; + } - }; - } + }; + } - @Override - public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) - { - return transferFlavors[0] == abilityFlavor; - } + @Override + public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) + { + return transferFlavors[0] == abilityFlavor; + } - @Override - public boolean importData(JComponent comp, Transferable t) - { - if (selectedTreeViewPanel.isAncestorOf(comp)) - { - try - { - AbilityFacade ability = (AbilityFacade) t.getTransferData(abilityFlavor); - // TODO: add some extra logic - character.addAbility(selectedCatagory, ability); - return true; - } - catch (UnsupportedFlavorException ex) - { - Logger.getLogger(AbilityChooserTab.class.getName()).log(Level.SEVERE, - null, - ex); - } - catch (IOException ex) - { - Logger.getLogger(AbilityChooserTab.class.getName()).log(Level.SEVERE, - null, - ex); - } - return false; - } - return true; - } + @Override + public boolean importData(JComponent comp, Transferable t) + { + if (selectedTreeViewPanel.isAncestorOf(comp)) + { + try + { + AbilityFacade ability = (AbilityFacade) t.getTransferData(abilityFlavor); + // TODO: add some extra logic + character.addAbility(selectedCatagory, ability); + return true; + } + catch (UnsupportedFlavorException ex) + { + Logger.getLogger(AbilityChooserTab.class.getName()).log(Level.SEVERE, + null, + ex); + } + catch (IOException ex) + { + Logger.getLogger(AbilityChooserTab.class.getName()).log(Level.SEVERE, + null, + ex); + } + return false; + } + return true; + } - @Override - protected void exportDone(JComponent source, Transferable data, - int action) - { - if (action == COPY) - { - return; - } - } + @Override + protected void exportDone(JComponent source, Transferable data, + int action) + { + if (action == COPY) + { + return; + } + } - } - private static final String SELECTED_TREEVIEW_PANEL_STATE = "SelectedTreeViewPanelState"; - private static final String AVAILABLE_TREEVIEW_PANEL_STATE = "AvailableTreeViewPanelState"; + } + private static final String SELECTED_TREEVIEW_PANEL_STATE = "SelectedTreeViewPanelState"; + private static final String AVAILABLE_TREEVIEW_PANEL_STATE = "AvailableTreeViewPanelState"; - public Hashtable<Object, Object> createState(CharacterFacade character, - DefaultGenericListModel<AbilityCategoryFacade> catagories) - { - Hashtable<Object, Object> state = new Hashtable<Object, Object>(); - state.put(CatagoryTableModel.class, - new CatagoryTableModel(character, catagories)); - SelectedAbilityTreeViewModel selectedAbilityModel = new SelectedAbilityTreeViewModel(character, - catagories); - AvailableAbilityTreeViewModel availableAbilityModel = new AvailableAbilityTreeViewModel(character); + public Hashtable<Object, Object> createState(CharacterFacade character, + DefaultGenericListModel<AbilityCategoryFacade> catagories) + { + Hashtable<Object, Object> state = new Hashtable<Object, Object>(); + state.put(CatagoryTableModel.class, + new CatagoryTableModel(character, catagories)); + SelectedAbilityTreeViewModel selectedAbilityModel = new SelectedAbilityTreeViewModel( + character, catagories); + AvailableAbilityTreeViewModel availableAbilityModel = new AvailableAbilityTreeViewModel( + character); - state.put(SelectedAbilityTreeViewModel.class, selectedAbilityModel); - state.put(AvailableAbilityTreeViewModel.class, availableAbilityModel); - state.put(SELECTED_TREEVIEW_PANEL_STATE, - selectedTreeViewPanel.createState(character, - selectedAbilityModel)); - state.put(AVAILABLE_TREEVIEW_PANEL_STATE, - availableTreeViewPanel.createState(character, - availableAbilityModel)); - state.put(AbilityTransferHandler.class, - new AbilityTransferHandler(character)); - return state; - } + state.put(SelectedAbilityTreeViewModel.class, selectedAbilityModel); + state.put(AvailableAbilityTreeViewModel.class, availableAbilityModel); + state.put(SELECTED_TREEVIEW_PANEL_STATE, + selectedTreeViewPanel.createState(character, selectedAbilityModel)); + state.put(AVAILABLE_TREEVIEW_PANEL_STATE, + availableTreeViewPanel.createState(character, availableAbilityModel)); + state.put(AbilityTransferHandler.class, new AbilityTransferHandler(character)); + return state; + } - public void storeState(Hashtable<Object, Object> state) - { - //state.put("SelectedCatagory", categoryTreeTable.getSelectedRow()); - } + public void storeState(Hashtable<Object, Object> state) + { + //state.put("SelectedCatagory", categoryTreeTable.getSelectedRow()); + } - public void restoreState(Hashtable<?, ?> state) - { - categoryModel = (CatagoryTableModel) state.get(CatagoryTableModel.class); - selectedModel = (SelectedAbilityTreeViewModel) state.get(SelectedAbilityTreeViewModel.class); - availableModel = (AvailableAbilityTreeViewModel) state.get(AvailableAbilityTreeViewModel.class); - AbilityTransferHandler handler = (AbilityTransferHandler) state.get(AbilityTransferHandler.class); + public void restoreState(Hashtable<?, ?> state) + { + categoryModel = (CatagoryTableModel) state.get(CatagoryTableModel.class); + selectedModel = (SelectedAbilityTreeViewModel) state.get(SelectedAbilityTreeViewModel.class); + availableModel = + (AvailableAbilityTreeViewModel) state.get(AvailableAbilityTreeViewModel.class); + AbilityTransferHandler handler = + (AbilityTransferHandler) state.get(AbilityTransferHandler.class); - categoryTable.setModel(categoryModel); - selectedTreeViewPanel.setTransferHandler(handler); - availableTreeViewPanel.setTransferHandler(handler); + categoryTable.setModel(categoryModel); + selectedTreeViewPanel.setTransferHandler(handler); + availableTreeViewPanel.setTransferHandler(handler); - selectedTreeViewPanel.restoreState((Hashtable<?, ?>) state.get(SELECTED_TREEVIEW_PANEL_STATE)); - availableTreeViewPanel.restoreState((Hashtable<?, ?>) state.get(AVAILABLE_TREEVIEW_PANEL_STATE)); - } + selectedTreeViewPanel.restoreState( + (Hashtable<?, ?>) state.get(SELECTED_TREEVIEW_PANEL_STATE)); + availableTreeViewPanel.restoreState((Hashtable<?, ?>) state.get( + AVAILABLE_TREEVIEW_PANEL_STATE)); + } // private class PreReqTreeView implements TreeView<AbilityFacade> // { Modified: sandbox/cdomui/code/src/java/pcgen/persistence/lst/TokenStore.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/persistence/lst/TokenStore.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/persistence/lst/TokenStore.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -1,16 +1,18 @@ package pcgen.persistence.lst; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import pcgen.system.PluginLoader; import pcgen.util.Logging; /** * A Store of LST tokens, has a map and list representation */ -public class TokenStore +public class TokenStore implements PluginLoader { private static TokenStore inst; private HashMap<Class<? extends LstToken>, Map<String, LstToken>> tokenTypeMap; @@ -80,6 +82,16 @@ tokenTypeList.add(InstallLstToken.class); } + public void loadPlugin(Class<?> clazz) throws Exception + { + addToTokenMap((LstToken) clazz.newInstance()); + } + + public Class[] getPluginClasses() + { + return new Class[]{LstToken.class}; + } + /** * Add the new token to the token map * @param newToken Modified: sandbox/cdomui/code/src/java/pcgen/persistence/lst/prereq/PreParserFactory.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/persistence/lst/prereq/PreParserFactory.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/persistence/lst/prereq/PreParserFactory.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -33,13 +33,14 @@ import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; +import pcgen.system.PluginLoader; import pcgen.util.Logging; /** * @author wardc * */ -public class PreParserFactory +public class PreParserFactory implements PluginLoader { private static PreParserFactory instance = null; private static Map<String, PrerequisiteParserInterface> parserLookup = @@ -50,6 +51,17 @@ register(new PreMultParser()); } + public void loadPlugin(Class<?> clazz) throws Exception + { + register((PrerequisiteParserInterface) clazz.newInstance()); + } + + @SuppressWarnings("unchecked") + public Class[] getPluginClasses() + { + return new Class[]{PrerequisiteParserInterface.class}; + } + /** * @return Returns the instance. * @throws PersistenceLayerException Modified: sandbox/cdomui/code/src/java/pcgen/rules/persistence/TokenLibrary.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/rules/persistence/TokenLibrary.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/rules/persistence/TokenLibrary.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -28,6 +28,7 @@ import pcgen.base.util.DoubleKeyMap; import pcgen.cdom.base.CDOMObject; import pcgen.core.PCClass; +import pcgen.persistence.lst.LstToken; import pcgen.persistence.lst.prereq.PrerequisiteParserInterface; import pcgen.rules.persistence.token.CDOMCompatibilityToken; import pcgen.rules.persistence.token.CDOMPrimaryToken; @@ -40,9 +41,10 @@ import pcgen.rules.persistence.token.PrimitiveToken; import pcgen.rules.persistence.token.QualifierToken; import pcgen.rules.persistence.util.TokenFamily; +import pcgen.system.PluginLoader; import pcgen.util.Logging; -public class TokenLibrary +public class TokenLibrary implements PluginLoader { private static final Class<PCClass> PCCLASS_CLASS = PCClass.class; @@ -63,6 +65,50 @@ TOKEN_FAMILIES.add(TokenFamily.REV514); } + private static TokenLibrary instance = null; + + private TokenLibrary() + { + } + + public static TokenLibrary getInstance() + { + if (instance == null) + { + instance = new TokenLibrary(); + } + return instance; + } + + public void loadPlugin(Class<?> clazz) throws InstantiationException, IllegalAccessException + { + Object token = clazz.newInstance(); + if(LstToken.class.isAssignableFrom(clazz) + || PrerequisiteParserInterface.class.isAssignableFrom(clazz)) + { + addToTokenMap(token); + } + if(QualifierToken.class.isAssignableFrom(clazz)) + { + addToQualifierMap((QualifierToken<?>) token); + } + if(PrimitiveToken.class.isAssignableFrom(clazz)) + { + addToPrimitiveMap((PrimitiveToken<?>) token); + } + } + + public Class[] getPluginClasses() + { + return new Class[] + { + LstToken.class, + QualifierToken.class, + PrimitiveToken.class, + PrerequisiteParserInterface.class + }; + } + public static <T> PrimitiveToken<T> getPrimitive(Class<T> name, String tokKey) { Added: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -0,0 +1,66 @@ +/* + * Main.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Sep 1, 2009, 6:17:59 PM + */ +package pcgen.system; + +import java.util.Observable; +import java.util.Observer; +import java.util.logging.Level; +import java.util.logging.Logger; +import pcgen.core.SettingsHandler; +import pcgen.core.bonus.Bonus; +import pcgen.gui2.SplashScreen; +import pcgen.persistence.PersistenceLayerException; +import pcgen.persistence.lst.prereq.PreParserFactory; +import pcgen.rules.persistence.TokenLibrary; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class Main +{ + + /** + * @param args the command line arguments + */ + public static void main(String[] args) + { + loadPlugins(); + } + + private static void loadPlugins() + { + PluginClassLoader loader = new PluginClassLoader(SettingsHandler.getGmgenPluginDir()); + loader.addPluginLoader(TokenLibrary.getInstance()); + loader.addPluginLoader(Bonus.getInstance()); + try + { + loader.addPluginLoader(PreParserFactory.getInstance()); + } + catch (PersistenceLayerException ex) + { + Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); + } + loader.addObserver(new SplashScreen()); + loader.loadPlugins(); + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -67,12 +67,14 @@ public void loadPlugins() { + setChanged(); notifyObservers(jarURLs.size()); while (!jarURLs.isEmpty()) { URL url = jarURLs.poll(); try { + setChanged(); notifyObservers(url); processURL(url); } @@ -82,6 +84,7 @@ null, ex); } } + setChanged(); notifyObservers("DONE"); } @@ -103,7 +106,7 @@ { processClass(Class.forName(name, true, loader)); } - catch (ClassNotFoundException ex) + catch (Exception ex) { Logger.getLogger(PluginClassLoader.class.getName()).log(Level.SEVERE, null, ex); } @@ -117,6 +120,7 @@ int modifiers = clazz.getModifiers(); if (!Modifier.isInterface(modifiers) && !Modifier.isAbstract(modifiers)) { + boolean loaded = false; for (Class<?> key : loaderMap.getKeySet()) { if (key != null && !key.isAssignableFrom(clazz)) @@ -125,22 +129,26 @@ } for (PluginLoader loader : loaderMap.getListFor(key)) { + try { loader.loadPlugin(clazz); } - catch (InstantiationException ex) + catch (Exception ex) { Logger.getLogger(PluginClassLoader.class.getName()).log(Level.SEVERE, null, ex); } - catch (IllegalAccessException ex) + finally { - Logger.getLogger(PluginClassLoader.class.getName()).log(Level.SEVERE, null, - ex); + loaded = true; } } } + if(!loaded) + { + Logging.log(Logging.WARNING, "PluginLoader not found for "+clazz); + } } } Modified: sandbox/cdomui/code/src/java/pcgen/system/PluginLoader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PluginLoader.java 2009-09-02 01:38:15 UTC (rev 10383) +++ sandbox/cdomui/code/src/java/pcgen/system/PluginLoader.java 2009-09-02 08:10:52 UTC (rev 10384) @@ -20,8 +20,6 @@ */ package pcgen.system; -import java.util.List; - /** * * @author Connor Petty <cpm...@us...> @@ -29,8 +27,8 @@ public interface PluginLoader { - public void loadPlugin(Class<?> clazz) throws InstantiationException, IllegalAccessException; + public void loadPlugin(Class<?> clazz) throws Exception; - public List<Class<?>> getPluginClasses(); + public Class[] getPluginClasses(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-09 03:29:43
|
Revision: 11771 http://pcgen.svn.sourceforge.net/pcgen/?rev=11771&view=rev Author: cpmeister Date: 2010-05-09 03:29:36 +0000 (Sun, 09 May 2010) Log Message: ----------- Fixed AbilitiesInfoTab bug Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/DataSet.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java Modified: sandbox/cdomui/code/src/java/pcgen/core/DataSet.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/DataSet.java 2010-05-09 03:18:45 UTC (rev 11770) +++ sandbox/cdomui/code/src/java/pcgen/core/DataSet.java 2010-05-09 03:29:36 UTC (rev 11771) @@ -97,11 +97,11 @@ { templates.addElement(template); } - for (PCAlignment alignment : Globals.getContext().ref.getConstructedCDOMObjects(PCAlignment.class)) + for (PCAlignment alignment : context.ref.getConstructedCDOMObjects(PCAlignment.class)) { alignments.addElement(alignment); } - for (PCStat stat : Globals.getContext().ref.getConstructedCDOMObjects(PCStat.class)) + for (PCStat stat : context.ref.getConstructedCDOMObjects(PCStat.class)) { stats.addElement(stat); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2010-05-09 03:18:45 UTC (rev 11770) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2010-05-09 03:29:36 UTC (rev 11771) @@ -180,7 +180,14 @@ { addTab(tabInfo.title); } - setSelectedIndex(indexOfTab(selectedTitle)); + if (indexOfTab(selectedTitle) == getSelectedIndex()) + { + abilityTab.restoreState(typeMap.get(selectedTitle).tabData); + } + else + { + setSelectedIndex(indexOfTab(selectedTitle)); + } addChangeListener(this); isInstalled = true; } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2010-05-09 03:18:45 UTC (rev 11770) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilityChooserTab.java 2010-05-09 03:29:36 UTC (rev 11771) @@ -20,7 +20,6 @@ */ package pcgen.gui2.tabs; -import javax.swing.event.ListDataEvent; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; @@ -322,14 +321,13 @@ implements FilterableTreeViewModel<AbilityFacade> { - private final DefaultListFacade<AbilityFacade> dataModel; private final CharacterFacade character; private AbilityCategoryFacade category; public AvailableAbilityTreeViewModel(CharacterFacade character) { - this.dataModel = new DefaultListFacade<AbilityFacade>(); this.character = character; + this.setDelegate(new DefaultListFacade<AbilityFacade>()); } public List<? extends TreeView<AbilityFacade>> getTreeViews() @@ -349,7 +347,7 @@ public ListFacade<AbilityFacade> getDataModel() { - return dataModel; + return this; } public void setAbilityCatagory(AbilityCategoryFacade category) @@ -446,21 +444,6 @@ return Object.class; } - public void intervalAdded(ListDataEvent e) - { - fireTableRowsInserted(e.getIndex0(), e.getIndex1()); - } - - public void intervalRemoved(ListDataEvent e) - { - fireTableRowsDeleted(e.getIndex0(), e.getIndex1()); - } - - public void contentsChanged(ListDataEvent e) - { - fireTableRowsUpdated(e.getIndex0(), e.getIndex1()); - } - public void elementAdded(ListEvent e) { fireTableRowsInserted(e.getIndex(), e.getIndex()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2010-05-21 06:01:48
|
Revision: 11918 http://pcgen.svn.sourceforge.net/pcgen/?rev=11918&view=rev Author: jdempsey Date: 2010-05-21 06:01:42 +0000 (Fri, 21 May 2010) Log Message: ----------- Remove getFilename and setFilename. Migrate dependent code to getFileRef Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-05-21 01:44:30 UTC (rev 11917) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-05-21 06:01:42 UTC (rev 11918) @@ -168,16 +168,6 @@ */ public void setFile(File file); - /** - * @deprecated This has been depricated in favor of <code>getFileRef</code> - */ - public ReferenceFacade<String> getFileName(); - - /** - * @deprecated This has been depricated in favor of <code>setFile</code> - */ - public void setFileName(String fileName); - public ReferenceFacade<DeityFacade> getDeityRef(); public void setDeity(DeityFacade deity); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-05-21 01:44:30 UTC (rev 11917) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-05-21 06:01:42 UTC (rev 11918) @@ -232,13 +232,13 @@ { if (currentCharacterRef.getReference() != null) { - currentCharacterRef.getReference().getFileName().removeReferenceListener(filenameListener); + currentCharacterRef.getReference().getFileRef().removeReferenceListener(filenameListener); } currentCharacterRef.setReference(character); updateTitle(); - if (character != null && character.getFileName() != null) + if (character != null && character.getFileRef() != null) { - character.getFileName().addReferenceListener(filenameListener); + character.getFileRef().addReferenceListener(filenameListener); } } @@ -323,15 +323,20 @@ private void updateTitle() { StringBuffer title = new StringBuffer(); + File characterFile = null; String characterFileName = null; String sourceName = null; if (currentCharacterRef != null && currentCharacterRef.getReference() != null) { - characterFileName = currentCharacterRef.getReference().getFileName().getReference(); - if (characterFileName == null || characterFileName.length() == 0) + characterFile = currentCharacterRef.getReference().getFileRef().getReference(); + if (characterFile == null || characterFile.getName() == null || characterFile.getName().length()==0) { characterFileName = LanguageBundle.getString("in_unsaved_char"); } + else + { + characterFileName = characterFile.getName(); + } } if (currentSourceSelection != null && currentSourceSelection.getReference() != null) { @@ -681,13 +686,13 @@ * The Class <code>FilenameListener</code> is used to update the frame title each time the * current character's file name is changed. */ - private class FilenameListener implements ReferenceListener<String> + private class FilenameListener implements ReferenceListener<File> { /* (non-Javadoc) * @see pcgen.core.facade.event.ReferenceListener#referenceChanged(pcgen.core.facade.event.ReferenceEvent) */ - public void referenceChanged(ReferenceEvent<String> e) + public void referenceChanged(ReferenceEvent<File> e) { PCGenFrame.this.updateTitle(); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-05-21 01:44:30 UTC (rev 11917) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-05-21 06:01:42 UTC (rev 11918) @@ -90,7 +90,6 @@ private DefaultReferenceFacade<DeityFacade> deity; private DefaultReferenceFacade<String> tabName; private DefaultReferenceFacade<String> name; - private DefaultReferenceFacade<String> fileName; private PlayerCharacter theCharacter; private DefaultReferenceFacade<EquipmentSetFacade> equipSet; private DefaultListFacade<SimpleFacade> languages; @@ -142,7 +141,6 @@ tabName = new DefaultReferenceFacade<String>(pc.getTabName()); name = new DefaultReferenceFacade<String>(pc.getName()); - fileName = new DefaultReferenceFacade<String>(pc.getFileName()); alignment = new DefaultReferenceFacade<AlignmentFacade>(); race = new DefaultReferenceFacade<RaceFacade>(); deity = new DefaultReferenceFacade<DeityFacade>(); @@ -576,14 +574,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.CharacterFacade#getFileName() - */ - public ReferenceFacade<String> getFileName() - { - return fileName; - } - - /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#setEquipmentSet(pcgen.core.facade.EquipmentSetFacade) */ public void setEquipmentSet(EquipmentSetFacade set) @@ -591,15 +581,6 @@ equipSet.setReference(set); } - /* (non-Javadoc) - * @see pcgen.core.facade.CharacterFacade#setFileName(java.lang.String) - */ - public void setFileName(String fileName) - { - this.fileName.setReference(fileName); - theCharacter.setFileName(fileName); - } - public ListFacade<SimpleFacade> getLanguages() { return languages; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-30 06:45:18
|
Revision: 12016 http://pcgen.svn.sourceforge.net/pcgen/?rev=12016&view=rev Author: cpmeister Date: 2010-05-30 06:45:12 +0000 (Sun, 30 May 2010) Log Message: ----------- Added ok/cancel dialog option to UIDelegate Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java 2010-05-30 06:34:05 UTC (rev 12015) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java 2010-05-30 06:45:12 UTC (rev 12016) @@ -46,13 +46,21 @@ Boolean maybeShowWarningPrompt(String title, String message, String checkBoxText, String contextProp); /** - * + * Displays a yes/no dialog * @param title the title for the dialog box * @param message the message to display * @return true if user clicked Yes, false otherwise */ boolean showWarningPrompt(String title, String message); + /** + * Displays an ok/cancel dialog + * @param title the title for the dialog box + * @param message the message to display + * @return true if user clicked Ok, false otherwise + */ + boolean showWarningConfirm(String title, String message); + void showErrorMessage(String title, String message); void showInfoMessage(String title, String message); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-05-30 06:34:05 UTC (rev 12015) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-05-30 06:45:12 UTC (rev 12016) @@ -536,6 +536,12 @@ JOptionPane.showMessageDialog(this, message, title, JOptionPane.INFORMATION_MESSAGE); } + public boolean showWarningConfirm(String title, String message) + { + int ret = JOptionPane.showConfirmDialog(this, message, title, JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); + return ret == JOptionPane.OK_OPTION; + } + /* * This thread does all work of loading sources that the user * has selected. After the sources are loaded the thread then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-05-31 03:55:01
|
Revision: 12027 http://pcgen.svn.sourceforge.net/pcgen/?rev=12027&view=rev Author: cpmeister Date: 2010-05-31 03:54:54 +0000 (Mon, 31 May 2010) Log Message: ----------- First pass of the level up info dialog Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java 2010-05-31 02:38:15 UTC (rev 12026) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/UIDelegate.java 2010-05-31 03:54:54 UTC (rev 12027) @@ -65,4 +65,13 @@ void showInfoMessage(String title, String message); + /** + * This displays a dialog containing a summary of character changes + * that occured after levels were added to the character.<br> + * This should be called after relevant levels have been added to the + * given character. + * @param character the character that leveled up + * @param oldLevel the level of the character before the levelup + */ + void showLevelUpInfo(CharacterFacade character, int oldLevel); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-05-31 02:38:15 UTC (rev 12026) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-05-31 03:54:54 UTC (rev 12027) @@ -54,10 +54,13 @@ import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; import javax.swing.KeyStroke; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; +import javax.swing.table.DefaultTableModel; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.lobobrowser.html.HtmlRendererContext; @@ -66,6 +69,7 @@ import pcgen.core.Globals; import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.CharacterLevelFacade; import pcgen.core.facade.DataSetFacade; import pcgen.core.facade.DefaultReferenceFacade; import pcgen.core.facade.ReferenceFacade; @@ -75,6 +79,7 @@ import pcgen.core.facade.event.ListListener; import pcgen.core.facade.event.ReferenceEvent; import pcgen.core.facade.event.ReferenceListener; +import pcgen.core.facade.util.ListFacade; import pcgen.gui2.dialog.AboutDialog; import pcgen.gui2.dialog.TipOfTheDay; import pcgen.gui2.sources.SourceSelectionDialog; @@ -545,6 +550,34 @@ return ret == JOptionPane.OK_OPTION; } + public void showLevelUpInfo(CharacterFacade character, int oldLevel) + { + ListFacade<CharacterLevelFacade> levels = character.getLevels(); + //level-class-hp gained-hp rolled-skill points-abilities? + Object[][] data = new Object[levels.getSize() - oldLevel][5]; + for (int i = oldLevel; i < levels.getSize(); i++) + { + CharacterLevelFacade level = levels.getElementAt(i); + Object[] dataRow = data[i - oldLevel]; + dataRow[0] = i + 1; + dataRow[1] = level.getSelectedClass(); + dataRow[2] = level.getHPGained(); + dataRow[3] = level.getHPRolled(); + dataRow[4] = level.getGainedSkillPoints(); + } + Object[] columns = new Object[] + { + "Level", + "Class", + "Gained HP", + "Rolled HP", + "Skill Points" + }; + DefaultTableModel model= new DefaultTableModel(data, columns); + JScrollPane pane = new JScrollPane(new JTable(model)); + JOptionPane.showMessageDialog(this, pane); + } + /* * This thread does all work of loading sources that the user * has selected. After the sources are loaded the thread then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2010-06-14 02:36:44
|
Revision: 12155 http://pcgen.svn.sourceforge.net/pcgen/?rev=12155&view=rev Author: jdempsey Date: 2010-06-14 02:36:37 +0000 (Mon, 14 Jun 2010) Log Message: ----------- New summary tab - Complete scores table implementation - Implement point buy system for stats - Display scores total and point buy info below scores table Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/InfoPaneHandler.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/StatTableModel.java sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle.properties Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-06-13 06:34:07 UTC (rev 12154) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-06-14 02:36:37 UTC (rev 12155) @@ -60,14 +60,56 @@ public void setGender(GenderFacade gender); - public ReferenceFacade<Integer> getScoreTotalRef(StatFacade stat); + /** + * @param stat The stat to retrieve the base for + * @return A reference to the base score for the stat + */ + public ReferenceFacade<Integer> getScoreBaseRef(StatFacade stat); + /** + * @param stat The stat to retrieve the mod total for + * @return The modifier for the stat total + */ public int getModTotal(StatFacade stat); + /** + * @param stat The stat to retrieve the base score of + * @return The base (user set) score for the stat + */ public int getScoreBase(StatFacade stat); + /** + * Update the base score of the stat. + * @param stat The stat to be set. + * @param score The new base score. + */ public void setScoreBase(StatFacade stat, int score); + /** + * Retrieve the display string for the score total. This may be a + * non-number if the stat is a non-ability (e.g. ghost constitution) + * or if the game mode has named stat values (see the STATROLLTEXT + * game mode token). + * + * @param stat The stat to be retrieved + * @return The display string for the score total + */ + public String getScoreTotalString(StatFacade stat); + + /** + * @param stat The stat to retrieve the racial bonus of. + * @return The racial bonus to the stat score. + */ + public int getScoreRaceBonus(StatFacade stat); + + /** + * Retrieve the bonus to the stat score from sources other than the + * character's race. e.g. templates, abilities. Also called the misc bonus. + * @param stat The stat to retrieve the other bonus of. + * @return The misc bonus to the stat score + */ + public int getScoreOtherBonus(StatFacade stat); + public void addAbility(AbilityCategoryFacade category, AbilityFacade ability); @@ -279,4 +321,14 @@ * @return A reference to the age category of the character. */ public ReferenceFacade<SimpleFacade> getAgeCategoryRef(); + + /** + * @return A reference to the label text for the character's stats total + */ + public ReferenceFacade<String> getStatTotalLabelTextRef(); + + /** + * @return A reference to the text for the character's stats total + */ + public ReferenceFacade<String> getStatTotalTextRef(); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2010-06-13 06:34:07 UTC (rev 12154) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2010-06-14 02:36:37 UTC (rev 12155) @@ -48,6 +48,7 @@ import pcgen.core.PCStat; import pcgen.core.PlayerCharacter; import pcgen.core.Race; +import pcgen.core.RollingMethods; import pcgen.core.RuleConstants; import pcgen.core.SettingsHandler; import pcgen.core.SimpleFacadeImpl; @@ -134,6 +135,8 @@ private DefaultReferenceFacade<SimpleFacade> ageCategory; private DefaultListFacade<SimpleFacade> ageCategoryList; private DefaultReferenceFacade<String> poolPointText; + private DefaultReferenceFacade<String> statTotalLabelText; + private DefaultReferenceFacade<String> statTotalText; /** * Create a new mock character. The character will be blank with no race, @@ -206,8 +209,13 @@ updateAgeCategoryForAge(); currentXP = new DefaultReferenceFacade<Integer>(pc.getXP()); xpForNextlevel = new DefaultReferenceFacade<Integer>(pc.minXPForNextECL()); + + statTotalLabelText = new DefaultReferenceFacade<String>(); + statTotalText = new DefaultReferenceFacade<String>(); charLevelsFacade = new CharacterLevelsFacadeImpl(pc, delegate); + + updateScorePurchasePool(false); } private void refreshLanguageList() @@ -772,11 +780,10 @@ */ public int getModTotal(StatFacade stat) { - Integer score = getScoreTotalRef(stat).getReference(); - if (score != null) + if (stat instanceof PCStat && !theCharacter.isNonAbility((PCStat) stat)) { - //TODO: Shouldn't this be a function of the stat facade rather than hardcoded? - return (int) (Math.floor(score / 2) - 5); + return Integer.valueOf(StatAnalysis.getStatModFor(theCharacter, + (PCStat) stat)); } return 0; } @@ -784,28 +791,94 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getScoreTotalRef(pcgen.core.facade.StatFacade) */ - public ReferenceFacade<Integer> getScoreTotalRef(StatFacade stat) + public ReferenceFacade<Integer> getScoreBaseRef(StatFacade stat) { DefaultReferenceFacade<Integer> score = statScoreMap.get(stat); if (score == null) { - score = new DefaultReferenceFacade<Integer>(0); + score = + new DefaultReferenceFacade<Integer>(StatAnalysis + .getTotalStatFor(theCharacter, (PCStat) stat)); statScoreMap.put(stat, score); } return score; } - /** - * TODO: implement this properly - * @param stat - * @return + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getScoreBase(pcgen.core.facade.StatFacade) */ public int getScoreBase(StatFacade stat) { - return getScoreTotalRef(stat).getReference(); + if (!(stat instanceof PCStat)) + { + return 0; + } + return StatAnalysis.getBaseStatFor(theCharacter, (PCStat) stat); } /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getScoreTotalString(pcgen.core.facade.StatFacade) + */ + public String getScoreTotalString(StatFacade stat) + { + if (!(stat instanceof PCStat)) + { + return ""; + } + if (theCharacter.isNonAbility((PCStat) stat)) + { + return "*"; //$NON-NLS-1$ + } + + return SettingsHandler.getGame().getStatDisplayText( + StatAnalysis.getTotalStatFor(theCharacter, (PCStat) stat)); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getScoreRaceBonus(pcgen.core.facade.StatFacade) + */ + public int getScoreRaceBonus(StatFacade stat) + { + if (!(stat instanceof PCStat)) + { + return 0; + } + PCStat activeStat = (PCStat) stat; + if (theCharacter.isNonAbility(activeStat)) + { + return 0; + } + + //return Integer.valueOf(currentStatAnalysis.getTotalStatFor(aStat) - currentStatAnalysis.getBaseStatFor(aStat)); + int rBonus = + (int) theCharacter.getRaceBonusTo("STAT", activeStat.getAbb()); //$NON-NLS-1$ + + return rBonus; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getScoreOtherBonus(pcgen.core.facade.StatFacade) + */ + public int getScoreOtherBonus(StatFacade stat) + { + if (!(stat instanceof PCStat)) + { + return 0; + } + PCStat activeStat = (PCStat) stat; + if (theCharacter.isNonAbility(activeStat)) + { + return 0; + } + + //return Integer.valueOf(currentStatAnalysis.getTotalStatFor(aStat) - currentStatAnalysis.getBaseStatFor(aStat)); + int iRace = + (int) theCharacter.getRaceBonusTo("STAT", activeStat.getAbb()); //$NON-NLS-1$ + return StatAnalysis.getTotalStatFor(theCharacter, activeStat) + - StatAnalysis.getBaseStatFor(theCharacter, activeStat) - iRace; + } + + /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#setScoreBase(pcgen.core.facade.StatFacade, int) */ public void setScoreBase(StatFacade stat, int score) @@ -940,6 +1013,7 @@ theCharacter.setAssoc(pcStat, AssociationKey.STAT_SCORE, score); theCharacter.saveStatIncrease(pcStat, score - baseScore, false); + updateScorePurchasePool(true); } /** @@ -1385,4 +1459,125 @@ { return ageCategory; } + + + /** + * This method updates the purchase point pool and the stat total text. The + * stat total text will be updated whether we are in purchase mode or not. + * displayed + * @param checkPurchasePoints boolean true if the pool should be checked + * for available points before doing the update. + */ + private void updateScorePurchasePool(boolean checkPurchasePoints) + { + int usedStatPool = getUsedStatPool(theCharacter); + + // This is a problem for races with non-0 level + // adjustment so only count PC & NPC levels, not + // monster levels XXX + int pcPlayerLevels = theCharacter.getTotalPlayerLevels(); + + int maxDiddleLevel; + if (poolPointText != null) + { + maxDiddleLevel = 0; + } + else + { + maxDiddleLevel = 1; + } + + // Let them dink on stats at 0th or 1st PC levels + if (pcPlayerLevels <= maxDiddleLevel) + { + theCharacter.setCostPool(usedStatPool); + theCharacter.setPoolAmount(usedStatPool); + } + + // Handle purchase mode for stats + if (SettingsHandler.getGame().isPurchaseStatMode()) + { + final String bString = Integer.toString(theCharacter.getCostPool()); + // int availablePool = SettingsHandler.getPurchaseModeMethodPool(); + int availablePool = theCharacter.getPointBuyPoints(); + if (availablePool < 0) + { + availablePool = + RollingMethods.roll(SettingsHandler.getGame() + .getPurchaseModeMethodPoolFormula()); + theCharacter.setPointBuyPoints(availablePool); + } + + if (availablePool != 0) + { + statTotalLabelText.setReference(LanguageBundle + .getFormattedString("in_sumStatCost", SettingsHandler //$NON-NLS-1$ + .getGame().getPurchaseModeMethodName())); + statTotalText.setReference(LanguageBundle.getFormattedString( + "in_sumStatPurchaseDisplay", bString, availablePool)); //$NON-NLS-1$ + } + + if (checkPurchasePoints && (availablePool != 0)) + { + // + // Let the user know that they've exceeded their goal, but allow them to keep going if they want... + // Only do this at 1st level or lower + // + if ((pcPlayerLevels <= maxDiddleLevel) && (availablePool > 0) + && (usedStatPool > availablePool)) + { + delegate.showInfoMessage(Constants.s_APPNAME, + LanguageBundle.getFormattedString( + "in_sumYouHaveExcededTheMaximumPointsOf",//$NON-NLS-1$ + String.valueOf(availablePool), SettingsHandler + .getGame().getPurchaseModeMethodName())); + } + } + } + + // Non-purchase mode for stats + if (!SettingsHandler.getGame().isPurchaseStatMode() + || (theCharacter.getPointBuyPoints() == 0)) + { + int statTotal = 0; + int modTotal = 0; + + for (PCStat aStat : theCharacter.getUnmodifiableStatList()) + { + if (theCharacter.isNonAbility(aStat) || !aStat.getSafe(ObjectKey.ROLLED)) + { + continue; + } + + final int currentStat = StatAnalysis.getBaseStatFor(theCharacter, aStat); + final int currentMod = StatAnalysis.getStatModFor(theCharacter, aStat); + + statTotal += currentStat; + modTotal += currentMod; + } + + statTotalLabelText.setReference(LanguageBundle + .getString("in_sumStatTotalLabel")); //$NON-NLS-1$ + statTotalText.setReference(LanguageBundle.getFormattedString( + "in_sumStatTotal", Integer.toString(statTotal), Integer + .toString(modTotal))); + } + } + + + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getStatTotalLabelTextRef() + */ + public ReferenceFacade<String> getStatTotalLabelTextRef() + { + return statTotalLabelText; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getStatTotalTextRef() + */ + public ReferenceFacade<String> getStatTotalTextRef() + { + return statTotalText; + } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-13 06:34:07 UTC (rev 12154) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-06-14 02:36:37 UTC (rev 12155) @@ -119,6 +119,8 @@ private final JButton addLevelsButton; private final JButton removeLevelsButton; private final JEditorPane infoPane; + private final JLabel statTotalLabel; + private final JLabel statTotal; public SummaryInfoTab() { @@ -152,6 +154,8 @@ this.expaddButton = createSignButton(Sign.Plus); this.expsubtractButton = createSignButton(Sign.Minus); this.infoPane = new JEditorPane(); + this.statTotalLabel = new JLabel(); + this.statTotal = new JLabel(); initComponents(); } @@ -216,6 +220,16 @@ pane.setBorder(BorderFactory.createEmptyBorder()); middlePanel.add(pane, gbc); + JPanel statTotalPanel = new JPanel(); + statTotalPanel.add(statTotalLabel); + Font f = statTotal.getFont(); + statTotal.setFont(f.deriveFont(f.getStyle() ^ Font.BOLD)); + statTotalPanel.add(statTotal); + gbc.weighty = 0; + gbc.fill = GridBagConstraints.NONE; + middlePanel.add(statTotalPanel, gbc); + + InfoPaneHandler.initializeEditorPane(infoPane); gbc = new GridBagConstraints(); @@ -537,6 +551,9 @@ }; classModel = new FacadeComboBoxModel<ClassFacade>(); + LabelHandler statTotalLabelHandler = new LabelHandler(statTotalLabel); + LabelHandler statTotalHandler = new LabelHandler(statTotal); + DataSetFacade dataset = character.getDataSet(); //initialize alignment model alignmentModel.setListFacade(dataset.getAlignments()); @@ -554,6 +571,9 @@ //initialize gender and hands models handsModel.setReference(character.getHandedRef()); ageCatModel.setReference(character.getAgeCategoryRef()); + + statTotalLabelHandler.setReference(character.getStatTotalLabelTextRef()); + statTotalHandler.setReference(character.getStatTotalTextRef()); ReferenceFacade<RaceFacade> raceRef = character.getRaceRef(); ReferenceListener<Object> raceListener = new ReferenceListener<Object>() @@ -603,6 +623,8 @@ stateTable.put(Models.NextLevelHandler, new NextLevelHandler(character)); stateTable.put(Models.ExpAddAction, new ExpAddAction(character)); stateTable.put(Models.ExpSubtractAction, new ExpSubtractAction(character)); + stateTable.put(Models.StatTotalLabelHandler, statTotalLabelHandler); + stateTable.put(Models.StatTotalHandler, statTotalHandler); return stateTable; } @@ -646,7 +668,9 @@ ExpHandler, ExpAddAction, ExpSubtractAction, - NextLevelHandler + NextLevelHandler, + StatTotalLabelHandler, + StatTotalHandler } public void storeState(Hashtable<Object, Object> state) @@ -661,6 +685,8 @@ ((AgeHandler) state.get(Models.AgeHandler)).uninstall(); ((ExpHandler) state.get(Models.ExpHandler)).uninstall(); ((NextLevelHandler) state.get(Models.NextLevelHandler)).uninstall(); + ((LabelHandler) state.get(Models.StatTotalLabelHandler)).uninstall(); + ((LabelHandler) state.get(Models.StatTotalHandler)).uninstall(); } public void restoreState(Hashtable<?, ?> state) @@ -675,6 +701,8 @@ ((AgeHandler) state.get(Models.AgeHandler)).install(); ((ExpHandler) state.get(Models.ExpHandler)).install(); ((NextLevelHandler) state.get(Models.NextLevelHandler)).install(); + ((LabelHandler) state.get(Models.StatTotalLabelHandler)).install(); + ((LabelHandler) state.get(Models.StatTotalHandler)).install(); genderComboBox.setModel((ComboBoxModel) state.get(Models.GenderComboBoxModel)); handsComboBox.setModel((ComboBoxModel) state.get(Models.HandsComboBoxModel)); @@ -1204,4 +1232,73 @@ } + + /** + * The Class <code>LabelHandler</code> manages the text displayed in a + * JLabel field for a character. The text will be updated each time a + * reference is updated. The handler also knows how to react to install and + * uninstall actions when the displayed character changes. + */ + private class LabelHandler + implements ReferenceListener<String> + { + + private ReferenceFacade<String> reference = null; + private JLabel label; + + /** + * Create a new label handler. + * @param label The label to be managed + */ + public LabelHandler(JLabel label) + { + this.label = label; + } + + /** + * @param ref The new reference to be watched + */ + public void setReference(ReferenceFacade<String> ref) + { + if (reference != null) + { + reference.removeReferenceListener(this); + } + reference = ref; + if (reference != null) + { + reference.addReferenceListener(this); + label.setText(reference.getReference()); + } + } + + /** + * Attach the handler to the on-screen field. e.g. When the character + * is made active. + */ + public void install() + { + reference.addReferenceListener(this); + label.setText(reference.getReference()); + } + + /** + * Detach the handler from the on-screen field. e.g. when the + * character is no longer being displayed. + */ + public void uninstall() + { + reference.removeReferenceListener(this); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.event.ReferenceListener#referenceChanged(pcgen.core.facade.event.ReferenceEvent) + */ + public void referenceChanged(ReferenceEvent<String> e) + { + label.setText(e.getNewReference()); + } + + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/InfoPaneHandler.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/InfoPaneHandler.java 2010-06-13 06:34:07 UTC (rev 12154) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/InfoPaneHandler.java 2010-06-14 02:36:37 UTC (rev 12155) @@ -117,7 +117,7 @@ character.getAlignmentRef().addReferenceListener(this); for (StatFacade stat : character.getDataSet().getStats()) { - character.getScoreTotalRef(stat).addReferenceListener(this); + character.getScoreBaseRef(stat).addReferenceListener(this); } character.getLevels().addListListener(this); character.getHandedRef().addReferenceListener(this); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/StatTableModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/StatTableModel.java 2010-06-13 06:34:07 UTC (rev 12154) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/StatTableModel.java 2010-06-14 02:36:37 UTC (rev 12155) @@ -57,6 +57,13 @@ private static final Font tableFont = new Font("Verdana", Font.BOLD, 14); private static final Font headerFont = new Font("Verdana", Font.BOLD, 12); + + private static final int FINAL_ABILITY_SCORE = 0; + private static final int ABILITY_MOD = 1; + private static final int EDITABLE_SCORE = 2; + private static final int RACE_MOD = 3; + private static final int MISC_MOD = 4; + private CharacterFacade character; private ListFacade<StatFacade> stats; private StatRenderer renderer = new StatRenderer(); @@ -170,13 +177,13 @@ @Override public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex == 2; + return columnIndex == EDITABLE_SCORE; } @Override public Class<?> getColumnClass(int columnIndex) { - if (columnIndex == 0) + if (columnIndex == FINAL_ABILITY_SCORE) { return Object.class; } @@ -188,18 +195,21 @@ return 5; } - //TODO: finish this public Object getValueAt(int rowIndex, int columnIndex) { StatFacade stat = stats.getElementAt(rowIndex); switch (columnIndex) { - case 0: + case FINAL_ABILITY_SCORE: return stat; - case 1: + case ABILITY_MOD: return character.getModTotal(stat); - case 2: + case EDITABLE_SCORE: return character.getScoreBase(stat); + case RACE_MOD: + return character.getScoreRaceBonus(stat); + case MISC_MOD: + return character.getScoreOtherBonus(stat); default: return 0; } @@ -288,7 +298,7 @@ StatFacade stat = (StatFacade) value; //TODO: this should really call stat.toString() statLabel.setText(stat.getName()); - scoreLabel.setText(character.getScoreTotalRef(stat).getReference().toString()); + scoreLabel.setText(character.getScoreTotalString(stat)); return this; } Modified: sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle.properties =================================================================== --- sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle.properties 2010-06-13 06:34:07 UTC (rev 12154) +++ sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle.properties 2010-06-14 02:36:37 UTC (rev 12155) @@ -2851,7 +2851,7 @@ in_sumHDToAddRem=Hit Dice to Add/Remove: #added 21Feb04 - yet to be translated -in_sumModifierTotal=\ \ Modifier Total: +in_sumModifierTotal=\ \ Mod:\ #0 upper bound in_sumCannotRaiseStatAbovePurchase=Cannot raise stat above {0} in Purchase Mode @@ -2899,12 +2899,16 @@ in_sumStat=Stat -in_sumStatCost=Stat Cost: +in_sumStatCost=''{0}'' Points Spent: +in_sumStatPurchaseDisplay= {0} of {1} + in_sumStatStartedHigher=That ability started higher than that at this level. -in_sumStatTotal=Stat Total: +in_sumStatTotalLabel=Final Totals:\ +in_sumStatTotal=Ability: {0} Mod: {1} + in_sumExClassesWarning=This will change the following class(es) to ex-class(es): in_sumTotal=Total This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-07-04 23:40:15
|
Revision: 12443 http://pcgen.svn.sourceforge.net/pcgen/?rev=12443&view=rev Author: cpmeister Date: 2010-07-04 23:40:09 +0000 (Sun, 04 Jul 2010) Log Message: ----------- Updated ClassLevelTableModel to use CharacterLevelsFacade. Now class levels don't refresh upon level up! Your turn to fix it James :) Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelsFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterLevelsFacadeImpl.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelsFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelsFacade.java 2010-07-04 20:14:00 UTC (rev 12442) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelsFacade.java 2010-07-04 23:40:09 UTC (rev 12443) @@ -29,16 +29,10 @@ * * @author Connor Petty <cpm...@us...> */ -public interface CharacterLevelsFacade +public interface CharacterLevelsFacade extends ListFacade<CharacterLevelFacade> { /** - * - * @return a reference to this character's current level - */ - public ListFacade<CharacterLevelFacade> getLevels(); - - /** * This method handles adding and removing skill points to the character's * skills. This methods takes into acount the skill cost and spendable skill * points and will call appropriate message dialogs when an inappropriate Modified: sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-07-04 20:14:00 UTC (rev 12442) +++ sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-07-04 23:40:09 UTC (rev 12443) @@ -62,8 +62,6 @@ pane.add(loadingLabel, BorderLayout.CENTER); loadProgress.setStringPainted(true); - loadProgress.setMinimum(0); - loadProgress.setMaximum(0); pane.add(loadProgress, BorderLayout.SOUTH); Container cont = getContentPane(); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterLevelsFacadeImpl.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterLevelsFacadeImpl.java 2010-07-04 20:14:00 UTC (rev 12442) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterLevelsFacadeImpl.java 2010-07-04 23:40:09 UTC (rev 12443) @@ -28,7 +28,6 @@ import java.util.List; import java.util.Map; -import javax.swing.event.EventListenerList; import pcgen.cdom.base.Constants; import pcgen.cdom.enumeration.AssociationKey; @@ -50,7 +49,6 @@ import pcgen.core.facade.SkillFacade; import pcgen.core.facade.UIDelegate; import pcgen.core.facade.util.DefaultListFacade; -import pcgen.core.facade.util.ListFacade; import pcgen.core.pclevelinfo.PCLevelInfo; import pcgen.core.utils.CoreUtility; import pcgen.gui.GuiConstants; @@ -70,15 +68,13 @@ * @author James Dempsey <jde...@us...> * @version $Revision$ */ -public class CharacterLevelsFacadeImpl implements CharacterLevelsFacade +public class CharacterLevelsFacadeImpl extends DefaultListFacade<CharacterLevelFacade> implements CharacterLevelsFacade { private PlayerCharacter theCharacter; private UIDelegate delegate; - private EventListenerList listenerList = new EventListenerList(); private List<ClassFacade> classLevels; private DefaultReferenceFacade<Integer> totalLevels; - private DefaultListFacade<CharacterLevelFacade> levelList; /** * Create a new CharacterLevelsFacadeImpl instance for a character. @@ -98,8 +94,7 @@ private void initForCharacter() { classLevels = new ArrayList<ClassFacade>(); - levelList = new DefaultListFacade<CharacterLevelFacade>(); - totalLevels = new DefaultReferenceFacade<Integer>(levelList.getSize()); + totalLevels = new DefaultReferenceFacade<Integer>(getSize()); refreshClassList(); } @@ -121,7 +116,7 @@ } classLevels.clear(); - levelList.clearContents(); + clearContents(); int currLevel = 1; for (PCLevelInfo lvlInfo : levelInfo) { @@ -141,7 +136,7 @@ CharacterLevelFacadeImpl levelFI = new CharacterLevelFacadeImpl(); levelFI.setCharacterLevel(currLevel++); - levelList.addElement(levelFI); + addElement(levelFI); //PCClassLevel classLevel = currClass.getClassLevel(clsLvlNum); } @@ -149,14 +144,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.CharacterLevelsFacade#getLevelRef() - */ - public ListFacade<CharacterLevelFacade> getLevels() - { - return levelList; - } - - /* (non-Javadoc) * @see pcgen.core.facade.CharacterLevelsFacade#getClassTaken(int) */ public ClassFacade getClassTaken(CharacterLevelFacade level) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java 2010-07-04 20:14:00 UTC (rev 12442) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java 2010-07-04 23:40:09 UTC (rev 12443) @@ -20,7 +20,6 @@ */ package pcgen.gui2.tabs.summary; -import pcgen.gui2.tabs.Utilities; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -45,18 +44,21 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumnModel; import pcgen.core.facade.CharacterFacade; -import pcgen.core.facade.CharacterLevelFacade; +import pcgen.core.facade.CharacterLevelsFacade; +import pcgen.core.facade.CharacterLevelsFacade.CharacterLevelEvent; +import pcgen.core.facade.CharacterLevelsFacade.ClassListener; +import pcgen.core.facade.CharacterLevelsFacade.HitPointListener; import pcgen.core.facade.ClassFacade; import pcgen.core.facade.event.ListEvent; import pcgen.core.facade.event.ListListener; -import pcgen.core.facade.util.ListFacade; +import pcgen.gui2.tabs.Utilities; import pcgen.gui2.util.SignIcon.Sign; public class ClassLevelTableModel extends AbstractTableModel - implements ListListener, ItemListener, PropertyChangeListener + implements ListListener, ItemListener, PropertyChangeListener, HitPointListener, ClassListener { - private ListFacade<CharacterLevelFacade> levels; + private CharacterLevelsFacade levels; private Map<ClassFacade, Integer> finalLevelMap; private CharacterFacade character; private Editor editor = new Editor(); @@ -67,10 +69,12 @@ { super(); this.character = character; - this.levels = character.getLevels(); + this.levels = character.getCharacterLevelsFacade(); this.finalLevelMap = new HashMap<ClassFacade, Integer>(); resetLevelMap(); levels.addListListener(this); + levels.addClassListener(this); + levels.addHitPointListener(this); } public static void initializeTable(JTable classLevelTable) @@ -112,7 +116,7 @@ finalLevelMap.clear(); for (int i = levels.getSize() - 1; i >= 0; i--) { - ClassFacade c = levels.getElementAt(i).getSelectedClass(); + ClassFacade c = levels.getClassTaken(levels.getElementAt(i)); if (!finalLevelMap.containsKey(c)) { finalLevelMap.put(c, i); @@ -160,9 +164,9 @@ case 0: return rowIndex + 1; case 1: - return levels.getElementAt(rowIndex).getHPGained(); + return levels.getHPGained(levels.getElementAt(rowIndex)); case 2: - ClassFacade c = levels.getElementAt(rowIndex).getSelectedClass(); + ClassFacade c = levels.getClassTaken(levels.getElementAt(rowIndex)); if (finalLevelMap.get(c) == rowIndex) { return c.toString() + " (" + character.getClassLevel(c) + ")"; @@ -177,7 +181,7 @@ { editor.cancelCellEditing(); int i = e.getIndex(); - ClassFacade c = levels.getElementAt(i).getSelectedClass(); + ClassFacade c = levels.getClassTaken(levels.getElementAt(i)); finalLevelMap.put(c, i); fireTableRowsInserted(i, i); } @@ -209,6 +213,23 @@ fireTableRowsUpdated(levels.getSize(), levels.getSize()); } + public void classChanged(CharacterLevelEvent e) + { + levelChanged(e); + } + + public void hitPointsChanged(CharacterLevelEvent e) + { + levelChanged(e); + } + + private void levelChanged(CharacterLevelEvent e) + { + int firstRow = e.getBaseLevelIndex(); + int lastRow = e.affectsHigherLevels() ? levels.getSize() - 1 : firstRow; + fireTableRowsUpdated(firstRow, lastRow); + } + private class Editor extends AbstractCellEditor implements TableCellEditor, TableCellRenderer, ActionListener { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-07-26 03:19:01
|
Revision: 12697 http://pcgen.svn.sourceforge.net/pcgen/?rev=12697&view=rev Author: cpmeister Date: 2010-07-26 03:18:54 +0000 (Mon, 26 Jul 2010) Log Message: ----------- first pass of EquipmentSetFacade Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillCostTableModel.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillTreeViewModel.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentLocFacade.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-07-26 02:55:43 UTC (rev 12696) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-07-26 03:18:54 UTC (rev 12697) @@ -22,7 +22,6 @@ import java.io.BufferedWriter; import java.io.File; -import java.util.List; import javax.swing.undo.UndoManager; @@ -149,12 +148,32 @@ public void setRemainingSelection(AbilityCategoryFacade category, int remaining); + /** + * + * @return + * @deprecated + */ public int getSkillTotal(SkillFacade skill, CharacterLevelFacade level); + /** + * + * @return + * @deprecated + */ public int getSkillModifier(SkillFacade skill, CharacterLevelFacade level); + /** + * + * @return + * @deprecated + */ public float getSkillRanks(SkillFacade skill, CharacterLevelFacade level); + /** + * + * @return + * @deprecated + */ public float getMaxRanks(SkillCost cost, CharacterLevelFacade level); public ListFacade<EquipmentSetFacade> getEquipmentSets(); @@ -162,13 +181,16 @@ public ReferenceFacade<EquipmentSetFacade> getEquipmentSetRef(); public void setEquipmentSet(EquipmentSetFacade set); +// +// public EquipmentSetFacade createEquipmentSet(String name); +// +// public void deleteEquipmentSet(EquipmentSetFacade set); public boolean isQualifiedFor(ClassFacade c); public boolean isAutomatic(LanguageFacade language); - public boolean isBonus(LanguageFacade language); - + //public boolean isBonus(LanguageFacade language); /** * Note: this returns both the bonuses that the character * has applied as well as the ones that haven't been applied. @@ -377,4 +399,5 @@ * @return true If the current stat generation method supports randomly rolling stats. */ public boolean isStatRollEnabled(); + } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2010-07-26 02:55:43 UTC (rev 12696) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2010-07-26 03:18:54 UTC (rev 12697) @@ -30,23 +30,23 @@ public interface DataSetFacade { - public ListFacade<AbilityFacade> getAbilities(AbilityCategoryFacade category); + public ListFacade<AbilityFacade> getAbilities(AbilityCategoryFacade category); - public ListFacade<AbilityCategoryFacade> getAbilityCategories(); + public ListFacade<AbilityCategoryFacade> getAbilityCategories(); - public ListFacade<SkillFacade> getSkills(); + public ListFacade<SkillFacade> getSkills(); - public ListFacade<RaceFacade> getRaces(); + public ListFacade<RaceFacade> getRaces(); - public ListFacade<ClassFacade> getClasses(); + public ListFacade<ClassFacade> getClasses(); public ListFacade<DeityFacade> getDeities(); - - public ListFacade<TemplateFacade> getTemplates(); + public ListFacade<TemplateFacade> getTemplates(); + public ListFacade<CampaignFacade> getCampaigns(); - public GameModeFacade getGameMode(); + public GameModeFacade getGameMode(); public ListFacade<AlignmentFacade> getAlignments(); @@ -55,4 +55,9 @@ public ListFacade<StatGenerationFacade> getStatGenerators(); public SkillFacade getSpeakLanguageSkill(); +// +// public ListFacade<EquipmentFacade> getEquipment(); +// +// public ListFacade<EquipmentLocFacade> getEquipmentLocations(); + } Added: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentLocFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentLocFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentLocFacade.java 2010-07-26 03:18:54 UTC (rev 12697) @@ -0,0 +1,30 @@ +/* + * EquipmentLocFacade.java + * Copyright 2010 Connor Petty <cpm...@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 + * + * Created on Jul 21, 2010, 10:53:18 PM + */ + +package pcgen.core.facade; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class EquipmentLocFacade { + +} Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2010-07-26 02:55:43 UTC (rev 12696) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2010-07-26 03:18:54 UTC (rev 12697) @@ -20,6 +20,9 @@ */ package pcgen.core.facade; +import java.util.List; +import pcgen.core.facade.util.ListFacade; + /** * * @author Connor Petty <cpm...@us...> @@ -27,6 +30,20 @@ public interface EquipmentSetFacade { - public String toString(); + public boolean isFull(EquipmentLocFacade loc); + public boolean isContainer(EquipmentFacade equipment); + + void addEquipment(EquipmentLocFacade loc, EquipmentFacade equipment); + + void removeEquipment(EquipmentLocFacade loc, EquipmentFacade equipment); + + void addEquipment(EquipmentFacade container, EquipmentFacade equipment); + + void removeEquipment(EquipmentFacade container, EquipmentFacade equipment); + + public String getName(); + + public void setName(String name); + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillCostTableModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillCostTableModel.java 2010-07-26 02:55:43 UTC (rev 12696) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillCostTableModel.java 2010-07-26 03:18:54 UTC (rev 12697) @@ -117,7 +117,7 @@ case 1: return levels.getRankCost(level, cost); case 2: - return character.getMaxRanks(cost, level); + return levels.getMaxRanks(level, cost); default: throw new IndexOutOfBoundsException(); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillTreeViewModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillTreeViewModel.java 2010-07-26 02:55:43 UTC (rev 12696) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/skill/SkillTreeViewModel.java 2010-07-26 03:18:54 UTC (rev 12697) @@ -78,9 +78,18 @@ public void install(FilteredTreeViewTable table) { - //TODO + if (table.getSelectionModel() != selectionModel) + { + throw new IllegalArgumentException(); + } + this.table = table; } + public void uninstall() + { + table = null; + } + public ListFacade<? extends TreeView<SkillFacade>> getTreeViews() { return treeviews; @@ -105,9 +114,9 @@ { CharacterLevelFacade level = levels.getElementAt(selectionModel.getMinSelectionIndex()); return Arrays.asList( - character.getSkillTotal(obj, level), - character.getSkillModifier(obj, level), - character.getSkillRanks(obj, level), + levels.getSkillTotal(level, obj), + levels.getSkillModifier(level, obj), + levels.getSkillRanks(level, obj), levels.getSkillCost(level, obj), obj.getSource()); } @@ -119,8 +128,9 @@ public void valueChanged(ListSelectionEvent e) { - if (e.getValueIsAdjusting()) + if (e.getValueIsAdjusting() && table != null) { + table.refreshModelData(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2011-01-14 20:27:40
|
Revision: 14360 http://pcgen.svn.sourceforge.net/pcgen/?rev=14360&view=rev Author: cpmeister Date: 2011-01-14 20:27:33 +0000 (Fri, 14 Jan 2011) Log Message: ----------- Equipment Tab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/EquipInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/InventoryInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentModel.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java sandbox/cdomui/code/src/java/pcgen/gui2/util/treeview/TreeViewTableModel.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentFacade.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -26,5 +26,6 @@ * @author Connor Petty <cpm...@us...> */ public interface EquipmentFacade { - + String getType(); + float getWeight(); } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -20,7 +20,10 @@ */ package pcgen.core.facade; +import java.util.Arrays; import java.util.List; +import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.ObjectUtils; import pcgen.core.facade.util.ListFacade; /** @@ -30,17 +33,20 @@ public interface EquipmentSetFacade { - public boolean isFull(EquipmentLocFacade loc); - public boolean isContainer(EquipmentFacade equipment); - void addEquipment(EquipPath path, EquipmentFacade equipment); + void addEquipment(EquipPath path, EquipmentFacade equipment, int quantity); - void removeEquipment(EquipPath path, EquipmentFacade equipment); + void removeEquipment(EquipPath path, EquipmentFacade equipment, int quantity); ListFacade<EquipPath> getPaths(); + int getQuantity(EquipPath path); + String getLocation(EquipPath path); + + public boolean isFull(EquipPath loc); + public String getName(); public void setName(String name); @@ -48,7 +54,7 @@ public static interface EquipmentTreeListener { - public void equipmentAdded(EquipmentTreeEvent e); + public void quantityChanged(EquipmentTreeEvent e); } @@ -86,6 +92,36 @@ return path; } + public EquipPath getParent() + { + EquipmentFacade[] equips = new EquipmentFacade[path.length - 1]; + for (int x = 0; x < path.length - 1; x++) + { + equips[x] = path[x]; + } + return new EquipPath(root, equips); + } + + @Override + public boolean equals(Object obj) + { + if (obj instanceof EquipPath) + { + EquipPath epath = (EquipPath) obj; + return ObjectUtils.equals(root, epath.root) && ArrayUtils.isEquals(path, epath.path); + } + return false; + } + + @Override + public int hashCode() + { + int hash = 3; + hash = 83 * hash + (this.root != null ? this.root.hashCode() : 0); + hash = 83 * hash + Arrays.deepHashCode(this.path); + return hash; + } + } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -113,7 +113,7 @@ private List<ClassFacade> pcClasses; private DefaultListFacade<TempBonusFacade> appliedTempBonuses; private DefaultReferenceFacade<AlignmentFacade> alignment; - //private DefaultGenericComboBoxModel<EquipmentSetFacade> equipmentSets; + private DefaultListFacade<EquipmentSetFacade> equipmentSets; private DefaultReferenceFacade<GenderFacade> gender; private DefaultListFacade<CharacterLevelFacade> pcClassLevels; private Map<StatFacade, DefaultReferenceFacade<Integer>> statScoreMap; @@ -194,7 +194,7 @@ languages = new DefaultListFacade<LanguageFacade>(); numBonusLang = new DefaultReferenceFacade<Integer>(0); numSkillLang = new DefaultReferenceFacade<Integer>(0); - //equipmentSets = new DefaultGenericComboBoxModel<EquipmentSetFacade>(); + equipmentSets = new DefaultListFacade<EquipmentSetFacade>(); statScoreMap = new HashMap<StatFacade, DefaultReferenceFacade<Integer>>(); abilityListMap = new HashMap<AbilityCategoryFacade, DefaultListFacade<AbilityFacade>>(); remainingAbilitySelections = new HashMap<AbilityCategoryFacade, Integer>(); @@ -226,7 +226,7 @@ currentXP = new DefaultReferenceFacade<Integer>(pc.getXP()); xpForNextlevel = new DefaultReferenceFacade<Integer>(pc.minXPForNextECL()); hpRef = new DefaultReferenceFacade<Integer>(0); - + equipSet = new DefaultReferenceFacade<EquipmentSetFacade>(); GameMode game = (GameMode) dataSet.getGameMode(); rollMethodRef = new DefaultReferenceFacade<Integer>(game.getRollMethod()); @@ -840,8 +840,7 @@ */ public ListFacade<EquipmentSetFacade> getEquipmentSets() { - //return equipmentSets; - return null; + return equipmentSets; } /* (non-Javadoc) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/EquipInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/EquipInfoTab.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/EquipInfoTab.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -33,8 +33,10 @@ import pcgen.gui2.filter2.FilterBar; import pcgen.gui2.filter2.FilteredTreeViewTable; import pcgen.gui2.filter2.SearchFilterPanel; +import pcgen.gui2.tabs.equip.EquipmentModel; import pcgen.gui2.tools.FlippingSplitPane; import pcgen.gui2.tools.Icons; +import pcgen.gui2.util.JTreeTable; /** * @@ -44,6 +46,7 @@ { private final FilteredTreeViewTable equipmentTable; + private final JTreeTable equipmentSetTable; private final JButton equipButton; private final JComboBox equipSetBox; private final JButton newSetButton; @@ -56,6 +59,7 @@ public EquipInfoTab() { this.equipmentTable = new FilteredTreeViewTable(); + this.equipmentSetTable = new JTreeTable(); this.equipButton = new JButton(); this.equipSetBox = new JComboBox(); this.newSetButton = new JButton(); @@ -69,8 +73,7 @@ private void initComponents() { - setOrientation(VERTICAL_SPLIT); - + setOrientation(HORIZONTAL_SPLIT); JPanel panel = new JPanel(new BorderLayout()); FilterBar bar = new FilterBar(); @@ -79,6 +82,7 @@ panel.add(new JScrollPane(equipmentTable), BorderLayout.CENTER); JPanel ebar = new JPanel(new FlowLayout(FlowLayout.TRAILING)); + equipButton.setText("Equip"); ebar.add(equipButton); ebar.add(new JLabel(Icons.Forward16.getImageIcon())); panel.add(ebar, BorderLayout.SOUTH); @@ -94,26 +98,34 @@ equipPane.add(box); box = Box.createHorizontalBox(); + exportTemplateButton.setText("Export Template"); box.add(exportTemplateButton); + viewBrowserButton.setText("View in Browser"); box.add(viewBrowserButton); + exportFileButton.setText("Export to File"); box.add(exportFileButton); + setNoteButton.setText("Set Note"); box.add(setNoteButton); equipPane.add(box); + + equipPane.add(new JScrollPane(equipmentSetTable)); + setRightComponent(equipPane); } public Hashtable<Object, Object> createModels(CharacterFacade character) { - throw new UnsupportedOperationException("Not supported yet."); + Hashtable<Object, Object> state = new Hashtable<Object, Object>(); + state.put(EquipmentModel.class, new EquipmentModel(character)); + return state; } public void restoreModels(Hashtable<?, ?> state) { - throw new UnsupportedOperationException("Not supported yet."); + ((EquipmentModel) state.get(EquipmentModel.class)).install(equipmentSetTable); } public void storeModels(Hashtable<Object, Object> state) { - throw new UnsupportedOperationException("Not supported yet."); } public TabTitle getTabTitle() Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/InventoryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/InventoryInfoTab.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/InventoryInfoTab.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -22,6 +22,11 @@ */ package pcgen.gui2.tabs; +import java.util.Hashtable; +import pcgen.core.facade.CharacterFacade; +import pcgen.gui.panes.TabbedPane; +import pcgen.gui2.tools.FlippingSplitPane; + /** * The Class <code>InventoryInfoTab</code> is a placeholder for the yet * to be implemented Inventory tab. @@ -32,12 +37,38 @@ * @author James Dempsey <jde...@us...> * @version $Revision$ */ -public class InventoryInfoTab extends UnimplementedTab +public class InventoryInfoTab extends TabbedPane implements CharacterInfoTab { - @Override - String getTabName() + + private final TabTitle tabTitle = new TabTitle("Inventory"); + private final EquipInfoTab equipTab = new EquipInfoTab(); + + public InventoryInfoTab() { - return "Inventory"; + addTab("Equipment", equipTab); } + public Hashtable<Object, Object> createModels(CharacterFacade character) + { + Hashtable<Object, Object> table = new Hashtable<Object, Object>(); + table.put(equipTab, equipTab.createModels(character)); + return table; + } + + public void restoreModels(Hashtable<?, ?> state) + { + equipTab.restoreModels((Hashtable<?, ?>) state.get(equipTab)); + } + + public void storeModels(Hashtable<Object, Object> state) + { + Hashtable<Object, Object> table = (Hashtable<Object, Object>) state.get(equipTab); + state.put(equipTab, table); + } + + public TabTitle getTabTitle() + { + return tabTitle; + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentModel.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentModel.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -22,24 +22,48 @@ import java.awt.Component; import java.awt.Font; +import java.util.HashMap; +import java.util.Map; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.TreeCellRenderer; -import pcgen.core.facade.EquipmentFacade; +import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.EquipmentLocFacade; +import pcgen.core.facade.EquipmentSetFacade; +import pcgen.core.facade.event.ListEvent; +import pcgen.core.facade.event.ListListener; +import pcgen.core.facade.event.ReferenceEvent; +import pcgen.core.facade.event.ReferenceListener; +import pcgen.core.facade.util.ListFacade; import pcgen.gui2.util.JTreeTable; /** * * @author Connor Petty <cpm...@us...> */ -public class EquipmentModel +public class EquipmentModel implements ListListener<EquipmentSetFacade>, ReferenceListener<EquipmentSetFacade> { private static Font largeFont = new Font("Verdana", Font.BOLD, 20); private static Font normFont = new Font("Verdana", Font.PLAIN, 12); + private final CharacterFacade character; private TreeCellRenderer treeRenderer = new TreeRenderer(); + private Map<EquipmentSetFacade, EquipmentTreeTableModel> equipsetMap; + private ListFacade<EquipmentSetFacade> equipsets; private JTreeTable treeTable; + public EquipmentModel(CharacterFacade character) + { + this.character = character; + + equipsetMap = new HashMap<EquipmentSetFacade, EquipmentTreeTableModel>(); + equipsets = character.getEquipmentSets(); + for (EquipmentSetFacade equipset : equipsets) + { + equipsetMap.put(equipset, new EquipmentTreeTableModel(equipset)); + } + } + public static void initializeTreeTable(JTreeTable treeTable) { treeTable.getTree().setRowHeight(0); @@ -49,8 +73,33 @@ { this.treeTable = treeTable; treeTable.setTreeCellRenderer(treeRenderer); + treeTable.setTreeTableModel(equipsetMap.get(character.getEquipmentSetRef().getReference())); } + public void elementAdded(ListEvent<EquipmentSetFacade> e) + { + equipsetMap.put(e.getElement(), new EquipmentTreeTableModel(e.getElement())); + } + + public void elementRemoved(ListEvent<EquipmentSetFacade> e) + { + equipsetMap.remove(e.getElement()); + } + + public void elementsChanged(ListEvent<EquipmentSetFacade> e) + { + equipsetMap.clear(); + for (EquipmentSetFacade equipset : equipsets) + { + equipsetMap.put(equipset, new EquipmentTreeTableModel(equipset)); + } + } + + public void referenceChanged(ReferenceEvent<EquipmentSetFacade> e) + { + treeTable.setTreeTableModel(equipsetMap.get(e.getNewReference())); + } + private class TreeRenderer extends DefaultTreeCellRenderer { @@ -58,7 +107,7 @@ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); - if (value instanceof EquipmentFacade) + if (value instanceof EquipmentLocFacade) { setFont(largeFont); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -20,129 +20,134 @@ */ package pcgen.gui2.tabs.equip; -import java.util.Comparator; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; -import javax.swing.event.EventListenerList; -import javax.swing.event.TreeModelListener; -import javax.swing.tree.TreePath; -import pcgen.core.facade.CharacterFacade; +import org.apache.commons.lang.ArrayUtils; import pcgen.core.facade.EquipmentFacade; import pcgen.core.facade.EquipmentLocFacade; import pcgen.core.facade.EquipmentSetFacade; +import pcgen.core.facade.EquipmentSetFacade.EquipPath; +import pcgen.core.facade.EquipmentSetFacade.EquipmentTreeEvent; +import pcgen.core.facade.EquipmentSetFacade.EquipmentTreeListener; import pcgen.core.facade.event.ListEvent; import pcgen.core.facade.event.ListListener; -import pcgen.gui2.util.treetable.SortableTreeTableModel; -import pcgen.gui2.util.treetable.TreeTableNode; +import pcgen.gui2.util.treeview.DataView; +import pcgen.gui2.util.treeview.DataViewColumn; +import pcgen.gui2.util.treeview.DefaultDataViewColumn; +import pcgen.gui2.util.treeview.TreeView; +import pcgen.gui2.util.treeview.TreeViewPath; +import pcgen.gui2.util.treeview.TreeViewTableModel; /** * * @author Connor Petty <cpm...@us...> */ -public class EquipmentTreeTableModel implements SortableTreeTableModel, ListListener<EquipmentLocFacade> +public class EquipmentTreeTableModel extends TreeViewTableModel<EquipPath> + implements DataView<EquipPath>, TreeView<EquipPath>, EquipmentTreeListener { - private EventListenerList listenerList = new EventListenerList(); - private Object root = new Object(); - private CharacterFacade character; - private EquipmentSetFacade equipSet; - - public boolean isCellEditable(Object node, int column) + private final ListListener<EquipmentLocFacade> locListener = new ListListener<EquipmentLocFacade>() { - return false; - } - public Class<?> getColumnClass(int column) - { - switch (column) + public void elementAdded(ListEvent<EquipmentLocFacade> e) { - case 0: - return TreeTableNode.class; - case 3: - case 4: - return Integer.class; - default: - return String.class; + throw new UnsupportedOperationException("Not supported yet."); } - } - public int getColumnCount() - { - return 5; - } + public void elementRemoved(ListEvent<EquipmentLocFacade> e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - public String getColumnName(int column) - { - throw new UnsupportedOperationException("Not supported yet."); - } + public void elementsChanged(ListEvent<EquipmentLocFacade> e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - public void setValueAt(Object aValue, Object node, int column) + }; + private final ListListener<EquipPath> equipListener = new ListListener<EquipPath>() { - throw new UnsupportedOperationException("Not supported yet."); - } - public Object getValueAt(Object node, int column) - { - throw new UnsupportedOperationException("Not supported yet."); - } + public void elementAdded(ListEvent<EquipPath> e) + { + dataMap.put(e.getElement(), getData(e.getElement())); + viewMap.clear(); + setSelectedTreeView(selectedView); + } - public Object getRoot() - { - return root; - } + public void elementRemoved(ListEvent<EquipPath> e) + { + dataMap.remove(e.getElement()); + viewMap.clear(); + setSelectedTreeView(selectedView); + } - public void elementAdded(ListEvent<EquipmentLocFacade> e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + public void elementsChanged(ListEvent<EquipPath> e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - public void elementRemoved(ListEvent<EquipmentLocFacade> e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + }; + private EquipmentSetFacade equipSet; - public void elementsChanged(ListEvent<EquipmentLocFacade> e) + public EquipmentTreeTableModel(EquipmentSetFacade equipSet) { - throw new UnsupportedOperationException("Not supported yet."); + this.dataview = this; + this.datacolumns = getDataColumns(); + this.equipSet = equipSet; + equipSet.getPaths().addListListener(equipListener); + setSelectedTreeView(this); } - public Object getChild(Object parent, int index) + public List<?> getData(EquipPath ePath) { - throw new UnsupportedOperationException("Not supported yet."); + EquipmentFacade[] path = ePath.getPath(); + if (ArrayUtils.isEmpty(path)) + { + return Arrays.asList("Type", "Location", "Qty", "Wgt"); + } + EquipmentFacade last = path[path.length - 1]; + return Arrays.asList(last.getType(), equipSet.getLocation(ePath), equipSet.getQuantity(ePath), last.getWeight()); } - public int getChildCount(Object parent) + public List<? extends DataViewColumn> getDataColumns() { - throw new UnsupportedOperationException("Not supported yet."); + List<DataViewColumn> columns = new ArrayList<DataViewColumn>(); + columns.add(new DefaultDataViewColumn("Type", String.class)); + columns.add(new DefaultDataViewColumn("Location", String.class)); + columns.add(new DefaultDataViewColumn("Qty", Integer.class)); + columns.add(new DefaultDataViewColumn("Wgt", Float.class)); + return columns; } - public boolean isLeaf(Object node) + public void quantityChanged(EquipmentTreeEvent e) { - return node instanceof EquipmentFacade && !equipSet.isContainer((EquipmentFacade)node); + dataMap.put(e.getPath(), getData(e.getPath())); + viewMap.clear(); + setSelectedTreeView(this); } - public void valueForPathChanged(TreePath path, Object newValue) + public String getViewName() { - throw new UnsupportedOperationException("Not supported yet."); + return ""; } - public int getIndexOfChild(Object parent, Object child) + public List<TreeViewPath<EquipPath>> getPaths(EquipPath pobj) { - throw new UnsupportedOperationException("Not supported yet."); + EquipPath[] path = new EquipPath[pobj.getPath().length + 1]; + EquipmentFacade[] equipPath = pobj.getPath(); + for (int i = 0; i < path.length; i++) + { + EquipmentFacade[] equips = new EquipmentFacade[i]; + for (int x = 0; x < i; x++) + { + equips[x] = equipPath[x]; + } + path[i] = new EquipPath(pobj.getRoot(), equips); + } + return Collections.singletonList(new TreeViewPath<EquipPath>(path)); } - public void addTreeModelListener(TreeModelListener l) - { - listenerList.add(TreeModelListener.class, l); - } - - public void removeTreeModelListener(TreeModelListener l) - { - listenerList.remove(TreeModelListener.class, l); - } - - public void sortModel(Comparator<List<?>> comparator) - { - throw new UnsupportedOperationException("Not supported yet."); - } - } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/util/treeview/TreeViewTableModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/treeview/TreeViewTableModel.java 2011-01-14 05:22:17 UTC (rev 14359) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/treeview/TreeViewTableModel.java 2011-01-14 20:27:33 UTC (rev 14360) @@ -44,10 +44,32 @@ * @author Connor Petty <mis...@gm...> */ public class TreeViewTableModel<E> extends AbstractTreeTableModel - implements SortableTreeTableModel, ListListener<E> + implements SortableTreeTableModel { - private final Map<TreeView<? super E>, TreeViewNode> viewMap = new HashMap<TreeView<? super E>, TreeViewNode>(); + protected final Map<TreeView<? super E>, TreeViewNode> viewMap = new HashMap<TreeView<? super E>, TreeViewNode>(); + private final ListListener<E> listListener = new ListListener<E>() + { + + public void elementAdded(ListEvent<E> e) + { + //Todo: optimize + setData(ListFacades.wrap(model)); + } + + public void elementRemoved(ListEvent<E> e) + { + //Todo: optimize + setData(ListFacades.wrap(model)); + } + + public void elementsChanged(ListEvent<E> e) + { + //Todo: optimize + setData(ListFacades.wrap(model)); + } + + }; private final DataViewColumn namecolumn = new DataViewColumn() { @@ -73,11 +95,15 @@ }; protected final Map<E, List<?>> dataMap = new HashMap<E, List<?>>(); - protected final List<? extends DataViewColumn> datacolumns; - protected final DataView<E> dataview; - private ListFacade<E> model = null; - private TreeView<? super E> selectedView = null; + protected List<? extends DataViewColumn> datacolumns; + protected DataView<E> dataview; + protected ListFacade<E> model = null; + protected TreeView<? super E> selectedView = null; + protected TreeViewTableModel() + { + } + public TreeViewTableModel(DataView<E> dataView) { this.dataview = dataView; @@ -94,10 +120,10 @@ { if (this.model != null) { - this.model.removeListListener(this); + this.model.removeListListener(listListener); } this.model = model; - model.addListListener(this); + model.addListListener(listListener); setData(ListFacades.wrap(model)); } @@ -193,24 +219,6 @@ reload(); } - public void elementAdded(ListEvent<E> e) - { - //Todo: optimize - setData(ListFacades.wrap(model)); - } - - public void elementRemoved(ListEvent<E> e) - { - //Todo: optimize - setData(ListFacades.wrap(model)); - } - - public void elementsChanged(ListEvent<E> e) - { - //Todo: optimize - setData(ListFacades.wrap(model)); - } - private final class TreeViewNode extends JTree.DynamicUtilTreeNode implements SortableTreeTableNode { @@ -223,7 +231,7 @@ } private TreeViewNode(int level, Object name, - Vector<TreeViewPath<? super E>> paths) + Vector<TreeViewPath<? super E>> paths) { super(name, paths); this.level = level; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2011-01-19 01:32:42
|
Revision: 14400 http://pcgen.svn.sourceforge.net/pcgen/?rev=14400&view=rev Author: cpmeister Date: 2011-01-19 01:32:35 +0000 (Wed, 19 Jan 2011) Log Message: ----------- Look and Feels now change properly Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/PreferencesDialog.java sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java sandbox/cdomui/code/src/java/pcgen/gui2/prefs/LookAndFeelPanel.java sandbox/cdomui/code/src/java/pcgen/gui2/prefs/PCGenPrefsPanel.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2011-01-18 20:28:18 UTC (rev 14399) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2011-01-19 01:32:35 UTC (rev 14400) @@ -25,6 +25,7 @@ import java.util.EnumMap; import java.util.Map; +import javax.swing.SwingUtilities; import org.apache.commons.lang.SystemUtils; import pcgen.core.Globals; @@ -49,6 +50,7 @@ public static void refreshUITree() { + SwingUtilities.updateComponentTreeUI(pcgenFrame); //TODO } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/PreferencesDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/PreferencesDialog.java 2011-01-18 20:28:18 UTC (rev 14399) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/PreferencesDialog.java 2011-01-19 01:32:35 UTC (rev 14400) @@ -496,9 +496,19 @@ private void cancelButtonActionPerformed() { + resetOptionValues(); + setVisible(false); this.dispose(); } + + private void resetOptionValues() + { + for (PCGenPrefsPanel prefsPanel : panelList) + { + prefsPanel.resetOptionValues(); + } + } private void okButtonActionPerformed() { Modified: sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java 2011-01-18 20:28:18 UTC (rev 14399) +++ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java 2011-01-19 01:32:35 UTC (rev 14400) @@ -20,8 +20,8 @@ */ package pcgen.gui2.plaf; +import java.awt.Window; import java.awt.event.ActionEvent; -import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import java.util.Arrays; @@ -30,13 +30,14 @@ import java.util.Map; import javax.swing.AbstractAction; import javax.swing.Action; +import javax.swing.JComponent; import javax.swing.LookAndFeel; +import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UIManager.LookAndFeelInfo; import javax.swing.plaf.metal.DefaultMetalTheme; import javax.swing.plaf.metal.MetalLookAndFeel; import org.apache.commons.lang.SystemUtils; -import pcgen.gui2.PCGenUIManager; import pcgen.system.ConfigurationSettings; import pcgen.util.Logging; import pcgen.util.SkinLFResourceChecker; @@ -47,7 +48,7 @@ * @author Thomas Behr * @version $Revision: 6515 $ */ -public final class LookAndFeelManager implements PropertyChangeListener +public final class LookAndFeelManager { public static final boolean HAS_SKIN_LAF = SkinLFResourceChecker.getMissingResourceCount() == 0; @@ -157,20 +158,16 @@ UIManager.setInstalledLookAndFeels(lafInfo); } + private static String selectedLookAndFeel = null; + private static String selectedTheme = null; + private static String currentTheme = null; private static String currentLAF = null; private String oldThemePack = null; private LookAndFeelManager() { - ConfigurationSettings.getInstance().addPropertyChangeListener("selectedThemePack", this); } - public void propertyChange(PropertyChangeEvent evt) - { - //all we care about is the old value so we can fall back to it if needed - oldThemePack = (String) evt.getOldValue(); - } - // // public static LookAndFeelManager getInstance() // { @@ -184,7 +181,9 @@ { //set Java as the fallback look and feel currentLAF = "Java"; + selectedTheme = ConfigurationSettings.getSystemProperty("selectedThemePack"); String laf = ConfigurationSettings.getSystemProperty("lookAndFeel"); + if (laf == null) { laf = currentLAF; @@ -197,10 +196,67 @@ return lafHandlers; } - public static void setSelectedThemePack(String themePackPath) + public static void addThemePackListener(PropertyChangeListener listener) { - + ConfigurationSettings.getInstance().addPropertyChangeListener("selectedThemePack", listener); } + + public static String getCurrentThemePack() + { + return ConfigurationSettings.getSystemProperty("selectedThemePack"); + } + + public static String getCurrentLAF() + { + return ConfigurationSettings.getSystemProperty("lookAndFeel"); + } + + public static void setSelectedThemePack(String themePack) + { + selectedTheme = themePack; + if(currentLAF.equals("Skinned")) + { + setSkinLAF(); + } + } + + private static void setSkinLAF() + { + try + { + //path += File.separator + selectedTheme; + LookAndFeel laf = SkinManager.createSkinLAF(selectedTheme); + UIManager.setLookAndFeel(laf); + + ConfigurationSettings.setSystemProperty("lookAndFeel", "Skinned"); + ConfigurationSettings.setSystemProperty("selectedThemePack", selectedTheme); + currentTheme = selectedTheme; + currentLAF = "Skinned"; + } + catch (Exception ex) + { + if ("Skinned".equals(currentLAF)) + { + try + { + //fall back to old theme + //path += File.separator + currentTheme; + LookAndFeel laf = SkinManager.createSkinLAF(currentTheme); + UIManager.setLookAndFeel(laf); + } + catch (Exception ex1) + { + setLookAndFeel("Java"); + } + } + else + { + setLookAndFeel(currentLAF); + } + } + + } + public static void setLookAndFeel(String name) { LookAndFeelHandler handler = lafMap.get(name); @@ -210,76 +266,40 @@ return; } String className = handler.getClassName(); - try + + if (className != null) { - if (className != null) + try { UIManager.setLookAndFeel(className); // Fix colors; themes which inherit from // MetalTheme change the colors because it's a // static member of MetalTheme (!), so when you // change back & forth, colors get wonked. - final LookAndFeel laf = UIManager.getLookAndFeel(); +// final LookAndFeel laf = UIManager.getLookAndFeel(); +// if (laf instanceof MetalLookAndFeel) +// { +// MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); +// } - if (laf instanceof MetalLookAndFeel) - { - MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); - } + ConfigurationSettings.setSystemProperty("lookAndFeel", name); + currentLAF = name; } - else if (HAS_SKIN_LAF) + catch (Exception ex) { - // this must be a skin LAF - String themePack = ConfigurationSettings.getSystemProperty("selectedThemePack"); - String path = ConfigurationSettings.getThemePackDir(); - path += File.separator + themePack; - LookAndFeel laf = SkinManager.createSkinLAF(path); - UIManager.setLookAndFeel(laf); + setLookAndFeel(currentLAF); } - else - { - Logging.errorPrint("Skin LAF library is missing! Setting to default LAF"); - - return; - } - ConfigurationSettings.setSystemProperty("lookAndFeel", name); - currentLAF = name; } - catch (Exception e) + else if (HAS_SKIN_LAF) { - //roll back any property changes that happened up to this point - String oldTheme = instance.oldThemePack; - if ("Skinned".equals(name)) - { - //make this the current theme - ConfigurationSettings.setSystemProperty("selectedThemePack", oldTheme); - } - //setting the look and feel failed so fall back to the old LAF - if ("Skinned".equals(currentLAF)) - { - try - { + setSkinLAF(); + } + else + { + Logging.errorPrint("Skin LAF library is missing! Setting to default LAF"); - String path = ConfigurationSettings.getThemePackDir(); - path += File.separator + oldTheme; - - LookAndFeel laf = SkinManager.createSkinLAF(path); - UIManager.setLookAndFeel(laf); - - } - catch (Exception ex) - { - // better reset to default then - setLookAndFeel("Java"); - return; - } - } - else - { - setLookAndFeel(currentLAF); - return; - } + setLookAndFeel("Java"); } - PCGenUIManager.refreshUITree(); } public static class LookAndFeelHandler extends AbstractAction @@ -304,6 +324,9 @@ //This is the default operation String name = (String) getValue(NAME); setLookAndFeel(name); + + Window window = SwingUtilities.getWindowAncestor((JComponent) e.getSource()); + SwingUtilities.updateComponentTreeUI(window); } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/prefs/LookAndFeelPanel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/prefs/LookAndFeelPanel.java 2011-01-18 20:28:18 UTC (rev 14399) +++ sandbox/cdomui/code/src/java/pcgen/gui2/prefs/LookAndFeelPanel.java 2011-01-19 01:32:35 UTC (rev 14400) @@ -26,6 +26,7 @@ import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; +import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -38,22 +39,18 @@ import javax.swing.JLabel; import javax.swing.JRadioButton; import javax.swing.JTextField; +import javax.swing.SwingUtilities; import javax.swing.border.Border; import javax.swing.border.TitledBorder; import javax.swing.filechooser.FileFilter; -import pcgen.cdom.base.Constants; -import pcgen.core.SettingsHandler; import pcgen.core.utils.MessageType; import pcgen.core.utils.ShowMessageDelegate; -import pcgen.gui.UIFactory; -import pcgen.gui.utils.LinkableHtmlMessage; -import pcgen.gui.utils.SkinManager; import pcgen.gui.utils.Utility; +import pcgen.gui2.PCGenUIManager; import pcgen.gui2.plaf.LookAndFeelManager; +import pcgen.system.ConfigurationSettings; import pcgen.system.LanguageBundle; -import pcgen.util.Logging; -import pcgen.util.SkinLFResourceChecker; /** * The Class <code>LookAndFeelPanel</code> is responsible for @@ -84,7 +81,8 @@ private JTextField themepackLabel; private Dialog parent; private PrefsButtonListener prefsButtonHandler = new PrefsButtonListener(); - + private String oldLAF; + private String oldThemePack; /** * Instantiates a new look and feel panel. */ @@ -132,6 +130,7 @@ exclusiveGroup.add(laf[i]); } + skinnedLookFeel.addActionListener(actions[actions.length-1]); skinnedLookFeel.setText(in_skinnedLAF + ": "); Utility.setDescription(skinnedLookFeel, LanguageBundle .getString("in_Prefs_skinnedLAFTooltip")); @@ -143,7 +142,7 @@ exclusiveGroup.add(skinnedLookFeel); Utility.buildConstraints(c, 3, laf.length, 1, 1, 1, 0); - themepackLabel = new JTextField(SettingsHandler.getSkinLFThemePack()); + themepackLabel = new JTextField(LookAndFeelManager.getCurrentThemePack()); themepackLabel.setEditable(false); gridbag.setConstraints(themepackLabel, c); this.add(themepackLabel); @@ -165,17 +164,16 @@ private void selectThemePack() { JFileChooser fc = - new JFileChooser(SettingsHandler.getPcgenThemePackDir()); + new JFileChooser(ConfigurationSettings.getThemePackDir()); fc.setDialogTitle(LanguageBundle .getString("in_Prefs_chooseSkinDialogTitle")); - String theme = SettingsHandler.getSkinLFThemePack(); + String theme = LookAndFeelManager.getCurrentThemePack(); if (theme.length() > 0) { - fc.setCurrentDirectory(new File(SettingsHandler - .getSkinLFThemePack())); - fc.setSelectedFile(new File(SettingsHandler.getSkinLFThemePack())); + fc.setCurrentDirectory(new File(LookAndFeelManager.getCurrentThemePack())); + fc.setSelectedFile(new File(LookAndFeelManager.getCurrentThemePack())); } fc.addChoosableFileFilter(new ThemePackFilter()); @@ -193,24 +191,27 @@ } else { - SettingsHandler.setSkinLFThemePack(newTheme.getAbsolutePath()); - - if (SettingsHandler.getLookAndFeel() == laf.length) - { - try - { - SkinManager.applySkin(); - } - catch (Exception e) //This is what applySkin actually throws... - { - //I can't think of anything better to do. - SettingsHandler.setLookAndFeel(0); - UIFactory.setLookAndFeel(0); - ShowMessageDelegate.showMessageDialog(LanguageBundle - .getString("in_Prefs_skinSetError") - + e.toString(), in_pcgen, MessageType.ERROR); - } - } + LookAndFeelManager.setSelectedThemePack(newTheme.getAbsolutePath()); + Window window = SwingUtilities.getWindowAncestor(this); + SwingUtilities.updateComponentTreeUI(window); +// SettingsHandler.setSkinLFThemePack(newTheme.getAbsolutePath()); +// +// if (SettingsHandler.getLookAndFeel() == laf.length) +// { +// try +// { +// SkinManager.applySkin(); +// } +// catch (Exception e) //This is what applySkin actually throws... +// { +// //I can't think of anything better to do. +// SettingsHandler.setLookAndFeel(0); +// UIFactory.setLookAndFeel(0); +// ShowMessageDelegate.showMessageDialog(LanguageBundle +// .getString("in_Prefs_skinSetError") +// + e.toString(), in_pcgen, MessageType.ERROR); +// } +// } } } } @@ -255,64 +256,72 @@ @Override public void setOptionsBasedOnControls() { - int sourceIndex = 500; // XXX - magic number? + PCGenUIManager.refreshUITree(); +// int sourceIndex = 500; // XXX - magic number? +// +// for (int i = 0; i < laf.length; ++i) +// { +// if (laf[i].isSelected()) +// { +// sourceIndex = i; +// } +// } +// +// if (sourceIndex < laf.length) +// { +// if (SettingsHandler.getLookAndFeel() != sourceIndex) +// { +// SettingsHandler.setLookAndFeel(sourceIndex); +// UIFactory.setLookAndFeel(sourceIndex); +// } +// } +// else if (skinnedLookFeel.isSelected()) +// { +// if ((SkinLFResourceChecker.getMissingResourceCount() == 0)) +// { +// if (SettingsHandler.getSkinLFThemePack().length() == 0) +// { +// ShowMessageDelegate.showMessageDialog(LanguageBundle +// .getString("in_Prefs_noSkinError"), in_pcgen, +// MessageType.WARNING); +// } +// else +// { +// SettingsHandler.setLookAndFeel(laf.length); +// +// try +// { +// SkinManager.applySkin(); +// } +// catch (Exception e) //This is what applySkin actually throws... +// { +// SettingsHandler.setLookAndFeel(0); +// UIFactory.setLookAndFeel(0); +// ShowMessageDelegate.showMessageDialog(LanguageBundle +// .getString("in_Prefs_skinSetError") +// + e.toString(), in_pcgen, MessageType.ERROR); +// } +// } +// } +// else +// { +// Logging.errorPrint(SkinLFResourceChecker +// .getMissingResourceMessage()); +// +// //final String missingLibMsg = LanguageBundle.getString("MissingLibMessage").replace('|', '\n'); +// //GuiFacade.showMessageDialog(null, SkinLFResourceChecker.getMissingResourceMessage() + missingLibMsg, Constants.s_APPNAME, GuiFacade.WARNING_MESSAGE); +// new LinkableHtmlMessage(parent, SkinLFResourceChecker +// .getMissingResourceMessage(), Constants.s_APPNAME) +// .setVisible(true); +// } +// } + } - for (int i = 0; i < laf.length; ++i) - { - if (laf[i].isSelected()) - { - sourceIndex = i; - } - } - - if (sourceIndex < laf.length) - { - if (SettingsHandler.getLookAndFeel() != sourceIndex) - { - SettingsHandler.setLookAndFeel(sourceIndex); - UIFactory.setLookAndFeel(sourceIndex); - } - } - else if (skinnedLookFeel.isSelected()) - { - if ((SkinLFResourceChecker.getMissingResourceCount() == 0)) - { - if (SettingsHandler.getSkinLFThemePack().length() == 0) - { - ShowMessageDelegate.showMessageDialog(LanguageBundle - .getString("in_Prefs_noSkinError"), in_pcgen, - MessageType.WARNING); - } - else - { - SettingsHandler.setLookAndFeel(laf.length); - - try - { - SkinManager.applySkin(); - } - catch (Exception e) //This is what applySkin actually throws... - { - SettingsHandler.setLookAndFeel(0); - UIFactory.setLookAndFeel(0); - ShowMessageDelegate.showMessageDialog(LanguageBundle - .getString("in_Prefs_skinSetError") - + e.toString(), in_pcgen, MessageType.ERROR); - } - } - } - else - { - Logging.errorPrint(SkinLFResourceChecker - .getMissingResourceMessage()); - - //final String missingLibMsg = LanguageBundle.getString("MissingLibMessage").replace('|', '\n'); - //GuiFacade.showMessageDialog(null, SkinLFResourceChecker.getMissingResourceMessage() + missingLibMsg, Constants.s_APPNAME, GuiFacade.WARNING_MESSAGE); - new LinkableHtmlMessage(parent, SkinLFResourceChecker - .getMissingResourceMessage(), Constants.s_APPNAME) - .setVisible(true); - } - } + @Override + public void resetOptionValues() + { + LookAndFeelManager.setSelectedThemePack(oldThemePack); + LookAndFeelManager.setLookAndFeel(oldLAF); } /* (non-Javadoc) @@ -321,27 +330,34 @@ @Override public void applyOptionValuesToControls() { - int crossIndex = UIFactory.indexOfCrossPlatformLookAndFeel(); - - if (SettingsHandler.getLookAndFeel() < laf.length) + oldLAF = LookAndFeelManager.getCurrentLAF(); + oldThemePack = LookAndFeelManager.getCurrentThemePack(); + for (int i = 0; i < laf.length; i++) { - laf[SettingsHandler.getLookAndFeel()].setSelected(true); + laf[i].setSelected(oldLAF.equals(laf[i].getText())); } - else if (SettingsHandler.getLookAndFeel() == laf.length) - { - if ((SkinLFResourceChecker.getMissingResourceCount() == 0)) - { - skinnedLookFeel.setSelected(true); - } - else - { - laf[crossIndex].setSelected(true); - } - } - else - { - laf[crossIndex].setSelected(true); - } + skinnedLookFeel.setSelected(oldLAF.equals("Skinned")); +// int crossIndex = UIFactory.indexOfCrossPlatformLookAndFeel(); +// +// if (SettingsHandler.getLookAndFeel() < laf.length) +// { +// laf[SettingsHandler.getLookAndFeel()].setSelected(true); +// } +// else if (SettingsHandler.getLookAndFeel() == laf.length) +// { +// if ((SkinLFResourceChecker.getMissingResourceCount() == 0)) +// { +// skinnedLookFeel.setSelected(true); +// } +// else +// { +// laf[crossIndex].setSelected(true); +// } +// } +// else +// { +// laf[crossIndex].setSelected(true); +// } } private final class PrefsButtonListener implements ActionListener @@ -357,8 +373,7 @@ else if (source == themepack) { selectThemePack(); - themepackLabel.setText(String.valueOf(SettingsHandler - .getSkinLFThemePack())); + themepackLabel.setText(LookAndFeelManager.getCurrentThemePack()); } } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/prefs/PCGenPrefsPanel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/prefs/PCGenPrefsPanel.java 2011-01-18 20:28:18 UTC (rev 14399) +++ sandbox/cdomui/code/src/java/pcgen/gui2/prefs/PCGenPrefsPanel.java 2011-01-19 01:32:35 UTC (rev 14400) @@ -47,10 +47,14 @@ * Initialises the panel's values based on the current preferences. */ public abstract void applyOptionValuesToControls(); - + /** * Updates the current preferences based on the panel's values. */ public abstract void setOptionsBasedOnControls(); + public void resetOptionValues() + { + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java 2011-01-18 20:28:18 UTC (rev 14399) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/summary/ClassLevelTableModel.java 2011-01-19 01:32:35 UTC (rev 14400) @@ -37,6 +37,7 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTable; +import javax.swing.SwingConstants; import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.JTableHeader; @@ -53,6 +54,7 @@ import pcgen.core.facade.event.ListListener; import pcgen.gui2.tabs.Utilities; import pcgen.gui2.util.SignIcon.Sign; +import pcgen.gui2.util.table.TableCellUtilities; public class ClassLevelTableModel extends AbstractTableModel implements ListListener, ItemListener, PropertyChangeListener, HitPointListener, ClassListener @@ -100,6 +102,7 @@ this.classComboBox = classComboBox; table.setModel(this); table.setDefaultRenderer(Object.class, renderer); + table.setDefaultRenderer(Integer.class, new TableCellUtilities.AlignRenderer(SwingConstants.CENTER)); table.setDefaultEditor(Object.class, editor); classComboBox.addItemListener(this); classComboBox.addPropertyChangeListener("model", this); Modified: sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java 2011-01-18 20:28:18 UTC (rev 14399) +++ sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java 2011-01-19 01:32:35 UTC (rev 14400) @@ -42,8 +42,6 @@ public static final String DOCS_DIR = "docsPath"; public static final String PCC_FILES_DIR = "pccFilesPath"; public static final String CUSTOM_DATA_DIR = "customPath"; - public static final String LOOK_AND_FEEL = "lookAndFeel"; - public static final String SELECTED_SKIN = "selectedSkin"; private static ConfigurationSettings instance = null; private ConfigurationSettings() @@ -97,16 +95,6 @@ setSystemProperty(USER_COUNTRY, country); } - public static String getLookAndFeel() - { - return getSystemProperty(LOOK_AND_FEEL); - } - - public static String getSelectedSkin() - { - return getSystemProperty(SELECTED_SKIN); - } - /** * @return */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2011-01-31 10:42:51
|
Revision: 14486 http://pcgen.svn.sourceforge.net/pcgen/?rev=14486&view=rev Author: jdempsey Date: 2011-01-31 10:42:44 +0000 (Mon, 31 Jan 2011) Log Message: ----------- Gear Purchase tab * Resize gear to match character Issue#: CODE-507 Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/PurchaseInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2011-01-31 06:31:09 UTC (rev 14485) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2011-01-31 10:42:44 UTC (rev 14486) @@ -195,6 +195,17 @@ public float getWeight(EquipmentFacade equipment); + /** + * Create an equipment item sized for the character. Will return an existing + * item if a suitable one already exists, including the passed in item if it + * is already the correct size ir if the item is not the type of item that + * can be resized. + * + * @param equipment The equipment item to be resized. + * @return The item at the correct size. + */ + public EquipmentFacade getEquipmentSizedForCharacter(EquipmentFacade equipment); + public EquipmentSetFacade createEquipmentSet(String name); public void deleteEquipmentSet(EquipmentSetFacade set); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-01-31 06:31:09 UTC (rev 14485) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-01-31 10:42:44 UTC (rev 14486) @@ -41,6 +41,9 @@ import pcgen.cdom.enumeration.IntegerKey; import pcgen.cdom.enumeration.ObjectKey; import pcgen.cdom.enumeration.SkillCost; +import pcgen.cdom.enumeration.StringKey; +import pcgen.cdom.enumeration.Type; +import pcgen.cdom.reference.CDOMDirectSingleRef; import pcgen.core.Deity; import pcgen.core.Equipment; import pcgen.core.GameMode; @@ -55,6 +58,7 @@ import pcgen.core.RuleConstants; import pcgen.core.SettingsHandler; import pcgen.core.SimpleFacadeImpl; +import pcgen.core.SizeAdjustment; import pcgen.core.Skill; import pcgen.core.analysis.StatAnalysis; import pcgen.core.character.EquipSet; @@ -2149,6 +2153,75 @@ } /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getEquipmentSizedForCharacter(pcgen.core.facade.EquipmentFacade) + */ + public EquipmentFacade getEquipmentSizedForCharacter(EquipmentFacade equipment) + { + final Equipment equip = (Equipment) equipment; + final SizeAdjustment newSize = theCharacter.getSizeAdjustment(); + if (equip.getSizeAdjustment() == newSize + || !Globals.canResizeHaveEffect(theCharacter, equip, null)) + { + return equipment; + } + + final String existingKey = equip.getKeyName(); + final String newKey = + equip.createKeyForAutoResize(newSize); + + Equipment potential = Globals.getContext().ref.silentlyGetConstructedCDOMObject( + Equipment.class, newKey); + + if (newKey.equals(existingKey)) + { + return equipment; + } + + // If we've already resized this piece of equipment to this size + // on a previous occasion, just substitute that piece of equipment + // in place of the selected equipment. + if (potential != null) + { + return potential; + } + + final String newName = + equip.createNameForAutoResize(newSize); + potential = Globals.getContext().ref + .silentlyGetConstructedCDOMObject(Equipment.class, + newName); + + if (potential != null) + { + return potential; + } + + final Equipment newEq = + equip.clone(); + + if (!newEq.containsKey(ObjectKey.BASE_ITEM)) + { + newEq.put(ObjectKey.BASE_ITEM, CDOMDirectSingleRef + .getRef(equip)); + } + + newEq.setName(newName); + newEq.put(StringKey.OUTPUT_NAME, newName); + newEq.put(StringKey.KEY_NAME, newKey); + newEq.resizeItem(theCharacter, newSize); + newEq.removeType(Type.AUTO_GEN); + newEq.removeType(Type.STANDARD); + if (!newEq.isType(Constants.s_CUSTOM)) + { + newEq.addType(Type.CUSTOM); + } + + Globals.getContext().ref.importObject(newEq); + + return newEq; + } + + /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getWeight(pcgen.core.facade.EquipmentFacade) */ public float getWeight(EquipmentFacade equipment) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/PurchaseInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/PurchaseInfoTab.java 2011-01-31 06:31:09 UTC (rev 14485) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/PurchaseInfoTab.java 2011-01-31 10:42:44 UTC (rev 14486) @@ -232,7 +232,11 @@ { for (Object object : data) { - character.addPurchasedEquipment((EquipmentFacade) object, 1); + //TODO: We should allow the user an option not to resize + EquipmentFacade equip = + character + .getEquipmentSizedForCharacter((EquipmentFacade) object); + character.addPurchasedEquipment(equip, 1); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2011-02-01 03:28:46
|
Revision: 14490 http://pcgen.svn.sourceforge.net/pcgen/?rev=14490&view=rev Author: cpmeister Date: 2011-02-01 03:28:34 +0000 (Tue, 01 Feb 2011) Log Message: ----------- first pass of new EquipNode Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel2.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2011-01-31 18:33:30 UTC (rev 14489) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2011-02-01 03:28:34 UTC (rev 14490) @@ -58,19 +58,42 @@ */ public EquipmentListFacade getEquippedItems(); - void addEquipment(EquipPath path, EquipmentFacade equipment, int quantity); + public void addEquipment(EquipPath path, EquipmentFacade equipment, int quantity); - void removeEquipment(EquipPath path, int quantity); + public void removeEquipment(EquipPath path, int quantity); - void removeAllEquipment(); + public void removeAllEquipment(); - ListFacade<EquipPath> getPaths(); + /** + * + * @return + * @deprecated + */ + public ListFacade<EquipPath> getPaths(); - int getQuantity(EquipPath path); + public ListFacade<EquipNode> getNodes(); - String getLocation(EquipPath path); + /** + * + * @param path + * @return + * @deprecated + */ + public int getQuantity(EquipPath path); + public int getQuantity(EquipNode node); + /** + * + * @param path + * @return + * @deprecated + */ + public String getLocation(EquipPath path); + + public String getLocation(EquipNode node); + + /** * This method test whether a piece of equipment can be equipped * at a particular equipment path. This is not meant to check whether * the character fulfills the prerequisites of this item, but just @@ -117,6 +140,28 @@ } + public static interface EquipNode + { + + public enum NodeType + { + + BODY_SLOT, PHANTOM_SLOT, EQUIPMENT; + } + + public NodeType getNodeType(); + + public EquipNode getParent(); + + public EquipmentFacade getEquipment(); + + public BodyStructureFacade getBodyStructure(); + + } + + /** + * @deprecated + */ public static class EquipPath { Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java 2011-01-31 18:33:30 UTC (rev 14489) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java 2011-02-01 03:28:34 UTC (rev 14490) @@ -592,6 +592,21 @@ { return eqSet; } + + public ListFacade<EquipNode> getNodes() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public int getQuantity(EquipNode node) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public String getLocation(EquipNode node) + { + throw new UnsupportedOperationException("Not supported yet."); + } /** * The Class <code>EquipPathImpl</code> extends EquipPath to allow syncing Added: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel2.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel2.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel2.java 2011-02-01 03:28:34 UTC (rev 14490) @@ -0,0 +1,500 @@ +/* + * EquipmentTreeTableModel2.java + * Copyright 2011 Connor Petty <cpm...@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 + * + * Created on Jan 29, 2011, 1:57:14 PM + */ +package pcgen.gui2.tabs.equip; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import javax.swing.event.EventListenerList; +import javax.swing.event.TreeModelEvent; +import javax.swing.event.TreeModelListener; +import javax.swing.tree.TreePath; +import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.EquipmentSetFacade; +import pcgen.core.facade.EquipmentSetFacade.EquipNode; +import pcgen.core.facade.EquipmentSetFacade.EquipmentTreeEvent; +import pcgen.core.facade.EquipmentSetFacade.EquipmentTreeListener; +import pcgen.core.facade.event.ListEvent; +import pcgen.core.facade.event.ListListener; +import pcgen.core.facade.util.ListFacade; +import pcgen.gui2.util.treetable.SortableTreeTableModel; +import pcgen.gui2.util.treetable.TreeTableNode; +import pcgen.util.CollectionMaps; +import pcgen.util.Comparators; +import pcgen.util.ListMap; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class EquipmentTreeTableModel2 implements SortableTreeTableModel, ListListener<EquipNode>, EquipmentTreeListener +{ + + private EventListenerList listenerList = new EventListenerList(); + private CharacterFacade character; + private EquipmentSetFacade equipSet; + private Object root = new Object(); + private ListMap<EquipNode, EquipNode, List<EquipNode>> pathMap; + private List<EquipNode> bodySlotNodes; + private Comparator<EquipNode> pathComparator = new NodeComparator(); + + public EquipmentTreeTableModel2(CharacterFacade character, EquipmentSetFacade equipSet) + { + this.character = character; + this.equipSet = equipSet; + pathMap = CollectionMaps.createListMap(HashMap.class, ArrayList.class); + bodySlotNodes = new ArrayList<EquipNode>(); + initPathMap(); + equipSet.getNodes().addListListener(this); + } + + private void initPathMap() + { + ListFacade<EquipNode> equipNodes = equipSet.getNodes(); + for (EquipNode equipNode : equipNodes) + { + EquipNode parent = equipNode.getParent(); + while (parent != null && pathMap.containsValue(parent, equipNode)) + { + addNode(parent, equipNode); + + equipNode = parent; + parent = equipNode.getParent(); + } + if (parent == null && !bodySlotNodes.contains(equipNode)) + { + addBodyNode(equipNode); + } + } + } + + public boolean isCellEditable(Object node, int column) + { + return false; + } + + public Class<?> getColumnClass(int column) + { + switch (column) + { + case 0: + return TreeTableNode.class; + case 1: + case 2: + return String.class; + case 3: + return Integer.class; + case 4: + return Float.class; + default: + return Object.class; + } + } + + public int getColumnCount() + { + return 5; + } + + public String getColumnName(int column) + { + return null; + } + + public void setValueAt(Object aValue, Object node, int column) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public Object getValueAt(Object node, int column) + { + EquipNode pathNode = (EquipNode) node; + if (column == 0) + { + return pathNode; + } + switch (pathNode.getNodeType()) + { + case BODY_SLOT: + return Arrays.asList("Type", "Located", "Qty", "Wgt"); + case PHANTOM_SLOT: + return null; + case EQUIPMENT: + switch (column) + { + case 1: + return pathNode.getEquipment().getTypes()[0]; + case 2: + return equipSet.getLocation(pathNode); + case 3: + return equipSet.getQuantity(pathNode); + case 4: + return character.getWeight(pathNode.getEquipment()); + } + default: + return null; + } + } + + public Object getRoot() + { + return root; + } + + public Object getChild(Object parent, int index) + { + if (parent == root) + { + return bodySlotNodes.get(index); + } + else + { + return pathMap.get(parent, index); + } + } + + public int getChildCount(Object parent) + { + if (parent == root) + { + return bodySlotNodes.size(); + } + else + { + return pathMap.size((EquipNode) parent); + } + } + + public boolean isLeaf(Object node) + { + if (root == node) + { + return false; + } + return !pathMap.containsKey((EquipNode) node); + } + + public void valueForPathChanged(TreePath path, Object newValue) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public int getIndexOfChild(Object parent, Object child) + { + if (parent == root) + { + EquipNode path = (EquipNode) child; + return bodySlotNodes.indexOf(path); + } + else + { + return pathMap.indexOf(parent, child); + } + } + + public void addTreeModelListener(TreeModelListener l) + { + listenerList.add(TreeModelListener.class, l); + } + + public void removeTreeModelListener(TreeModelListener l) + { + listenerList.remove(TreeModelListener.class, l); + } + + public void sortModel(Comparator<List<?>> comparator) + { + } + + private void addBodyNode(EquipNode bodyNode) + { + int insertion_index = 1 + Collections.binarySearch(bodySlotNodes, bodyNode, pathComparator); + bodySlotNodes.add(insertion_index, bodyNode); + } + + private int addNode(EquipNode parent, EquipNode child) + { + List<EquipNode> children = pathMap.get(parent); + if (children == null) + { + children = Collections.emptyList(); + } + int insertion_index = 1 + Collections.binarySearch(children, child, pathComparator); + pathMap.add(parent, insertion_index, child); + return insertion_index; + } + + public void elementAdded(ListEvent<EquipNode> e) + { + EquipNode child = e.getElement(); + EquipNode parent = child.getParent(); + int index = addNode(parent, child); + fireTreeNodesInserted(this, getPathToRoot(parent), new int[] + { + index + }, new Object[] + { + child + }); + } + + public void elementRemoved(ListEvent<EquipNode> e) + { + EquipNode child = e.getElement(); + EquipNode parent = child.getParent(); + + List<EquipNode> children = pathMap.get(parent); + + int index = Collections.binarySearch(children, child, pathComparator); + + fireTreeNodesRemoved(this, getPathToRoot(parent), new int[] + { + index + }, new Object[] + { + child + }); + + } + + public void elementsChanged(ListEvent<EquipNode> e) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void quantityChanged(EquipmentTreeEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + private Object[] getPathToRoot(EquipNode node) + { + return getPathToRoot(node, 0); + } + + /** + * Builds the parents of node up to and including the root node, + * where the original node is the last element in the returned array. + * The length of the returned array gives the node's depth in the + * tree. + * + * @param aNode the TreeNode to get the path for + * @param depth an int giving the number of steps already taken towards + * the root (on recursive calls), used to size the returned array + * @return an array of TreeNodes giving the path from the root to the + * specified node + */ + private Object[] getPathToRoot(EquipNode aNode, int depth) + { + Object[] retNodes; + // This method recurses, traversing towards the root in order + // size the array. On the way back, it fills in the nodes, + // starting from the root and working back to the original node. + + /* Check for null, in case someone passed in a null node, or + they passed in an element that isn't rooted at root. */ + if (aNode == null) + { + if (depth == 0) + { + return null; + } + else + { + retNodes = new Object[depth + 1]; + retNodes[0] = root; + } + } + else + { + depth++; + retNodes = getPathToRoot(aNode.getParent(), depth); + retNodes[retNodes.length - depth] = aNode; + } + return retNodes; + } + + /** + * Notifies all listeners that have registered interest for + * notification on this event type. The event instance + * is lazily created using the parameters passed into + * the fire method. + * + * @param source the node being changed + * @param path the path to the root node + * @param childIndices the indices of the changed elements + * @param children the changed elements + * @see EventListenerList + */ + protected void fireTreeNodesChanged(Object source, Object[] path, + int[] childIndices, + Object[] children) + { + // Guaranteed to return a non-null array + Object[] listeners = listenerList.getListenerList(); + TreeModelEvent e = null; + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + if (listeners[i] == TreeModelListener.class) + { + // Lazily create the event: + if (e == null) + { + e = new TreeModelEvent(source, path, + childIndices, children); + } + ((TreeModelListener) listeners[i + 1]).treeNodesChanged(e); + } + } + } + + /** + * Notifies all listeners that have registered interest for + * notification on this event type. The event instance + * is lazily created using the parameters passed into + * the fire method. + * + * @param source the node where new elements are being inserted + * @param path the path to the root node + * @param childIndices the indices of the new elements + * @param children the new elements + * @see EventListenerList + */ + protected void fireTreeNodesInserted(Object source, Object[] path, + int[] childIndices, + Object[] children) + { + // Guaranteed to return a non-null array + Object[] listeners = listenerList.getListenerList(); + TreeModelEvent e = null; + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + if (listeners[i] == TreeModelListener.class) + { + // Lazily create the event: + if (e == null) + { + e = new TreeModelEvent(source, path, + childIndices, children); + } + ((TreeModelListener) listeners[i + 1]).treeNodesInserted(e); + } + } + } + + /** + * Notifies all listeners that have registered interest for + * notification on this event type. The event instance + * is lazily created using the parameters passed into + * the fire method. + * + * @param source the node where elements are being removed + * @param path the path to the root node + * @param childIndices the indices of the removed elements + * @param children the removed elements + * @see EventListenerList + */ + protected void fireTreeNodesRemoved(Object source, Object[] path, + int[] childIndices, + Object[] children) + { + // Guaranteed to return a non-null array + Object[] listeners = listenerList.getListenerList(); + TreeModelEvent e = null; + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + if (listeners[i] == TreeModelListener.class) + { + // Lazily create the event: + if (e == null) + { + e = new TreeModelEvent(source, path, + childIndices, children); + } + ((TreeModelListener) listeners[i + 1]).treeNodesRemoved(e); + } + } + } + + /** + * Notifies all listeners that have registered interest for + * notification on this event type. The event instance + * is lazily created using the parameters passed into + * the fire method. + * + * @param source the node where the tree model has changed + * @param path the path to the root node + * @param childIndices the indices of the affected elements + * @param children the affected elements + * @see EventListenerList + */ + protected void fireTreeStructureChanged(Object source, Object[] path, + int[] childIndices, + Object[] children) + { + // Guaranteed to return a non-null array + Object[] listeners = listenerList.getListenerList(); + TreeModelEvent e = null; + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + if (listeners[i] == TreeModelListener.class) + { + // Lazily create the event: + if (e == null) + { + e = new TreeModelEvent(source, path, + childIndices, children); + } + ((TreeModelListener) listeners[i + 1]).treeStructureChanged(e); + } + } + } + + private static class NodeComparator implements Comparator<EquipNode> + { + + public int compare(EquipNode o1, EquipNode o2) + { + switch (o1.getNodeType()) + { + case BODY_SLOT: + return 0; + case PHANTOM_SLOT: + case EQUIPMENT: + return Comparators.toStringComparator().compare(o1, o2); + } + return 0; + } + + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2011-02-06 23:10:44
|
Revision: 14515 http://pcgen.svn.sourceforge.net/pcgen/?rev=14515&view=rev Author: cpmeister Date: 2011-02-06 23:10:35 +0000 (Sun, 06 Feb 2011) Log Message: ----------- EquipmentSetFacade EquipPath removal and cleanup Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/RaceInfoTab.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2011-02-06 22:42:56 UTC (rev 14514) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/EquipmentSetFacade.java 2011-02-06 23:10:35 UTC (rev 14515) @@ -58,43 +58,16 @@ */ public EquipmentListFacade getEquippedItems(); - public void addEquipment(EquipPath path, EquipmentFacade equipment, int quantity); - public void addEquipment(EquipNode node, EquipmentFacade equipment, int quantity); - public void removeEquipment(EquipPath path, int quantity); - public void removeEquipment(EquipNode node, int quantity); public void removeAllEquipment(); - /** - * - * @return - * @deprecated - */ - public ListFacade<EquipPath> getPaths(); - public ListFacade<EquipNode> getNodes(); - /** - * - * @param path - * @return - * @deprecated - */ - public int getQuantity(EquipPath path); - public int getQuantity(EquipNode node); - /** - * - * @param path - * @return - * @deprecated - */ - public String getLocation(EquipPath path); - public String getLocation(EquipNode node); /** @@ -105,12 +78,10 @@ * or if the item is suited to be put in this path. The method must also take * into account that some containers accept only certain equipment * (ie. crossbows only accept bolts) - * @param path the path to the container + * @param node the node to the container * @param equipment the equipment that we want to check * @return true if the equipment can be placed in the location. */ - public boolean canEquip(EquipPath path, EquipmentFacade equipment); - public boolean canEquip(EquipNode node, EquipmentFacade equipment); public ReferenceFacade<String> getNameRef(); @@ -131,35 +102,14 @@ public static class EquipmentTreeEvent extends EventObject { - private EquipPath path; private EquipNode node; - /** - * @deprecated - * @param source - * @param path - */ - public EquipmentTreeEvent(Object source, EquipPath path) - { - super(source); - this.path = path; - } - public EquipmentTreeEvent(Object source, EquipNode node) { super(source); this.node = node; } - /** - * @deprecated - * @return - */ - public EquipPath getPath() - { - return path; - } - public EquipNode getNode() { return node; @@ -186,75 +136,4 @@ } - /** - * @deprecated - */ - public static class EquipPath - { - - private BodyStructureFacade root; - private EquipmentFacade[] path; - - public EquipPath(BodyStructureFacade root, EquipmentFacade... path) - { - this.root = root; - this.path = path; - } - - public BodyStructureFacade getRoot() - { - return root; - } - - public EquipmentFacade[] getPath() - { - return path; - } - - public EquipPath getParent() - { - if (path.length == 0) - { - return null; - } - EquipmentFacade[] equips = new EquipmentFacade[path.length - 1]; - for (int x = 0; x < path.length - 1; x++) - { - equips[x] = path[x]; - } - return new EquipPath(root, equips); - } - - @Override - public boolean equals(Object obj) - { - if (obj instanceof EquipPath) - { - EquipPath epath = (EquipPath) obj; - return ObjectUtils.equals(root, epath.root) && ArrayUtils.isEquals(path, epath.path); - } - return false; - } - - @Override - public int hashCode() - { - int hash = 3; - hash = 83 * hash + (this.root != null ? this.root.hashCode() : 0); - hash = 83 * hash + Arrays.deepHashCode(this.path); - return hash; - } - - @Override - public String toString() - { - if (path.length > 0) - { - return path[path.length - 1].toString(); - } - return root.toString(); - } - - } - } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java 2011-02-06 22:42:56 UTC (rev 14514) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/EquipmentSetFacadeImpl.java 2011-02-06 23:10:35 UTC (rev 14515) @@ -50,8 +50,6 @@ import pcgen.core.facade.EquipmentSetFacade.EquipNode.NodeType; import pcgen.core.facade.util.DefaultListFacade; import pcgen.core.facade.util.ListFacade; -import pcgen.core.utils.MessageType; -import pcgen.core.utils.ShowMessageDelegate; import pcgen.system.LanguageBundle; /** @@ -76,7 +74,6 @@ private List<EquipmentTreeListener> listeners = new ArrayList<EquipmentTreeListener>(); private DefaultReferenceFacade<String> name; private EquipmentListFacadeImpl equipmentList; - private DefaultListFacade<EquipPath> paths; private DataSetFacade dataSet; private Map<String, BodyStructure> bodyStructMap; private UIDelegate delegate; @@ -117,7 +114,6 @@ { this.eqSet = eqSet; name = new DefaultReferenceFacade<String>(eqSet.getName()); - paths = new DefaultListFacade<EquipPath>(); bodyStructMap = new HashMap<String, BodyStructure>(); equipmentList = new EquipmentListFacadeImpl(); @@ -125,18 +121,12 @@ { bodyStructMap.put(bodyStruct.toString(), (BodyStructure) bodyStruct); // Add a 'base' equippath entry for each body strcuture - EquipPathImpl epi = new EquipPathImpl(bodyStruct, eqSet.getIdPath()); - paths.addElement(epi); } buildNodeList(); List<EquipSet> equipList = new ArrayList<EquipSet>(theCharacter.getEquipSet()); Collections.sort(equipList); - addChildrenToPath(eqSet.getIdPath(), equipList); - - equipList = new ArrayList<EquipSet>(theCharacter.getEquipSet()); - Collections.sort(equipList); addChildrenToPath(eqSet.getIdPath(), equipList, (EquipNodeImpl) null); } @@ -212,59 +202,6 @@ } /** - * Recursive method to build up a tree of EquipPaths. It find from the - * equipment list those children of the item specified by the idPath and - * add them to the paths list. It will then do the same for each child - * that was found. - * - * @param idPath The euipset id of the target record. - * @param equipList The list of equipsets to be added. - * @param ancestors The ancestors of the target record as EquipmentFacades. Includes the target itself. - */ - private void addChildrenToPath(String idPath, List<EquipSet> equipList, EquipmentFacade... ancestors) - { - List<EquipSet> children = new ArrayList<EquipSet>(); - List<EquipmentFacade[]> childPaths = new ArrayList<EquipmentFacade[]>(); - - // process all EquipSet Items - for (int iSet = 0; iSet < equipList.size(); ++iSet) - { - EquipSet es = equipList.get(iSet); - - if (es.getParentIdPath().equals(idPath)) - { - EquipmentFacade fullPath[] = new EquipmentFacade[ancestors.length+1]; - if (ancestors.length > 0) - { - System.arraycopy(ancestors, 0, fullPath, 0, ancestors.length); - } - fullPath[fullPath.length-1] = es.getItem(); - - BodyStructureFacade root = bodyStructMap.get(es.toString()); - EquipPathImpl epi = new EquipPathImpl(root, es.getIdPath(), fullPath); - paths.addElement(epi); - updateTotalQuantity(es.getItem(), es.getItem().getQty().intValue()); - updateTotalWeight(es.getItem(), es.getItem().getQty(), root); - - // add to list for recursive calls - children.add(es); - childPaths.add(fullPath); - - // and remove from tempSetList so - // it won't get processed again - equipList.remove(es); - --iSet; - } - } - - // Now process the children - for (int i = 0; i < children.size(); i++) - { - addChildrenToPath(children.get(i).getIdPath(), equipList, childPaths.get(i)); - } - } - - /** * Recursive method to build up a tree of EquipNodes. It finds from the * equipment list those children of the item specified by the idPath and * adds them to the paths list. It will then do the same for each child @@ -388,94 +325,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.EquipmentSetFacade#addEquipment(pcgen.core.facade.EquipmentSetFacade.EquipPath, pcgen.core.facade.EquipmentFacade, int) - */ - public void addEquipment(EquipPath parent, EquipmentFacade equipment, - int quantity) - { - if (!(parent instanceof EquipPathImpl)) - { - return; - } - if (!(equipment instanceof Equipment)) - { - return; - } - - Equipment item = (Equipment) equipment; - EquipPathImpl ep = (EquipPathImpl) parent; - EquipSet parentEs = theCharacter.getEquipSetByIdPath(ep.getIdPath()); - - // Validate the item can go into the location. - if (!canEquip(parent, equipment)) - { - delegate.showErrorMessage(Constants.s_APPNAME, LanguageBundle - .getFormattedString("in_equipCannotEquipToLocation", item - .toString(), parent.toString())); - return; - } - - - // Check for adding more instances to an existing item, but don;t merge containers - if (!item.isContainer()) - { - for (EquipPath existing : paths) - { - if (parent.equals(existing.getParent()) - && existing.getPath() != null - && existing.getPath().length > 0) - { - Equipment existingItem = - (Equipment) existing.getPath()[existing.getPath().length - 1]; - if (existingItem.equals(item)) - { - int totalQuantity = (int) (existingItem.getQty() + quantity); - existingItem.setQty(totalQuantity); - EquipSet es = - theCharacter - .getEquipSetByIdPath(((EquipPathImpl) existing) - .getIdPath()); - es.setQty(es.getQty() + quantity); - if (!Constants.S_NOTCARRIED.equals(parent.getRoot().toString())) - { - existingItem.setNumberCarried(existingItem.getCarried()+quantity); - } - fireQuantityChanged(existing); - updateTotalWeight(existingItem, quantity, parent.getRoot()); - updateTotalQuantity(existingItem, quantity); - return; - } - } - } - } - - // Create equip set for the item - String id = EquipmentSetFacadeImpl.getNewIdPath(theCharacter, parentEs); - EquipSet newSet = new EquipSet(id, Constants.S_EQUIPPED, item.getName(), item); - item.setQty(quantity); - newSet.setQty((float) quantity); - theCharacter.addEquipSet(newSet); - - // Place equip set into - EquipmentFacade[] ancestors = ep.getPath(); - EquipmentFacade fullPath[] = new EquipmentFacade[ancestors.length+1]; - if (ancestors.length > 0) - { - System.arraycopy(ancestors, 0, fullPath, 0, ancestors.length); - } - fullPath[fullPath.length-1] = equipment; - EquipPathImpl epi = new EquipPathImpl(ep.getRoot(), newSet.getIdPath(), fullPath); - paths.addElement(epi); - if (!Constants.S_NOTCARRIED.equals(parent.getRoot().toString())) - { - item.setNumberCarried(item.getCarried()+quantity); - } - updateTotalWeight(item, quantity, parent.getRoot()); - updateTotalQuantity(item, quantity); - } - - - /* (non-Javadoc) * @see pcgen.core.facade.EquipmentSetFacade#addEquipment(pcgen.core.facade.EquipmentSetFacade.EquipNode, pcgen.core.facade.EquipmentFacade, int) */ public void addEquipment(EquipNode node, EquipmentFacade equipment, @@ -578,67 +427,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.EquipmentSetFacade#removeEquipment(pcgen.core.facade.EquipmentSetFacade.EquipPath, pcgen.core.facade.EquipmentFacade, int) - */ - public void removeEquipment(EquipPath path, int quantity) - { - if (!(path instanceof EquipPathImpl)) - { - return; - } - - EquipPathImpl ep = (EquipPathImpl) path; - EquipSet eSet = theCharacter.getEquipSetByIdPath(ep.getIdPath()); - int newQty = (int) (eSet.getQty()-quantity); - - // only allow this button to delete equipment - // not the root EquipSet node - if (eSet.getItem() == null) - { - ShowMessageDelegate - .showMessageDialog( - LanguageBundle.getString("in_ieDelEqNotEqSet"), - Constants.s_APPNAME, MessageType.ERROR); - - return; - } - - Equipment eqI = eSet.getItem(); - StringTokenizer aTok = - new StringTokenizer(eSet.getIdPath(), ".", false); - - if (newQty <= 0) - { - // remove Equipment (via EquipSet) from the PC - theCharacter.delEquipSet(eSet); - paths.removeElement(ep); - - // if it was inside a container, make sure to update - // the container Equipment Object - if (aTok.countTokens() > 3) - { - Equipment eqP = (Equipment) eqI.getParent(); - - if (eqP != null) - { - eqP.removeChild(theCharacter, eqI); - } - } - } - else - { - eSet.setQty((float) newQty); - fireQuantityChanged(path); - } - if (!Constants.S_NOTCARRIED.equals(path.getRoot().toString())) - { - eqI.setNumberCarried(Math.max(0, eqI.getCarried() - quantity)); - } - updateTotalWeight(eqI, quantity*-1, path.getRoot()); - updateTotalQuantity(eqI, quantity*-1); - } - - /* (non-Javadoc) * @see pcgen.core.facade.EquipmentSetFacade#removeEquipment(pcgen.core.facade.EquipmentSetFacade.EquipNode, int) */ public void removeEquipment(EquipNode node, int quantity) @@ -721,21 +509,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.EquipmentSetFacade#getLocation(pcgen.core.facade.EquipmentSetFacade.EquipPath) - */ - public String getLocation(EquipPath path) - { - EquipPathImpl ep = (EquipPathImpl) path; - EquipSet equipSet = theCharacter.getEquipSetByIdPath(ep.getIdPath()); - if (equipSet != null && ep.getPath().length>0) - { - return equipSet.getName(); - } - - return path.getRoot().toString(); - } - - /* (non-Javadoc) * @see pcgen.core.facade.EquipmentSetFacade#getName() */ public String getName() @@ -744,24 +517,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.EquipmentSetFacade#getPaths() - */ - public ListFacade<EquipPath> getPaths() - { - return paths; - } - - /* (non-Javadoc) - * @see pcgen.core.facade.EquipmentSetFacade#getQuantity(pcgen.core.facade.EquipmentSetFacade.EquipPath) - */ - public int getQuantity(EquipPath path) - { - EquipPathImpl ep = (EquipPathImpl) path; - EquipSet parentEs = theCharacter.getEquipSetByIdPath(ep.getIdPath()); - return ((Float)parentEs.getQty()).intValue(); - } - - /* (non-Javadoc) * @see pcgen.core.facade.EquipmentSetFacade#isContainer(pcgen.core.facade.EquipmentFacade) */ public boolean isContainer(EquipmentFacade equipment) @@ -814,56 +569,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.EquipmentSetFacade#canEquip(pcgen.core.facade.EquipmentSetFacade.EquipPath, pcgen.core.facade.EquipmentFacade) - */ - public boolean canEquip(EquipPath path, EquipmentFacade equipment) - { - if (!(equipment instanceof Equipment) || path == null) - { - return false; - } - Equipment item = (Equipment) equipment; - - // Is this a container? Then check if the object can fit in - EquipmentFacade[] eqPath = path.getPath(); - if (eqPath != null && eqPath.length > 0) - { - EquipmentFacade parent = eqPath[eqPath.length - 1]; - if (parent instanceof Equipment - && ((Equipment) parent).isContainer()) - { - // Check if it fits - if (((Equipment) parent).canContain(theCharacter, item) == 1) - { - return true; - } - } - } - - // Is this a body structure? Then check if the object be placed there - if (path.getRoot() instanceof BodyStructure - && (eqPath == null || eqPath.length == 0)) - { - BodyStructure root = (BodyStructure) path.getRoot(); - if (root.isHoldsAnyType()) - { - return true; - } - - for (EquipSlot slot : root.getEquipSlots()) - { - if (slot.canContainType(item.getType())) - { - return true; - } - } - } - - // This item can't be equipped in this location - return false; - } - - /* (non-Javadoc) * @see pcgen.core.facade.EquipmentSetFacade#canEquip(pcgen.core.facade.EquipmentSetFacade.EquipNode, pcgen.core.facade.EquipmentFacade) */ public boolean canEquip(EquipNode node, EquipmentFacade equipment) @@ -958,20 +663,7 @@ */ public void removeAllEquipment() { - List<EquipPath> equipToBeDeleted = new ArrayList<EquipPath>(paths.getSize()); - for (EquipPath equipPath : paths) - { - // Skip the BodyStructure entries - if (equipPath.getPath().length>0) - { - equipToBeDeleted.add(equipPath); - } - } - - for (EquipPath equipPath : equipToBeDeleted) - { - removeEquipment(equipPath, getQuantity(equipPath)); - } + // TODO: complete this } @Override @@ -980,19 +672,6 @@ return getName(); } - private void fireQuantityChanged(EquipPath path) - { - EquipmentTreeEvent event = null; - for (EquipmentTreeListener equipmentTreeListener : listeners) - { - if (event == null) - { - event = new EquipmentTreeEvent(this, path); - } - equipmentTreeListener.quantityChanged(event); - } - } - /** * Notify any listeners that the quantity of a node has changed. * @@ -1076,70 +755,6 @@ } /** - * The Class <code>EquipPathImpl</code> extends EquipPath to allow syncing - * of the path back to the character. The idPath is added which is the - * identifier used in the character to track EquipPaths. - */ - public static class EquipPathImpl extends EquipPath - { - - private String idPath; - - /** - * Create a new EquipPathImpl instance. - * @param root The location the path starts in - * @param idPath The id of the path as used by the core. - * @param path The path of equipment back to the root (e.g. containers in which this item is placed). - */ - public EquipPathImpl(BodyStructureFacade root, String idPath, EquipmentFacade... path) - { - super(root, path); - this.idPath = idPath; - } - - /** - * @return the idPath - */ - String getIdPath() - { - return idPath; - } - - @Override - public EquipPath getParent() - { - return super.getParent(); - } - - /** - * @param idPath the idPath to set - */ - void setIdPath(String idPath) - { - this.idPath = idPath; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() - { - EquipmentFacade[] fullPath = getPath(); - if (fullPath.length > 0) - { - return fullPath[fullPath.length-1].toString(); - } - else - { - return getRoot().toString(); - } - } - - - } - - /** * The Class <code>EquipNodeImpl</code> represents a node in the equipping * tree. It may be an item of equipment or a slot that may be filled. * EquipNodeImpl objects are immutable. Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/RaceInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/RaceInfoTab.java 2011-02-06 22:42:56 UTC (rev 14514) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/RaceInfoTab.java 2011-02-06 23:10:35 UTC (rev 14515) @@ -97,6 +97,7 @@ panel.add(new JScrollPane(raceTable), BorderLayout.CENTER); Box box = Box.createHorizontalBox(); + box.add(Box.createHorizontalGlue()); box.add(new JLabel("Selected Race")); box.add(Box.createHorizontalStrut(5)); @@ -105,7 +106,7 @@ box.add(selectedRaceLabel); box.add(Box.createHorizontalStrut(5)); box.add(selectRaceButton); - + box.add(Box.createHorizontalGlue()); panel.add(box, BorderLayout.SOUTH); setTopComponent(panel); @@ -117,7 +118,7 @@ Hashtable<Object, Object> state = new Hashtable<Object, Object>(); state.put(RaceLabelHandler.class, new RaceLabelHandler(character, selectedRaceLabel)); state.put(SelectRaceAction.class, new SelectRaceAction(character)); - state.put(RaceTreeViewModel.class, new RaceTreeViewModel(character)); + //state.put(RaceTreeViewModel.class, new RaceTreeViewModel(character)); state.put(InfoHandler.class, new InfoHandler(character)); return state; } Deleted: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java 2011-02-06 22:42:56 UTC (rev 14514) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/equip/EquipmentTreeTableModel.java 2011-02-06 23:10:35 UTC (rev 14515) @@ -1,163 +0,0 @@ -/* - * EquipmentTreeTableModel.java - * Copyright 2010 Connor Petty <cpm...@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 - * - * Created on Sep 28, 2010, 1:25:29 PM - */ -package pcgen.gui2.tabs.equip; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.apache.commons.lang.ArrayUtils; - -import pcgen.core.facade.CharacterFacade; -import pcgen.core.facade.EquipmentFacade; -import pcgen.core.facade.EquipmentSetFacade; -import pcgen.core.facade.EquipmentSetFacade.EquipPath; -import pcgen.core.facade.EquipmentSetFacade.EquipmentTreeEvent; -import pcgen.core.facade.EquipmentSetFacade.EquipmentTreeListener; -import pcgen.gui2.util.treeview.DataView; -import pcgen.gui2.util.treeview.DataViewColumn; -import pcgen.gui2.util.treeview.DefaultDataViewColumn; -import pcgen.gui2.util.treeview.TreeView; -import pcgen.gui2.util.treeview.TreeViewPath; -import pcgen.gui2.util.treeview.TreeViewTableModel; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public class EquipmentTreeTableModel extends TreeViewTableModel<EquipPath> - implements DataView<EquipPath>, TreeView<EquipPath>, EquipmentTreeListener -{ -// -// private final ListListener<BodyStructureFacade> locListener = new ListListener<BodyStructureFacade>() -// { -// -// public void elementAdded(ListEvent<BodyStructureFacade> e) -// { -// throw new UnsupportedOperationException("Not supported yet."); -// } -// -// public void elementRemoved(ListEvent<BodyStructureFacade> e) -// { -// throw new UnsupportedOperationException("Not supported yet."); -// } -// -// public void elementsChanged(ListEvent<BodyStructureFacade> e) -// { -// throw new UnsupportedOperationException("Not supported yet."); -// } -// -// }; -// private final ListListener<EquipPath> equipListener = new ListListener<EquipPath>() -// { -// -// public void elementAdded(ListEvent<EquipPath> e) -// { -// dataMap.put(e.getElement(), getData(e.getElement())); -// viewMap.clear(); -// setSelectedTreeView(selectedView); -// } -// -// public void elementRemoved(ListEvent<EquipPath> e) -// { -// dataMap.remove(e.getElement()); -// viewMap.clear(); -// setSelectedTreeView(selectedView); -// } -// -// public void elementsChanged(ListEvent<EquipPath> e) -// { -// throw new UnsupportedOperationException("Not supported yet."); -// } -// -// }; - - private EquipmentSetFacade equipSet; - private CharacterFacade character; - - public EquipmentTreeTableModel(EquipmentSetFacade equipSet, CharacterFacade character) - { - this.dataview = this; - this.datacolumns = getDataColumns(); - this.equipSet = equipSet; - this.character = character; - equipSet.addEquipmentTreeListener(this); - //equipSet.getPaths().addListListener(equipListener); - selectedView = this; - setDataModel(equipSet.getPaths()); - //setSelectedTreeView(this); - } - - public List<?> getData(EquipPath ePath) - { - EquipmentFacade[] path = ePath.getPath(); - if (ArrayUtils.isEmpty(path)) - { - return Arrays.asList("Type", "Located", "Qty", "Wgt"); - } - EquipmentFacade last = path[path.length - 1]; - return Arrays.asList(last.getTypes()[0], equipSet.getLocation(ePath), equipSet.getQuantity(ePath), character.getWeight(last)); - } - - public List<? extends DataViewColumn> getDataColumns() - { - List<DataViewColumn> columns = new ArrayList<DataViewColumn>(); - columns.add(new DefaultDataViewColumn("", String.class)); - columns.add(new DefaultDataViewColumn("", String.class)); - columns.add(new DefaultDataViewColumn("", Integer.class)); - columns.add(new DefaultDataViewColumn("", Float.class)); - return columns; - } - - public void quantityChanged(EquipmentTreeEvent e) - { - dataMap.put(e.getPath(), getData(e.getPath())); - viewMap.clear(); - this.nodeChanged(root); - } - - public String getViewName() - { - return ""; - } - - public List<TreeViewPath<EquipPath>> getPaths(EquipPath pobj) - { - EquipPath[] path = new EquipPath[pobj.getPath().length]; - - EquipPath parent = pobj; - for (int i = path.length - 1; i >= 0; i--) - { - parent = parent.getParent(); - path[i] = parent; - } - if (ArrayUtils.isEmpty(path)) - { - return Collections.singletonList(new TreeViewPath<EquipPath>(pobj)); - } - else - { - return Collections.singletonList(new TreeViewPath<EquipPath>(path, pobj)); - } - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2011-02-12 00:39:54
|
Revision: 14554 http://pcgen.svn.sourceforge.net/pcgen/?rev=14554&view=rev Author: jdempsey Date: 2011-02-12 00:39:47 +0000 (Sat, 12 Feb 2011) Log Message: ----------- Add stubs for class, skill and ability infor displays Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFactory.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFactory.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFactory.java 2011-02-12 00:26:06 UTC (rev 14553) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/InfoFactory.java 2011-02-12 00:39:47 UTC (rev 14554) @@ -39,6 +39,12 @@ public String getHTMLInfo(RaceFacade race); + public String getHTMLInfo(ClassFacade pcClass); + + public String getHTMLInfo(SkillFacade skill); + + public String getHTMLInfo(AbilityFacade ability); + public String getHTMLInfo(DeityFacade deity); public String getHTMLInfo(DomainFacade domain); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java 2011-02-12 00:26:06 UTC (rev 14553) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/Gui2InfoFactory.java 2011-02-12 00:39:47 UTC (rev 14554) @@ -54,11 +54,14 @@ import pcgen.core.analysis.RaceStat; import pcgen.core.character.WieldCategory; import pcgen.core.display.VisionDisplay; +import pcgen.core.facade.AbilityFacade; +import pcgen.core.facade.ClassFacade; import pcgen.core.facade.DeityFacade; import pcgen.core.facade.DomainFacade; import pcgen.core.facade.EquipmentFacade; import pcgen.core.facade.InfoFactory; import pcgen.core.facade.RaceFacade; +import pcgen.core.facade.SkillFacade; import pcgen.core.prereq.PrerequisiteUtilities; import pcgen.gui2.util.HtmlInfoBuilder; import pcgen.system.LanguageBundle; @@ -158,6 +161,24 @@ return infoText.toString(); } + public String getHTMLInfo(ClassFacade pcClass) + { + // TODO Auto-generated method stub + return ""; + } + + public String getHTMLInfo(SkillFacade skill) + { + // TODO Auto-generated method stub + return ""; + } + + public String getHTMLInfo(AbilityFacade ability) + { + // TODO Auto-generated method stub + return ""; + } + /* (non-Javadoc) * @see pcgen.core.facade.InfoFactory#getHTMLInfo(pcgen.core.facade.DeityFacade) */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2011-02-25 21:42:34
|
Revision: 14611 http://pcgen.svn.sourceforge.net/pcgen/?rev=14611&view=rev Author: jdempsey Date: 2011-02-25 21:42:28 +0000 (Fri, 25 Feb 2011) Log Message: ----------- Reimplement console dialog as part of the new UI package. Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/ConsoleDialog.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2011-02-25 21:38:09 UTC (rev 14610) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2011-02-25 21:42:28 UTC (rev 14611) @@ -503,6 +503,8 @@ */ public boolean isQualifiedFor(DomainFacade domain); + public Float getVariable(String varName); + public void addCharacterChangeListener(CharacterChangeListener listener); public void removeCharacterChangeListener(CharacterChangeListener listener); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2011-02-25 21:38:09 UTC (rev 14610) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2011-02-25 21:42:28 UTC (rev 14611) @@ -45,8 +45,7 @@ import pcgen.core.facade.UIDelegate; import pcgen.core.facade.event.ReferenceEvent; import pcgen.core.facade.event.ReferenceListener; -import pcgen.gui.MainDebug; -import pcgen.gui.PCGenPopup; +import pcgen.gui2.dialog.ConsoleDialog; import pcgen.gui2.tools.BrowserLauncher; import pcgen.gui2.tools.Icons; import pcgen.gui2.tools.PCGenAction; @@ -124,6 +123,7 @@ public static final String SKILL_GENERATORS_COMMAND = GENERATORS_COMMAND + ".skill"; public static final String EQUIPMENT_GENERATORS_COMMAND = GENERATORS_COMMAND + ".equipment"; public static final String SPELL_GENERATORS_COMMAND = GENERATORS_COMMAND + ".spell"; + //public static final String GMGEN_COMMAND = TOOLS_COMMAND + ".gmgen"; public static final String PREFERENCES_COMMAND = TOOLS_COMMAND + ".preferences"; public static final String CONSOLE_COMMAND = TOOLS_COMMAND + ".console"; //the help menu commands @@ -179,6 +179,7 @@ put(GENERATE_COMMAND, new GenerateAction()); put(EQUIPMENTSET_COMMAND, new EquipmentSetAction()); put(TEMP_BONUS_COMMAND, new TempBonusAction()); + //put(GMGEN_COMMAND, new GmGenAction()); put(PREFERENCES_COMMAND, new PreferencesAction()); put(CONSOLE_COMMAND, new ConsoleAction()); put(FILTERS_COMMAND, new FiltersAction()); @@ -436,6 +437,22 @@ } +// private class GmGenAction extends PCGenAction +// { +// +// public GmGenAction() +// { +// super("mnuToolsGenGen"); +// } +// +// @Override +// public void actionPerformed(ActionEvent e) +// { +// PCGenUIManager.displayGmGen(); +// } +// +// } + private class PreferencesAction extends PCGenAction { @@ -452,6 +469,7 @@ } + @SuppressWarnings("serial") private class ConsoleAction extends PCGenAction { @@ -463,26 +481,12 @@ @Override public void actionPerformed(ActionEvent e) { - DebugFrame debugFrame = new DebugFrame(); - debugFrame.setVisible(true); + ConsoleDialog console = new ConsoleDialog(frame); + console.setVisible(true); } } - /** - * Popup frame with debug console - */ - final class DebugFrame extends PCGenPopup - { - - /** Constructor for the Debug winsow */ - public DebugFrame() - { - super("Debug Console", new MainDebug()); - } - - } - private class FileAction extends PCGenAction { Added: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/ConsoleDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/ConsoleDialog.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/ConsoleDialog.java 2011-02-25 21:42:28 UTC (rev 14611) @@ -0,0 +1,307 @@ +/* + * ConsoleDialog.java + * Copyright 2001 (C) Bryan McRoberts <mer...@ya...> + * + * 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 May 14, 2001, 4:06 PM + */ +package pcgen.gui2.dialog; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.GraphicsEnvironment; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.io.File; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.MissingResourceException; +import java.util.ResourceBundle; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; + +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.ScrollPaneConstants; + +import pcgen.core.facade.CharacterFacade; +import pcgen.core.utils.MessageType; +import pcgen.core.utils.ShowMessageDelegate; +import pcgen.gui2.PCGenFrame; +import pcgen.util.Logging; + +/** + * Provide a panel which displays system outputs and allows variable values to + * be checked. + * + * @author Bryan McRoberts <mer...@ya...> + * @version $Revision$ + */ +public final class ConsoleDialog extends JDialog +{ + private static final long serialVersionUID = 6575514393106811278L; + private static final JTextArea txtAreaDebug = new JTextArea(); + + private BorderLayout borderLayout4 = new BorderLayout(); + private FlowLayout flowLayout3 = new FlowLayout(); + private JButton btnDebugClear = new JButton(); + private JButton btnDebugGo = new JButton(); + private JButton btnMemory = new JButton(); + private JLabel lblDebugSouth = new JLabel(); + private JPanel debugSouth = new JPanel(); + private JScrollPane debugCenter = new JScrollPane(); + private JTextField txtDebugField = new JTextField(); + private PCGenFrame pcgenFrame; + + public ConsoleDialog(PCGenFrame frame) + { + super(frame, "Debug Console", false); + pcgenFrame = frame; + initComponents(); + DebugHandler ch = new DebugHandler(); + Logging.registerHandler(ch); + System.setOut(new DebugStream(System.out)); + System.setErr(System.out); + + try + { + System.getProperties().list(System.out); + Logging.memoryReport(); + + try + { + ResourceBundle d_properties = + ResourceBundle.getBundle("pcgen/resources/prop/PCGenProp"); + System.out.println("PCGen version: " + d_properties + .getString("VersionNumber")); + } + catch (MissingResourceException mre) + { + Logging.errorPrint("Unable to find PCGenProp.properties file: ", mre); + } + + if (!(new File("options.ini").exists())) + { + ShowMessageDelegate + .showMessageDialog( + "If you experience any difficulties, look in the" + + " Debug tab and post its contents at http://groups.yahoo.com/group/pcgen", + "PCGen", MessageType.INFORMATION); + } + pack(); + setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + final Rectangle screenSize = + GraphicsEnvironment.getLocalGraphicsEnvironment() + .getDefaultScreenDevice().getDefaultConfiguration() + .getBounds(); + this.setSize(screenSize.width / 2, screenSize.height / 2); + setLocationRelativeTo(frame); + } + catch (Exception e) + { + Logging.errorPrint("Ignoring error while preparing console dialog.", e); + } + } + + /** + * This method clears the debug message area of all messages + */ + private static void btnDebugClear_actionPerformed() + { + txtAreaDebug.setText(""); + } + + private void btnMemory_actionPerformed() + { + txtAreaDebug.append(Logging.memoryReportStr()); + txtAreaDebug.append("\n"); + txtAreaDebug.append("Executing Garbage Collection\n"); + Runtime.getRuntime().gc(); + txtAreaDebug.append(Logging.memoryReportStr()); + txtAreaDebug.append("\n"); + } + + /** + * This method should take the keyword entered in the text box, find it and + * print its value out to the debug message area + */ + private void btnDebugGo_actionPerformed() + { + String keyWord = txtDebugField.getText(); + final CharacterFacade aPC = pcgenFrame.getSelectedCharacterRef().getReference(); + + if (aPC != null) + { + txtAreaDebug.append(aPC.getNameRef().getReference() + ":" + keyWord + " = " + + aPC.getVariable(keyWord)); + } + else + { + txtAreaDebug.append("No character currently selected."); + } + + txtAreaDebug.append("\n"); + } + + private void initComponents() + { + this.setLayout(borderLayout4); + txtAreaDebug.setLineWrap(true); + txtAreaDebug.setWrapStyleWord(true); + txtAreaDebug.setDoubleBuffered(true); + txtAreaDebug.setMinimumSize(new Dimension(500, 300)); + txtAreaDebug.setEditable(false); + debugCenter + .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); + debugCenter + .setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + debugCenter.setDoubleBuffered(true); + debugCenter.setPreferredSize(new Dimension(446, 37)); + txtDebugField.setPreferredSize(new Dimension(200, 21)); + debugSouth.setLayout(flowLayout3); + debugSouth.setPreferredSize(new Dimension(200, 40)); + flowLayout3.setAlignment(FlowLayout.LEFT); + lblDebugSouth.setText("Variable : "); + btnDebugGo.setText("Get"); + btnDebugGo.addActionListener(new ActionListener() + { + /** + * Anonymous event handler + * + * @param e + * The ActionEvent + */ + public void actionPerformed(ActionEvent e) + { + btnDebugGo_actionPerformed(); + } + }); + btnDebugClear.setText("Clear"); + btnDebugClear.addActionListener(new ActionListener() + { + /** + * Anonymous event handler + * + * @param e + * The ActionEvent + */ + public void actionPerformed(ActionEvent e) + { + btnDebugClear_actionPerformed(); + } + }); + + btnMemory.setText("Memory"); + btnMemory.addActionListener(new ActionListener() + { + /** + * Anonymous event handler + * + * @param e + * The ActionEvent + */ + public void actionPerformed(ActionEvent e) + { + btnMemory_actionPerformed(); + } + }); + + this.add(debugCenter, BorderLayout.CENTER); + debugCenter.getViewport().add(txtAreaDebug, null); + this.add(debugSouth, BorderLayout.SOUTH); + debugSouth.add(lblDebugSouth, null); + debugSouth.add(txtDebugField, null); + debugSouth.add(btnDebugGo, null); + debugSouth.add(btnDebugClear, null); + debugSouth.add(btnMemory, null); + btnDebugGo.setMnemonic('g'); + btnDebugClear.setMnemonic('l'); + + addComponentListener(new ComponentAdapter() + { + public void componentShown(ComponentEvent evt) + { + // run when the panel becomes visible + requestFocus(); + } + }); + } + + private final class DebugStream extends PrintStream + { + private char[] newline = {'\n'}; + + private DebugStream(OutputStream os) + { + super(os); + } + + public void println(String x) + { + txtAreaDebug.append(x + new String(newline)); + } + + public void println(Object x) + { + txtAreaDebug.append(x.toString() + new String(newline)); + } + + public void write(int x) + { + txtAreaDebug.append(Integer.toString(x)); + } + } + + public final class DebugHandler extends Handler + { + + DebugHandler() + { + super(); + setLevel(Level.FINER); + } + + @Override + public void close() throws SecurityException + { + // Nothing to do + } + + @Override + public void flush() + { + // Nothing to do + } + + @Override + public void publish(LogRecord arg0) + { + txtAreaDebug.append(arg0.getLevel() + " " + arg0.getLoggerName() + + " " + arg0.getMessage() + "\n"); + } + + } +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/ConsoleDialog.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Modified: sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-02-25 21:38:09 UTC (rev 14610) +++ sandbox/cdomui/code/src/java/pcgen/gui2/facade/CharacterFacadeImpl.java 2011-02-25 21:42:28 UTC (rev 14611) @@ -72,6 +72,7 @@ import pcgen.core.SizeAdjustment; import pcgen.core.Skill; import pcgen.core.SystemCollections; +import pcgen.core.VariableProcessor; import pcgen.core.analysis.DomainApplication; import pcgen.core.analysis.StatAnalysis; import pcgen.core.character.EquipSet; @@ -2772,4 +2773,20 @@ //TODO: implement this } + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getVariable(java.lang.String) + */ + public Float getVariable(String varName) + { + Float value = null; + if (theCharacter != null) + { + VariableProcessor vp = theCharacter.getVariableProcessor(); + vp.pauseCache(); + value = theCharacter.getVariable(varName); + vp.restartCache(); + } + return value; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2009-08-16 01:45:57
|
Revision: 10239 http://pcgen.svn.sourceforge.net/pcgen/?rev=10239&view=rev Author: jdempsey Date: 2009-08-16 01:45:47 +0000 (Sun, 16 Aug 2009) Log Message: ----------- Add set/get of race to facade and mock. Switch mock over to always return the same list model for each list of objects, not a new one each time Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-15 22:36:16 UTC (rev 10238) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-16 01:45:47 UTC (rev 10239) @@ -22,6 +22,7 @@ import javax.swing.undo.UndoManager; import pcgen.cdom.enumeration.Gender; +import pcgen.cdom.enumeration.SkillCost; import pcgen.gui2.util.GenericComboBoxModel; import pcgen.gui2.util.GenericListModel; @@ -86,6 +87,8 @@ public float getSkillRanks(SkillFacade skill); + //public float getMaxRanks(SkillCost cost, CharacterLevelFacade level); + public GenericComboBoxModel<EquipmentSetFacade> getEquipmentSets(); public GenericListModel<TempBonusFacade> getTempBonuses(); @@ -95,5 +98,9 @@ public boolean isTempBonusApplied(TempBonusFacade bonus); public DataSetFacade getDataSet(); + + public RaceFacade getRace(); + + public void setRace(RaceFacade race); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-15 22:36:16 UTC (rev 10238) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-16 01:45:47 UTC (rev 10239) @@ -23,8 +23,6 @@ package pcgen.gui2.mock; -import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -33,6 +31,7 @@ import javax.swing.undo.UndoManager; import pcgen.cdom.enumeration.Gender; +import pcgen.cdom.enumeration.SkillCost; import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.AbilityFacade; import pcgen.core.facade.AlignmentFacade; @@ -41,6 +40,7 @@ import pcgen.core.facade.ClassFacade; import pcgen.core.facade.DataSetFacade; import pcgen.core.facade.EquipmentSetFacade; +import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SkillFacade; import pcgen.core.facade.StatFacade; import pcgen.core.facade.TempBonusFacade; @@ -70,28 +70,33 @@ */ public class CharacterMock implements CharacterFacade { - private Map<AbilityCategoryFacade, List<AbilityFacade>> abilityListMap; - private List<ClassFacade> pcClasses; - private List<TempBonusFacade> appliedTempBonuses; + private Map<AbilityCategoryFacade, DefaultGenericListModel<AbilityFacade>> abilityListMap; + private DefaultGenericListModel<ClassFacade> pcClasses; + private DefaultGenericListModel<TempBonusFacade> appliedTempBonuses; private AlignmentFacade alignment; - private List<EquipmentSetFacade> equipmentSets; + private DefaultGenericComboBoxModel<EquipmentSetFacade> equipmentSets; private Gender gender; - private List<CharacterLevelMock> pcClassLevels; + private DefaultGenericListModel<CharacterLevelFacade> pcClassLevels; private Map<StatFacade, Integer> statScoreMap; private Map<AbilityCategoryFacade, Integer> remainingAbilitySelections; private UndoManager undoManager; private DataSetFacade dataSet; + private RaceFacade race; + /** + * Create a new mock character. The character will be blank with no race, + * stats etc + */ public CharacterMock() { - pcClasses = new ArrayList<ClassFacade>(); - pcClassLevels = new ArrayList<CharacterLevelMock>(); - appliedTempBonuses = new ArrayList<TempBonusFacade>(); - equipmentSets = new ArrayList<EquipmentSetFacade>(); + pcClasses = new DefaultGenericListModel<ClassFacade>(); + pcClassLevels = new DefaultGenericListModel<CharacterLevelFacade>(); + appliedTempBonuses = new DefaultGenericListModel<TempBonusFacade>(); + equipmentSets = new DefaultGenericComboBoxModel<EquipmentSetFacade>(); statScoreMap = new HashMap<StatFacade, Integer>(); - abilityListMap = new HashMap<AbilityCategoryFacade, List<AbilityFacade>>(); + abilityListMap = new HashMap<AbilityCategoryFacade, DefaultGenericListModel<AbilityFacade>>(); remainingAbilitySelections = new HashMap<AbilityCategoryFacade, Integer>(); - + //new DefaultGenericComboBoxModel<EquipmentSetFacade> undoManager = new UndoManager(); dataSet = new DataSetMock(); @@ -103,9 +108,9 @@ @Override public void addAbility(AbilityCategoryFacade category, AbilityFacade ability) { - List<AbilityFacade> abList = abilityListMap.get(category); + DefaultGenericListModel<AbilityFacade> abList = abilityListMap.get(category); if (abList == null) { - abList = new ArrayList<AbilityFacade>(); + abList = new DefaultGenericListModel<AbilityFacade>(); abilityListMap.put(category, abList); } abList.add(ability); @@ -131,11 +136,11 @@ public GenericListModel<AbilityFacade> getAbilities( AbilityCategoryFacade category) { - List<AbilityFacade> abList = abilityListMap.get(category); + DefaultGenericListModel<AbilityFacade> abList = abilityListMap.get(category); if (abList == null) { - abList = Collections.emptyList(); + abList = new DefaultGenericListModel<AbilityFacade>(); } - return new DefaultGenericListModel<AbilityFacade>(abList); + return abList; } /* (non-Javadoc) @@ -245,7 +250,7 @@ @Override public GenericListModel<CharacterLevelFacade> getLevels() { - return new DefaultGenericListModel<CharacterLevelFacade>(pcClassLevels); + return pcClassLevels; } /* (non-Javadoc) @@ -270,7 +275,7 @@ @Override public GenericListModel<TempBonusFacade> getTempBonuses() { - return new DefaultGenericListModel<TempBonusFacade>(appliedTempBonuses); + return appliedTempBonuses; } /* (non-Javadoc) @@ -315,7 +320,7 @@ @Override public GenericComboBoxModel<EquipmentSetFacade> getEquipmentSets() { - return new DefaultGenericComboBoxModel<EquipmentSetFacade>(equipmentSets); + return equipmentSets; } /* (non-Javadoc) @@ -402,9 +407,9 @@ public float getSkillRanks(SkillFacade skill) { float numRanks = 0.0f; - for (CharacterLevelMock level : pcClassLevels) + for (CharacterLevelFacade level : pcClassLevels) { - numRanks += level.getSkillRanks(skill); + numRanks += ((CharacterLevelMock) level).getSkillRanks(skill); } return numRanks; } @@ -419,6 +424,15 @@ } /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getMaxRanks(pcgen.cdom.enumeration.SkillCost, pcgen.core.facade.CharacterLevelFacade) + */ + public float getMaxRanks(SkillCost cost, CharacterLevelFacade level) + { + //TODO: Need to implement this + return 0.0f; + } + + /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getUndoManager() */ @Override @@ -427,4 +441,16 @@ return undoManager; } + @Override + public RaceFacade getRace() + { + return race; + } + + @Override + public void setRace(RaceFacade race) + { + this.race = race; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2009-08-16 02:55:44
|
Revision: 10245 http://pcgen.svn.sourceforge.net/pcgen/?rev=10245&view=rev Author: thpr Date: 2009-08-16 02:55:38 +0000 (Sun, 16 Aug 2009) Log Message: ----------- clean up imports Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/BasicGeneratorSelectionModel.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuild.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuildCustomizer.java sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGeneratorSelectionModel.java sandbox/cdomui/code/src/java/pcgen/gui2/proto/CoreFrame.java sandbox/cdomui/code/src/java/pcgen/gui2/proto/util/CheckboxTree.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/util/JCheckBoxTreeViewPane.java sandbox/cdomui/code/src/java/pcgen/util/CollectionMaps.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -21,8 +21,8 @@ package pcgen.core.facade; import javax.swing.undo.UndoManager; + import pcgen.cdom.enumeration.Gender; -import pcgen.cdom.enumeration.SkillCost; import pcgen.gui2.util.GenericComboBoxModel; import pcgen.gui2.util.GenericListModel; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/BasicGeneratorSelectionModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/BasicGeneratorSelectionModel.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/BasicGeneratorSelectionModel.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -27,11 +27,12 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.Properties; + import javax.swing.AbstractAction; import javax.swing.JButton; -import javax.swing.JOptionPane; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; + import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.InfoFacade; import pcgen.gui2.filter.FilterableTreeViewModel; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuild.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuild.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuild.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -25,7 +25,6 @@ import pcgen.core.facade.ClassFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SkillFacade; -import pcgen.core.facade.StatFacade; import pcgen.gui2.generator.ability.AbilityBuild; /** Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuildCustomizer.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuildCustomizer.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/CharacterBuildCustomizer.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -38,6 +38,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; + import javax.swing.AbstractAction; import javax.swing.AbstractSpinnerModel; import javax.swing.DefaultComboBoxModel; @@ -60,7 +61,7 @@ import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; -import pcgen.gui2.PCGenUIManager; + import pcgen.core.facade.ClassFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.StatFacade; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGeneratorSelectionModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGeneratorSelectionModel.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/generator/StatGeneratorSelectionModel.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -31,6 +31,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; + import javax.swing.ButtonGroup; import javax.swing.JLabel; import javax.swing.JOptionPane; @@ -40,12 +41,11 @@ import javax.swing.border.TitledBorder; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; -import pcgen.gui2.generator.GeneratorManager.GeneratorType; + import pcgen.gui2.tools.ResourceManager; import pcgen.gui2.tools.SelectionDialog; import pcgen.gui2.tools.SelectionModel; import pcgen.gui2.util.GenericListModel; -import pcgen.gui2.util.GenericListModelWrapper; /** * Modified: sandbox/cdomui/code/src/java/pcgen/gui2/proto/CoreFrame.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/CoreFrame.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/CoreFrame.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -10,8 +10,8 @@ import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Insets; + import javax.swing.JPanel; -import pcgen.gui2.util.SimpleTextIcon; /** * Modified: sandbox/cdomui/code/src/java/pcgen/gui2/proto/util/CheckboxTree.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/util/CheckboxTree.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/util/CheckboxTree.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -26,18 +26,12 @@ */ package pcgen.gui2.proto.util; -import java.awt.Color; import java.awt.Component; -import java.util.EventObject; -import javax.swing.AbstractCellEditor; + import javax.swing.DefaultCellEditor; -import javax.swing.Icon; import javax.swing.JCheckBox; -import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.UIManager; -import javax.swing.event.CellEditorListener; -import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.TreeCellEditor; import javax.swing.tree.TreeCellRenderer; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/AbilitiesInfoTab.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -20,21 +20,21 @@ */ package pcgen.gui2.tabs; -import pcgen.gui2.tools.CharacterStateEditable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Hashtable; import java.util.List; import java.util.Map; + import javax.swing.JTabbedPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import pcgen.gui2.PCGenUIManager; + import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.CharacterFacade; +import pcgen.gui2.tools.CharacterStateEditable; import pcgen.gui2.util.DefaultGenericListModel; -import pcgen.gui2.util.GenericListModel; import pcgen.gui2.util.event.AbstractGenericListDataWrapper; import pcgen.util.CollectionMaps; import pcgen.util.ListMap; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/util/JCheckBoxTreeViewPane.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/JCheckBoxTreeViewPane.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/JCheckBoxTreeViewPane.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -24,9 +24,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; + import javax.swing.tree.DefaultMutableTreeNode; + import pcgen.gui2.util.treeview.DataView; -import pcgen.gui2.util.treeview.DataViewColumn; import pcgen.gui2.util.treeview.TreeView; import pcgen.gui2.util.treeview.TreeViewPath; import pcgen.gui2.util.treeview.TreeViewTableModel; Modified: sandbox/cdomui/code/src/java/pcgen/util/CollectionMaps.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/util/CollectionMaps.java 2009-08-16 02:51:38 UTC (rev 10244) +++ sandbox/cdomui/code/src/java/pcgen/util/CollectionMaps.java 2009-08-16 02:55:38 UTC (rev 10245) @@ -23,7 +23,6 @@ import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2009-08-23 01:42:31
|
Revision: 10286 http://pcgen.svn.sourceforge.net/pcgen/?rev=10286&view=rev Author: jdempsey Date: 2009-08-23 01:42:22 +0000 (Sun, 23 Aug 2009) Log Message: ----------- More work on the mock implementation of the UI/Data facade. All remaining classes implemented. Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityCategoryMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/AlignmentMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/ClassMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/GameModeMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/StatMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/TempBonusMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/TemplateMock.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2009-08-22 21:27:10 UTC (rev 10285) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -36,9 +36,9 @@ public AbilityFacade getAbility(AbilityCategoryFacade category, String ability); - public GenericListModel<AbilityCategoryFacade> getAbilityCatagories(); + public GenericListModel<AbilityCategoryFacade> getAbilityCategories(); - public AbilityCategoryFacade getAbilityCatagory(String category); + public AbilityCategoryFacade getAbilityCategory(String category); public GenericListModel<SkillFacade> getSkills(); Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityCategoryMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityCategoryMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityCategoryMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,97 @@ +/* + * AbilityCategoryMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 16/08/2009 2:38:00 PM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import pcgen.core.AbilityCategory; +import pcgen.core.facade.AbilityCategoryFacade; + +/** + * The Class <code>AbilityCategoryMock</code> is a mock implementation of the + * AbilityCategoryFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>What is expected in getType</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class AbilityCategoryMock implements AbilityCategoryFacade +{ + + private AbilityCategory theCat; + + /** + * Create a new AbilityCategoryMock instance for the supplied category + * @param cat The target category + */ + public AbilityCategoryMock(AbilityCategory cat) + { + theCat = cat; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AbilityCategoryFacade#getName() + */ + @Override + public String getName() + { + return theCat.getDisplayName(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AbilityCategoryFacade#getType() + */ + @Override + public String getType() + { + // TODO what is expected here? + return null; + } + + /** + * @return the category + */ + public AbilityCategory getAbilityCategory() + { + return theCat; + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return theCat.getDisplayName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityCategoryMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,130 @@ +/* + * AbilityMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 16/08/2009 3:05:41 PM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import java.util.List; + +import pcgen.cdom.enumeration.ObjectKey; +import pcgen.core.Ability; +import pcgen.core.facade.AbilityFacade; + +/** + * The Class <code>AbilityMock</code> is a mock implementation of the + * AbilityFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>We should be able to get the key of an ability from here</li> + * <li>What is expected in getTypes</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class AbilityMock implements AbilityFacade +{ + + private Ability theAbility; + + /** + * Create a new AbilityMock instance for the supplied ability + * @param ability The target ability + */ + public AbilityMock(Ability ability) + { + theAbility = ability; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AbilityFacade#getDescription() + */ + @Override + public String getDescription() + { + return theAbility.getDisplayName(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AbilityFacade#getTypes() + */ + @Override + public List<String> getTypes() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AbilityFacade#isMult() + */ + @Override + public boolean isMult() + { + return theAbility.get(ObjectKey.MULTIPLE_ALLOWED); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AbilityFacade#isStackable() + */ + @Override + public boolean isStackable() + { + return theAbility.get(ObjectKey.STACKS); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.InfoFacade#getInfo() + */ + @Override + public String getInfo() + { + // TODO Should reflect processing in InfoAbility.setInfoLabelText + return theAbility.getDisplayName(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.InfoFacade#getSource() + */ + @Override + public String getSource() + { + return theAbility.getDefaultSourceString(); + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return theAbility.getDisplayName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/AbilityMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/AlignmentMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/AlignmentMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/AlignmentMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,85 @@ +/* + * AlignmentMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 23/08/2009 9:46:41 AM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import pcgen.core.PCAlignment; +import pcgen.core.facade.AlignmentFacade; + +/** + * The Class <code>AlignmentMock</code> is a mock implementation of the + * AlignmentFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>None</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class AlignmentMock implements AlignmentFacade +{ + private PCAlignment theAlignment; + + /** + * Create a new AlignmentMock instance for an alignment. + * @param align The target alignment. + */ + public AlignmentMock(PCAlignment align) + { + theAlignment = align; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AlignmentFacade#getAbbreviation() + */ + public String getAbbreviation() + { + return theAlignment.getKeyName(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.AlignmentFacade#getName() + */ + public String getName() + { + return theAlignment.getDisplayName(); + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return theAlignment.getDisplayName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/AlignmentMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-22 21:27:10 UTC (rev 10285) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -32,6 +32,7 @@ import pcgen.cdom.enumeration.Gender; import pcgen.cdom.enumeration.SkillCost; +import pcgen.core.SettingsHandler; import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.AbilityFacade; import pcgen.core.facade.AlignmentFacade; @@ -99,7 +100,7 @@ //new DefaultGenericComboBoxModel<EquipmentSetFacade> undoManager = new UndoManager(); - dataSet = new DataSetMock(); + dataSet = new DataSetMock(SettingsHandler.getGame()); } /* (non-Javadoc) Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/ClassMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/ClassMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/ClassMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,155 @@ +/* + * ClassMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 23/08/2009 8:18:35 AM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import pcgen.cdom.content.HitDie; +import pcgen.cdom.enumeration.ObjectKey; +import pcgen.core.PCClass; +import pcgen.core.facade.ClassFacade; +import pcgen.core.facade.RaceFacade; +import pcgen.core.prereq.Prerequisite; + +/** + * The Class <code>ClassMock</code> is a mock implementation of the + * ClassFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>isAcceptableAlignment should be talking PCAlignment objects - we have moved away from representing alignments as int</li> + * <li>The standard way to deal with prereqs is to say does the character qualify. The checking of just alignment and race + * binds the UI to an assumption that those are all the class relies on, which is inaccurate</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class ClassMock implements ClassFacade +{ + private PCClass theClass; + + public ClassMock(PCClass pcClass) + { + theClass = pcClass; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.ClassFacade#getBaseStat() + */ + public String getBaseStat() + { + return theClass.getSpellBaseStat(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.ClassFacade#getHD() + */ + public String getHD() + { + HitDie hd = theClass.get(ObjectKey.LEVEL_HITDIE); + return String.valueOf(hd.getDie()); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.ClassFacade#getSpellType() + */ + public String getSpellType() + { + return theClass.getSpellType(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.ClassFacade#getTypes() + */ + public String[] getTypes() + { + String type = theClass.getType(); + return type.split("\\."); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.ClassFacade#isAcceptableAlignment(int) + */ + public boolean isAcceptableAlignment(int alignment) + { + boolean result = true; + for (Prerequisite prereq : theClass.getPrerequisiteList()) + { + if (prereq.getKind().equalsIgnoreCase("align")) + { + // TODO If we decide this is a valid way to proceed we would need to check the prereq here + result = false; + } + } + return result; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.ClassFacade#isAcceptableRace(pcgen.core.facade.RaceFacade) + */ + public boolean isAcceptableRace(RaceFacade race) + { + boolean result = true; + for (Prerequisite prereq : theClass.getPrerequisiteList()) + { + if (prereq.getKind().equalsIgnoreCase("race")) + { + // TODO If we decide this is a valid way to proceed we would need to check the prereq here + result = false; + } + } + return result; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.InfoFacade#getInfo() + */ + public String getInfo() + { + // TODO Should reflect processing in InfoClass.setInfoLabelText + return theClass.getDisplayName(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.InfoFacade#getSource() + */ + public String getSource() + { + return theClass.getDefaultSourceString(); + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + public String toString() + { + return theClass.getDisplayName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/ClassMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java 2009-08-22 21:27:10 UTC (rev 10285) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -24,14 +24,24 @@ package pcgen.gui2.mock; import java.io.File; +import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; import java.util.Set; +import pcgen.core.Ability; +import pcgen.core.AbilityCategory; import pcgen.core.Campaign; +import pcgen.core.Categorisable; +import pcgen.core.GameMode; import pcgen.core.Globals; +import pcgen.core.PCClass; +import pcgen.core.PCTemplate; import pcgen.core.PObject; import pcgen.core.Race; import pcgen.core.Skill; +import pcgen.core.bonus.BonusObj; import pcgen.core.facade.AbilityCategoryFacade; import pcgen.core.facade.AbilityFacade; import pcgen.core.facade.ClassFacade; @@ -53,7 +63,7 @@ * <p> * <b>Issues needing resolution:</b> * <ul> - * <li>None</li> + * <li>What is needed for getGeneratorFile?</li> * </ul> * <br/> * Last Editor: $Author$ <br/> @@ -65,53 +75,150 @@ public class DataSetMock implements DataSetFacade { + private DefaultGenericListModel<AbilityCategoryFacade> abilityCategories; + private Map<AbilityCategoryFacade, DefaultGenericListModel<AbilityFacade>> abilityListMap; private DefaultGenericListModel<RaceFacade> races; private DefaultGenericListModel<SkillFacade> skills; + private DefaultGenericListModel<ClassFacade> classes; + private DefaultGenericListModel<TempBonusFacade> tempBonuses; + private DefaultGenericListModel<TemplateFacade> templates; + private GameModeMock gameMode; + public DataSetMock(GameMode gameMode) + { + this.gameMode = new GameModeMock(gameMode); + abilityListMap = new HashMap<AbilityCategoryFacade, DefaultGenericListModel<AbilityFacade>>(); + } + /* (non-Javadoc) * @see pcgen.core.facade.DataSetFacade#getAbilities(pcgen.core.facade.AbilityCategoryFacade) */ public GenericListModel<AbilityFacade> getAbilities( AbilityCategoryFacade category) { - // TODO Auto-generated method stub - return null; + DefaultGenericListModel<AbilityFacade> abilityList = abilityListMap.get(category); + if (abilityList == null) + { + abilityList = buildAbilityList(category); + } + + return abilityList; } + /** + * Build the list of possible abilities for the category. Also stores the + * list in the map of ability lists. + * @param category The category to build a list for + * @return The list of abilities + */ + private DefaultGenericListModel<AbilityFacade> buildAbilityList( + AbilityCategoryFacade category) + { + + DefaultGenericListModel<AbilityFacade> abilityList = new DefaultGenericListModel<AbilityFacade>(); + for (Ability ability : Globals.getAbilityList(((AbilityCategoryMock) category).getAbilityCategory())) + { + AbilityFacade facade = new AbilityMock(ability); + abilityList.add(facade); + } + abilityListMap.put(category, abilityList); + return abilityList; + } + /* (non-Javadoc) * @see pcgen.core.facade.DataSetFacade#getAbility(pcgen.core.facade.AbilityCategoryFacade, java.lang.String) */ public AbilityFacade getAbility(AbilityCategoryFacade category, String ability) { - // TODO Auto-generated method stub + if (category == null) + { + return null; + } + + DefaultGenericListModel<AbilityFacade> abilityList = abilityListMap.get(category); + if (abilityList == null) + { + abilityList = buildAbilityList(category); + } + for (AbilityFacade facade : abilityList) + { + if (ability.equals(facade.toString())) + { + return facade; + } + } return null; } /* (non-Javadoc) * @see pcgen.core.facade.DataSetFacade#getAbilityCatagories() */ - public GenericListModel<AbilityCategoryFacade> getAbilityCatagories() + public GenericListModel<AbilityCategoryFacade> getAbilityCategories() { - // TODO Auto-generated method stub - return null; + if (abilityCategories == null) + { + buildAbilityCategoryModel(); + } + + return abilityCategories; } /* (non-Javadoc) * @see pcgen.core.facade.DataSetFacade#getAbilityCatagory(java.lang.String) */ - public AbilityCategoryFacade getAbilityCatagory(String category) + public AbilityCategoryFacade getAbilityCategory(String category) { - // TODO Auto-generated method stub + if (category == null) + { + return null; + } + + if (abilityCategories == null) + { + buildAbilityCategoryModel(); + } + for (AbilityCategoryFacade facade : abilityCategories) + { + if (category.equals(facade.toString())) + { + return facade; + } + } return null; } + private void buildAbilityCategoryModel() + { + abilityCategories = new DefaultGenericListModel<AbilityCategoryFacade>(); + for (AbilityCategory cat : gameMode.getGame().getAllAbilityCategories()) + { + AbilityCategoryFacade facade = new AbilityCategoryMock(cat); + abilityCategories.add(facade); + } + } + /* (non-Javadoc) * @see pcgen.core.facade.DataSetFacade#getClass(java.lang.String) */ public ClassFacade getClass(String className) { - // TODO Auto-generated method stub + if (className == null) + { + return null; + } + + if (classes == null) + { + buildClassModel(); + } + for (ClassFacade facade : classes) + { + if (className.equals(facade.toString())) + { + return facade; + } + } return null; } @@ -120,17 +227,30 @@ */ public GenericListModel<ClassFacade> getClasses() { - // TODO Auto-generated method stub - return null; + if (classes == null) + { + buildClassModel(); + } + + return classes; } + private void buildClassModel() + { + classes = new DefaultGenericListModel<ClassFacade>(); + for (PObject pcClass : Globals.getContext().ref.getConstructedCDOMObjects(PCClass.class)) + { + ClassFacade facade = new ClassMock((PCClass)pcClass); + classes.add(facade); + } + } + /* (non-Javadoc) * @see pcgen.core.facade.DataSetFacade#getGameMode() */ public GameModeFacade getGameMode() { - // TODO Auto-generated method stub - return null; + return gameMode; } /* (non-Javadoc) @@ -260,8 +380,32 @@ */ public GenericListModel<TempBonusFacade> getTempBonuses() { - // TODO Auto-generated method stub - return null; + if (tempBonuses == null) + { + tempBonuses = new DefaultGenericListModel<TempBonusFacade>(); + + // next do all Feats to get PREAPPLY:ANYPC + for (Iterator<? extends Categorisable> fI = + Globals.getAbilityKeyIterator("FEAT"); fI.hasNext();) //$NON-NLS-1$ + { + Ability aFeat = (Ability) fI.next(); + + for (BonusObj aBonus : aFeat.getRawBonusList(null)) + { + if (aBonus.isTempBonus() + && aBonus + .isTempBonusTarget(BonusObj.TempBonusTarget.ANYPC)) + { + TempBonusFacade facade = new TempBonusMock(aBonus); + tempBonuses.add(facade); + } + } + } + // TODO: Should also be looking at spells and templates + // TODO: Should also be adding in any temp bonuses from the character's classes, templates etc + } + + return tempBonuses; } /* (non-Javadoc) @@ -269,8 +413,16 @@ */ public GenericListModel<TemplateFacade> getTemplates() { - // TODO Auto-generated method stub - return null; + if (templates == null) + { + templates = new DefaultGenericListModel<TemplateFacade>(); + for (PObject template : Globals.getContext().ref.getConstructedCDOMObjects(PCTemplate.class)) + { + TemplateFacade facade = new TemplateMock((PCTemplate) template); + templates.add(facade); + } + } + return templates; } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/GameModeMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/GameModeMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/GameModeMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,183 @@ +/* + * GameModeMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 23/08/2009 9:45:49 AM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import java.io.File; + +import pcgen.core.GameMode; +import pcgen.core.PCAlignment; +import pcgen.core.PCStat; +import pcgen.core.facade.AlignmentFacade; +import pcgen.core.facade.GameModeFacade; +import pcgen.core.facade.StatFacade; +import pcgen.gui2.util.DefaultGenericListModel; +import pcgen.gui2.util.GenericListModel; + +/** + * The Class <code>GameModeMock</code> is a mock implementation of the + * GameModeFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>What is needed for getGeneratorFile?</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class GameModeMock implements GameModeFacade +{ + private DefaultGenericListModel<AlignmentFacade> alignments; + private DefaultGenericListModel<StatFacade> stats; + private GameMode theGameMode; + + /** + * Create a new GameModeMock instance for a game mode. + * @param gameMode The target game mode. + */ + public GameModeMock(GameMode gameMode) + { + theGameMode = gameMode; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.GameModeFacade#getAlignment(java.lang.String) + */ + public AlignmentFacade getAlignment(String alignment) + { + if (alignment == null) + { + return null; + } + + if (alignments == null) + { + buildAlignmentModel(); + } + for (AlignmentFacade facade : alignments) + { + if (alignment.equals(facade.toString())) + { + return facade; + } + } + return null; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.GameModeFacade#getAlignments() + */ + public GenericListModel<AlignmentFacade> getAlignments() + { + if (alignments == null) + { + buildAlignmentModel(); + } + + return alignments; + } + + private void buildAlignmentModel() + { + alignments = new DefaultGenericListModel<AlignmentFacade>(); + for (PCAlignment align : theGameMode.getUnmodifiableAlignmentList()) + { + AlignmentFacade facade = new AlignmentMock(align); + alignments.add(facade); + } + + } + + /* (non-Javadoc) + * @see pcgen.core.facade.GameModeFacade#getGeneratorFile() + */ + public File getGeneratorFile() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.GameModeFacade#getStat(java.lang.String) + */ + public StatFacade getStat(String stat) + { + if (stat == null) + { + return null; + } + + if (stats == null) + { + buildStatModel(); + } + for (StatFacade facade : stats) + { + if (stat.equals(facade.toString())) + { + return facade; + } + } + return null; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.GameModeFacade#getStats() + */ + public GenericListModel<StatFacade> getStats() + { + if (stats == null) + { + buildStatModel(); + } + + return stats; + } + + private void buildStatModel() + { + stats = new DefaultGenericListModel<StatFacade>(); + for (PCStat stat : theGameMode.getUnmodifiableStatList()) + { + StatFacade facade = new StatMock(stat); + stats.add(facade); + } + + } + + /** + * @return The game mode associated with this mock object + */ + public GameMode getGame() + { + return theGameMode; + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/GameModeMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/StatMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/StatMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/StatMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,81 @@ +/* + * StatMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 23/08/2009 9:47:11 AM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import pcgen.core.PCStat; +import pcgen.core.facade.StatFacade; + +/** + * The Class <code>StatMock</code> is a mock implementation of the + * StatFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>None</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class StatMock implements StatFacade +{ + private PCStat theStat; + + public StatMock(PCStat stat) + { + theStat = stat; + } + + /* (non-Javadoc) + * @see pcgen.core.facade.StatFacade#getAbbreviation() + */ + public String getAbbreviation() + { + return theStat.getAbb(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.StatFacade#getName() + */ + public String getName() + { + return theStat.getDisplayName(); + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return theStat.getDisplayName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/StatMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/TempBonusMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/TempBonusMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/TempBonusMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,65 @@ +/* + * TempBonusMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 23/08/2009 11:27:58 AM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import pcgen.core.bonus.BonusObj; +import pcgen.core.facade.TempBonusFacade; + +/** + * The Class <code>TempBonusMock</code> is a mock implementation of the + * TempBonusFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>None</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class TempBonusMock implements TempBonusFacade +{ + private BonusObj theBonus; + + public TempBonusMock(BonusObj bonus) + { + theBonus = bonus; + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return theBonus.getBonusName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/TempBonusMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/TemplateMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/TemplateMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/TemplateMock.java 2009-08-23 01:42:22 UTC (rev 10286) @@ -0,0 +1,65 @@ +/* + * TemplateMock.java + * Copyright 2009 (C) James Dempsey + * + * 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 23/08/2009 11:33:59 AM + * + * $Id$ + */ + +package pcgen.gui2.mock; + +import pcgen.core.PCTemplate; +import pcgen.core.facade.TemplateFacade; + +/** + * The Class <code>TemplateMock</code> is a mock implementation of the + * TemplateFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>None</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class TemplateMock implements TemplateFacade +{ + private PCTemplate theTemplate; + + public TemplateMock(PCTemplate template) + { + theTemplate = template; + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return theTemplate.getDisplayName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/TemplateMock.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. |
From: <jde...@us...> - 2009-08-26 09:33:44
|
Revision: 10306 http://pcgen.svn.sourceforge.net/pcgen/?rev=10306&view=rev Author: jdempsey Date: 2009-08-26 09:33:34 +0000 (Wed, 26 Aug 2009) Log Message: ----------- Switch getMaxRanks over to the CharacterFacade as it needs the context info. Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-26 08:29:49 UTC (rev 10305) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-26 09:33:34 UTC (rev 10306) @@ -23,6 +23,7 @@ import javax.swing.undo.UndoManager; import pcgen.cdom.enumeration.Gender; +import pcgen.cdom.enumeration.SkillCost; import pcgen.gui2.util.GenericComboBoxModel; import pcgen.gui2.util.GenericListModel; @@ -87,7 +88,7 @@ public float getSkillRanks(SkillFacade skill); - //public float getMaxRanks(SkillCost cost, CharacterLevelFacade level); + public float getMaxRanks(SkillCost cost, CharacterLevelFacade level); public GenericComboBoxModel<EquipmentSetFacade> getEquipmentSets(); Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java 2009-08-26 08:29:49 UTC (rev 10305) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java 2009-08-26 09:33:34 UTC (rev 10306) @@ -45,8 +45,6 @@ public SkillCost getSkillCost(SkillFacade skill); - public float getMaxRanks(SkillCost cost); - public int getRankCost(SkillCost cost); public int getGainedSkillPoints(); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2009-08-26 08:29:49 UTC (rev 10305) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2009-08-26 09:33:34 UTC (rev 10306) @@ -83,15 +83,6 @@ } /* (non-Javadoc) - * @see pcgen.core.facade.CharacterLevelFacade#getMaxRanks(pcgen.cdom.enumeration.SkillCost) - */ - public float getMaxRanks(SkillCost cost) - { - // TODO Auto-generated method stub - return 5; - } - - /* (non-Javadoc) * @see pcgen.core.facade.CharacterLevelFacade#getRankCost(pcgen.cdom.enumeration.SkillCost) */ public int getRankCost(SkillCost cost) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-26 08:29:49 UTC (rev 10305) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-26 09:33:34 UTC (rev 10306) @@ -404,8 +404,11 @@ */ public float getMaxRanks(SkillCost cost, CharacterLevelFacade level) { - //TODO: Need to implement this - return 0.0f; + if (cost == null || level == null || !pcClassLevels.contains(level)) + { + return 0.0f; + } + return (pcClassLevels.indexOf(level)+4)/cost.getCost(); } /* (non-Javadoc) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2009-08-29 23:05:44
|
Revision: 10333 http://pcgen.svn.sourceforge.net/pcgen/?rev=10333&view=rev Author: jdempsey Date: 2009-08-29 23:05:37 +0000 (Sat, 29 Aug 2009) Log Message: ----------- Add methods to get tabname and character name Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-29 21:50:54 UTC (rev 10332) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-29 23:05:37 UTC (rev 10333) @@ -104,4 +104,9 @@ public void setRace(RaceFacade race); + public String getTabName(); + + public String getName(); + + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-29 21:50:54 UTC (rev 10332) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-29 23:05:37 UTC (rev 10333) @@ -426,14 +426,35 @@ return undoManager; } + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getRace() + */ public RaceFacade getRace() { return race; } + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#setRace(pcgen.core.facade.RaceFacade) + */ public void setRace(RaceFacade race) { this.race = race; } + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getTabName() + */ + public String getTabName() + { + return theCharacter.getDisplayName(); + } + + /* (non-Javadoc) + * @see pcgen.core.facade.CharacterFacade#getName() + */ + public String getName() + { + return theCharacter.getName(); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2009-08-30 05:33:30
|
Revision: 10342 http://pcgen.svn.sourceforge.net/pcgen/?rev=10342&view=rev Author: cpmeister Date: 2009-08-30 05:33:21 +0000 (Sun, 30 Aug 2009) Log Message: ----------- Implemented level dependent skill ranks Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/filter/FilteredTreeViewPanel.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SkillInfoTab.java sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeTable.java sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeViewPane.java sandbox/cdomui/code/src/java/pcgen/gui2/util/treeview/TreeViewTableModel.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/util/event/TransparentGenericListModel.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-30 03:36:23 UTC (rev 10341) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2009-08-30 05:33:21 UTC (rev 10342) @@ -82,11 +82,11 @@ public void setRemainingSelection(AbilityCategoryFacade category, int remaining); - public int getSkillTotal(SkillFacade skill); + public int getSkillTotal(SkillFacade skill, CharacterLevelFacade level); - public int getSkillModifier(SkillFacade skill); + public int getSkillModifier(SkillFacade skill, CharacterLevelFacade level); - public float getSkillRanks(SkillFacade skill); + public float getSkillRanks(SkillFacade skill, CharacterLevelFacade level); public float getMaxRanks(SkillCost cost, CharacterLevelFacade level); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/filter/FilteredTreeViewPanel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/filter/FilteredTreeViewPanel.java 2009-08-30 03:36:23 UTC (rev 10341) +++ sandbox/cdomui/code/src/java/pcgen/gui2/filter/FilteredTreeViewPanel.java 2009-08-30 05:33:21 UTC (rev 10342) @@ -72,6 +72,11 @@ return treeViewPane; } + public void refreshModelData() + { + treeViewPane.refreshModelData(); + } + /** * delegates to JTable.getSelectionModel() * @return the row selection model Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-30 03:36:23 UTC (rev 10341) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2009-08-30 05:33:21 UTC (rev 10342) @@ -363,7 +363,7 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getSkillModifier(pcgen.core.facade.SkillFacade) */ - public int getSkillModifier(SkillFacade skill) + public int getSkillModifier(SkillFacade skill, CharacterLevelFacade level) { if (skill.getKeyStat() == null) { @@ -384,12 +384,16 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getSkillRanks(pcgen.core.facade.SkillFacade) */ - public float getSkillRanks(SkillFacade skill) + public float getSkillRanks(SkillFacade skill, CharacterLevelFacade finallevel) { float numRanks = 0.0f; for (CharacterLevelFacade level : pcClassLevels) { numRanks += ((CharacterLevelMock) level).getSkillRanks(skill); + if(level == finallevel) + { + break; + } } return numRanks; } @@ -397,9 +401,9 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getSkillTotal(pcgen.core.facade.SkillFacade) */ - public int getSkillTotal(SkillFacade skill) + public int getSkillTotal(SkillFacade skill, CharacterLevelFacade level) { - return (int) (Math.floor(getSkillRanks(skill)) + getSkillModifier(skill)); + return (int) (Math.floor(getSkillRanks(skill, level)) + getSkillModifier(skill, level)); } /* (non-Javadoc) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SkillInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SkillInfoTab.java 2009-08-30 03:36:23 UTC (rev 10341) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SkillInfoTab.java 2009-08-30 05:33:21 UTC (rev 10342) @@ -156,6 +156,7 @@ this.selectedLevel = selectedLevel; skillcostModel.setCharacterLevel(selectedLevel); treeviewModel.setCharacterLevel(selectedLevel); + skillPanel.refreshModelData(); } public Hashtable<Object, Object> createState(final CharacterFacade character) @@ -249,8 +250,7 @@ int column) { SkillFacade skill = (SkillFacade) table.getModel().getValueAt(row, 0); - model.setSkill(skill); - model.setLevel(selectedLevel); + model.configureModel(skill, selectedLevel); return spinner; } @@ -370,9 +370,9 @@ public List<?> getData(SkillFacade obj) { return Arrays.asList( - character.getSkillTotal(obj), - character.getSkillModifier(obj), - Float.valueOf(character.getSkillRanks(obj)), + character.getSkillTotal(obj, level), + character.getSkillModifier(obj, level), + Float.valueOf(character.getSkillRanks(obj, level)), level.getSkillCost(obj), obj.getSource()); } @@ -610,20 +610,16 @@ public Float getValue() { - return character.getSkillRanks(skill); + return character.getSkillRanks(skill, level); } - public void setSkill(SkillFacade skill) + public void configureModel(SkillFacade skill, CharacterLevelFacade level) { this.skill = skill; + this.level = level; fireStateChanged(); } - public void setLevel(CharacterLevelFacade level) - { - this.level = level; - } - public void setValue(Object value) { if (value instanceof Float) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeTable.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeTable.java 2009-08-30 03:36:23 UTC (rev 10341) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeTable.java 2009-08-30 05:33:21 UTC (rev 10342) @@ -72,899 +72,896 @@ public class JTreeTable extends JTableEx { - private static final long serialVersionUID = -3571248405124682593L; - /** A subclass of JTree. */ - private TreeTableCellRenderer tree; - private TreeTableModelAdapter adapter; + private static final long serialVersionUID = -3571248405124682593L; + /** A subclass of JTree. */ + private TreeTableCellRenderer tree; + private TreeTableModelAdapter adapter; - static - { - /* - JTreeTable's event handling assumes bad things about - mouse pressed/released that are not true on MacOS X. - For example, one gets NPEs thrown when the mouse is - hit because the event manager is waiting for released - and one never gets the release. - It turns out that the MetalLAF handles this happily and - thus we can use that to get appropriate line styles, - without knackering Mac support. - Fix done by LeeAnn Rucker, formerly at Apple for Javasoft. - Added to pcgen by Scott Ellsworth - */ - UIManager.put("TreeTableUI", "javax.swing.plaf.metal.MetalTreeUI"); //$NON-NLS-1$ //$NON-NLS-2$ - UIManager.put("Tree.leftChildIndent", Integer.valueOf(3)); //$NON-NLS-1$ - UIManager.put("Tree.rightChildIndent", Integer.valueOf(8)); //$NON-NLS-1$ - } - public JTreeTable() - { - this(null); - } + static + { + /* + JTreeTable's event handling assumes bad things about + mouse pressed/released that are not true on MacOS X. + For example, one gets NPEs thrown when the mouse is + hit because the event manager is waiting for released + and one never gets the release. + It turns out that the MetalLAF handles this happily and + thus we can use that to get appropriate line styles, + without knackering Mac support. + Fix done by LeeAnn Rucker, formerly at Apple for Javasoft. + Added to pcgen by Scott Ellsworth + */ + UIManager.put("TreeTableUI", "javax.swing.plaf.metal.MetalTreeUI"); //$NON-NLS-1$ //$NON-NLS-2$ + UIManager.put("Tree.leftChildIndent", Integer.valueOf(3)); //$NON-NLS-1$ + UIManager.put("Tree.rightChildIndent", Integer.valueOf(8)); //$NON-NLS-1$ + } - /** - * Constructor - * @param treeTableModel - */ - public JTreeTable(TreeTableModel treeTableModel) - { - super(); - tree = new TreeTableCellRenderer(); - tree.setRootVisible(false); + public JTreeTable() + { + this(null); + } + + /** + * Constructor + * @param treeTableModel + */ + public JTreeTable(TreeTableModel treeTableModel) + { + super(); + tree = new TreeTableCellRenderer(); + tree.setRootVisible(false); tree.setShowsRootHandles(true); - adapter = new TreeTableModelAdapter(tree); - setTreeTableModel(treeTableModel); - super.setModel(adapter); - // Force the JTable and JTree to share row selection models. - ListToTreeSelectionModelWrapper selectionWrapper = - new ListToTreeSelectionModelWrapper(); - tree.setSelectionModel(selectionWrapper); - setSelectionModel(selectionWrapper.getListSelectionModel()); + adapter = new TreeTableModelAdapter(tree); + setTreeTableModel(treeTableModel); + super.setModel(adapter); + // Force the JTable and JTree to share row selection models. + ListToTreeSelectionModelWrapper selectionWrapper = + new ListToTreeSelectionModelWrapper(); + tree.setSelectionModel(selectionWrapper); + setSelectionModel(selectionWrapper.getListSelectionModel()); - // Install the tree editor renderer and editor. - setDefaultRenderer(TreeTableNode.class, tree); - setDefaultEditor(TreeTableNode.class, new TreeTableCellEditor()); + // Install the tree editor renderer and editor. + setDefaultRenderer(TreeTableNode.class, tree); + setDefaultEditor(TreeTableNode.class, new TreeTableCellEditor()); - // No grid. - setShowGrid(false); + // No grid. + setShowGrid(false); - // No intercell spacing - setIntercellSpacing(new Dimension(0, 0)); + // No intercell spacing + setIntercellSpacing(new Dimension(0, 0)); - // And update the height of the trees row to match the table - if (tree.getRowHeight() < 1) - { - // Metal looks better like this. - setRowHeight(18); - } - else - { - // If the UI has specified a rowHeight, - // we'd better all be using the same one! - setRowHeight(tree.getRowHeight()); - } - } + // And update the height of the trees row to match the table + if (tree.getRowHeight() < 1) + { + // Metal looks better like this. + setRowHeight(18); + } + else + { + // If the UI has specified a rowHeight, + // we'd better all be using the same one! + setRowHeight(tree.getRowHeight()); + } + } - @SuppressWarnings("unchecked") - public TreeTableModel getTreeTableModel() - { - return (TreeTableModel) tree.getModel(); - } + @SuppressWarnings("unchecked") + public TreeTableModel getTreeTableModel() + { + return (TreeTableModel) tree.getModel(); + } - public void setTreeTableModel(TreeTableModel model) - { - if (model != null && !(model instanceof SortableTreeTableModel)) - { - model = new DefaultSortableTreeTableModel(model); - } - tree.setModel(model); - adapter.setTreeTableModel((SortableTreeTableModel) model); - } + public void setTreeTableModel(TreeTableModel model) + { + if (model != null && !(model instanceof SortableTreeTableModel)) + { + model = new DefaultSortableTreeTableModel(model); + } + tree.setModel(model); + adapter.setTreeTableModel((SortableTreeTableModel) model); + } - /** - * Workaround for BasicTableUI anomaly. Make sure the UI never tries to - * paint the editor. The UI currently uses different techniques to - * paint the renderers and editors and overriding setBounds() below - * is not the right thing to do for an editor. Returning -1 for the - * editing row in this case, ensures the editor is never painted. - * @return editing row - **/ - @Override - public int getEditingRow() - { - return (getColumnClass(editingColumn) == TreeTableNode.class) ? (-1) - : editingRow; - } + /** + * Workaround for BasicTableUI anomaly. Make sure the UI never tries to + * paint the editor. The UI currently uses different techniques to + * paint the renderers and editors and overriding setBounds() below + * is not the right thing to do for an editor. Returning -1 for the + * editing row in this case, ensures the editor is never painted. + * @return editing row + **/ + @Override + public int getEditingRow() + { + return (getColumnClass(editingColumn) == TreeTableNode.class) ? (-1) + : editingRow; + } - /** - * Overridden to pass the new rowHeight to the tree. - * @param aRowHeight - **/ - @Override - public void setRowHeight(int aRowHeight) - { - super.setRowHeight(aRowHeight); + /** + * Overridden to pass the new rowHeight to the tree. + * @param aRowHeight + **/ + @Override + public void setRowHeight(int aRowHeight) + { + super.setRowHeight(aRowHeight); - if ((tree != null) && (tree.getRowHeight() != aRowHeight)) - { - tree.setRowHeight(getRowHeight()); - } - } + if ((tree != null) && (tree.getRowHeight() != aRowHeight)) + { + tree.setRowHeight(getRowHeight()); + } + } - /** - * Returns the tree that is being shared between the model. - * @return JTree - **/ - public JTree getTree() - { - return tree; - } + /** + * Returns the tree that is being shared between the model. + * @return JTree + **/ + public JTree getTree() + { + return tree; + } - public void setTreeCellRenderer(TreeCellRenderer renderer) - { - tree.setCellRenderer(renderer); - } + public void setTreeCellRenderer(TreeCellRenderer renderer) + { + tree.setCellRenderer(renderer); + } - /** - * Forwards the <code>scrollRectToVisible()</code> message to the - * <code>JComponent</code>'s parent. Components that can service - * the request, such as <code>JViewport</code>, - * override this method and perform the scrolling. - * - * @param aRect the visible <code>Rectangle</code> - * @see javax.swing.JViewport - */ - @Override - public void scrollRectToVisible(Rectangle aRect) - { - Container parent; - int dx = getX(); - int dy = getY(); + /** + * Forwards the <code>scrollRectToVisible()</code> message to the + * <code>JComponent</code>'s parent. Components that can service + * the request, such as <code>JViewport</code>, + * override this method and perform the scrolling. + * + * @param aRect the visible <code>Rectangle</code> + * @see javax.swing.JViewport + */ + @Override + public void scrollRectToVisible(Rectangle aRect) + { + Container parent; + int dx = getX(); + int dy = getY(); - for (parent = getParent(); !(parent == null) && - !(parent instanceof JComponent) && - !(parent instanceof CellRendererPane); parent = - parent.getParent()) - { - final Rectangle bounds = parent.getBounds(); + for (parent = getParent(); !(parent == null) && + !(parent instanceof JComponent) && + !(parent instanceof CellRendererPane); parent = + parent.getParent()) + { + final Rectangle bounds = parent.getBounds(); - dx += bounds.x; - dy += bounds.y; - } + dx += bounds.x; + dy += bounds.y; + } - if ((parent != null) && !(parent instanceof CellRendererPane)) - { - aRect.x += dx; - aRect.y += dy; + if ((parent != null) && !(parent instanceof CellRendererPane)) + { + aRect.x += dx; + aRect.y += dy; - ((JComponent) parent).scrollRectToVisible(aRect); - aRect.x -= dx; - aRect.y -= dy; - } - } + ((JComponent) parent).scrollRectToVisible(aRect); + aRect.x -= dx; + aRect.y -= dy; + } + } - /** - * Overridden to message super and forward the method to the tree. - * Since the tree is not actually in the component hieachy it will - * never receive this unless we forward it in this manner. - **/ - @Override - public void updateUI() - { - super.updateUI(); + /** + * Overridden to message super and forward the method to the tree. + * Since the tree is not actually in the component hieachy it will + * never receive this unless we forward it in this manner. + **/ + @Override + public void updateUI() + { + super.updateUI(); - if (tree != null) - { - tree.updateUI(); - } + if (tree != null) + { + tree.updateUI(); + } - // Use the tree's default foreground and background - // colors in the table - LookAndFeel.installColorsAndFont(this, - "Tree.background", "Tree.foreground", - "Tree.font"); //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ - } + // Use the tree's default foreground and background + // colors in the table + LookAndFeel.installColorsAndFont(this, + "Tree.background", "Tree.foreground", + "Tree.font"); //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ + } - /** - * Makes sure all the path components in path are expanded (except - * for the last path component) and scrolls so that the - * node identified by the path is displayed. Only works when this - * <code>JTree</code> is contained in a <code>JScrollPane</code>. - * - * @param path the <code>TreePath</code> identifying the node to - * bring into view - */ - private void scrollPathToVisible(TreePath path) - { - if (path != null) - { - tree.makeVisible(path); + /** + * Makes sure all the path components in path are expanded (except + * for the last path component) and scrolls so that the + * node identified by the path is displayed. Only works when this + * <code>JTree</code> is contained in a <code>JScrollPane</code>. + * + * @param path the <code>TreePath</code> identifying the node to + * bring into view + */ + private void scrollPathToVisible(TreePath path) + { + if (path != null) + { + tree.makeVisible(path); - Rectangle bounds = tree.getPathBounds(path); + Rectangle bounds = tree.getPathBounds(path); - if (bounds != null) - { - scrollRectToVisible(bounds); - } - } - } + if (bounds != null) + { + scrollRectToVisible(bounds); + } + } + } - /** - * This is a wrapper class takes a TreeTableModel and implements - * the table model interface. The implementation is trivial, with - * all of the event dispatching support provided by the superclass: - * the AbstractTableModel. - * - * @version 1.2 10/27/98 - * - * @author Philip Milne - * @author Scott Violet - */ - private static class TreeTableModelAdapter extends AbstractTableModel - implements SortableTableModel, TreeModelListener, - TreeExpansionListener - { + /** + * This is a wrapper class takes a TreeTableModel and implements + * the table model interface. The implementation is trivial, with + * all of the event dispatching support provided by the superclass: + * the AbstractTableModel. + * + * @version 1.2 10/27/98 + * + * @author Philip Milne + * @author Scott Violet + */ + private static class TreeTableModelAdapter extends AbstractTableModel + implements SortableTableModel, TreeModelListener, + TreeExpansionListener + { - private JTree tree; - private SortableTreeTableModel treeTableModel; + private JTree tree; + private SortableTreeTableModel treeTableModel; - /** - * Constructor - * @param treeTableModel - * @param tree - */ - TreeTableModelAdapter(JTree tree) - { - this.tree = tree; - tree.addTreeExpansionListener(this); - } + /** + * Constructor + * @param treeTableModel + * @param tree + */ + TreeTableModelAdapter(JTree tree) + { + this.tree = tree; + tree.addTreeExpansionListener(this); + } - /** - * Install a TreeModelListener that can update the table when - * tree changes. We use delayedFireTableDataChanged as we can - * not be guaranteed the tree will have finished processing - * the event before us. - **/ - public void setTreeTableModel(SortableTreeTableModel model) - { - if (treeTableModel != null) - { - treeTableModel.removeTreeModelListener(this); - } - treeTableModel = model; - if (treeTableModel != null) - { - treeTableModel.addTreeModelListener(this); - } - fireTableStructureChanged(); - } + /** + * Install a TreeModelListener that can update the table when + * tree changes. We use delayedFireTableDataChanged as we can + * not be guaranteed the tree will have finished processing + * the event before us. + **/ + public void setTreeTableModel(SortableTreeTableModel model) + { + if (treeTableModel != null) + { + treeTableModel.removeTreeModelListener(this); + } + treeTableModel = model; + if (treeTableModel != null) + { + treeTableModel.addTreeModelListener(this); + } + fireTableStructureChanged(); + } - @Override - public boolean isCellEditable(int row, int column) - { - if (treeTableModel == null) - { - return false; - } - return treeTableModel.isCellEditable(nodeForRow(row), column); - } + @Override + public boolean isCellEditable(int row, int column) + { + if (treeTableModel == null) + { + return false; + } + return treeTableModel.isCellEditable(nodeForRow(row), column); + } - @Override - public Class<?> getColumnClass(int column) - { - if (treeTableModel == null) - { - return Object.class; - } - return treeTableModel.getColumnClass(column); - } + @Override + public Class<?> getColumnClass(int column) + { + if (treeTableModel == null) + { + return Object.class; + } + return treeTableModel.getColumnClass(column); + } - // Wrappers, implementing TableModel interface. - public int getColumnCount() - { - if (treeTableModel == null) - { - return 0; - } - return treeTableModel.getColumnCount(); - } + // Wrappers, implementing TableModel interface. + public int getColumnCount() + { + if (treeTableModel == null) + { + return 0; + } + return treeTableModel.getColumnCount(); + } - @Override - public String getColumnName(int column) - { - if (treeTableModel == null) - { - return null; - } - return treeTableModel.getColumnName(column); - } + @Override + public String getColumnName(int column) + { + if (treeTableModel == null) + { + return null; + } + return treeTableModel.getColumnName(column); + } - public int getRowCount() - { - return tree.getRowCount(); - } + public int getRowCount() + { + return tree.getRowCount(); + } - @Override - public void setValueAt(Object value, int row, int column) - { - if (treeTableModel == null) - { - return; - } - treeTableModel.setValueAt(value, nodeForRow(row), column); - } + @Override + public void setValueAt(Object value, int row, int column) + { + if (treeTableModel == null) + { + return; + } + treeTableModel.setValueAt(value, nodeForRow(row), column); + } - public Object getValueAt(int row, int column) - { - if (treeTableModel == null) - { - return null; - } - return treeTableModel.getValueAt(nodeForRow(row), column); - } + public Object getValueAt(int row, int column) + { + if (treeTableModel == null) + { + return null; + } + return treeTableModel.getValueAt(nodeForRow(row), column); + } - private Object nodeForRow(int row) - { - TreePath treePath = tree.getPathForRow(row); - if (treePath != null) - { - return treePath.getLastPathComponent(); - } - return null; - } + private Object nodeForRow(int row) + { + TreePath treePath = tree.getPathForRow(row); + if (treePath != null) + { + return treePath.getLastPathComponent(); + } + return null; + } - public void sortModel(Comparator<List<?>> comparator) - { - Enumeration<TreePath> paths = tree.getExpandedDescendants(new TreePath(treeTableModel.getRoot())); - TreePath[] selectionPaths = tree.getSelectionPaths(); - treeTableModel.sortModel(comparator); - while (paths.hasMoreElements()) - { - tree.expandPath(paths.nextElement()); - } - tree.setSelectionPaths(selectionPaths); - } + public void sortModel(Comparator<List<?>> comparator) + { + if (treeTableModel == null) + { + return; + } + Enumeration<TreePath> paths = tree.getExpandedDescendants(new TreePath( + treeTableModel.getRoot())); + TreePath[] selectionPaths = tree.getSelectionPaths(); + treeTableModel.sortModel(comparator); + while (paths.hasMoreElements()) + { + tree.expandPath(paths.nextElement()); + } + tree.setSelectionPaths(selectionPaths); + } - public void treeNodesChanged(TreeModelEvent e) - { - TreePath parentPath = e.getTreePath(); - int leadingRow = Integer.MAX_VALUE; - int trailingRow = -1; - for (Object node : e.getChildren()) - { - TreePath childPath = parentPath.pathByAddingChild(node); - int row = tree.getRowForPath(childPath); - leadingRow = Math.min(leadingRow, row); - trailingRow = Math.max(trailingRow, row); - } - fireTableRowsUpdated(leadingRow, trailingRow); - } + public void treeNodesChanged(TreeModelEvent e) + { + TreePath parentPath = e.getTreePath(); + int leadingRow = Integer.MAX_VALUE; + int trailingRow = -1; + for (Object node : e.getChildren()) + { + TreePath childPath = parentPath.pathByAddingChild(node); + int row = tree.getRowForPath(childPath); + leadingRow = Math.min(leadingRow, row); + trailingRow = Math.max(trailingRow, row); + } + fireTableRowsUpdated(leadingRow, trailingRow); + } - public void treeNodesInserted(TreeModelEvent e) - { - fireTableDataChanged(); - } + public void treeNodesInserted(TreeModelEvent e) + { + fireTableDataChanged(); + } - public void treeNodesRemoved(TreeModelEvent e) - { - fireTableDataChanged(); - } + public void treeNodesRemoved(TreeModelEvent e) + { + fireTableDataChanged(); + } - public void treeStructureChanged(TreeModelEvent e) - { - fireTableStructureChanged(); - } - // Don't use fireTableRowsInserted() here; - // the selection model would get updated twice. - public void treeExpanded(TreeExpansionEvent event) - { - fireTableDataChanged(); - } + public void treeStructureChanged(TreeModelEvent e) + { + fireTableStructureChanged(); + } + // Don't use fireTableRowsInserted() here; + // the selection model would get updated twice. - public void treeCollapsed(TreeExpansionEvent event) - { - fireTableDataChanged(); - } + public void treeExpanded(TreeExpansionEvent event) + { + fireTableDataChanged(); + } - } + public void treeCollapsed(TreeExpansionEvent event) + { + fireTableDataChanged(); + } - /** - * A TreeCellRenderer that displays a JTree. - **/ - final class TreeTableCellRenderer extends JTree implements - TableCellRenderer - { - // Last table/tree row asked to render - private int visibleRow; - private DefaultTableCellRenderer tableCellRenderer; + } - public TreeTableCellRenderer() - { - this.tableCellRenderer = new DefaultTableCellRenderer() - { + /** + * A TreeCellRenderer that displays a JTree. + **/ + final class TreeTableCellRenderer extends JTree implements + TableCellRenderer + { + // Last table/tree row asked to render - @Override - public void setBounds(int x, int y, int width, int height) - { - super.setBounds(x, y, width, height); - TreeTableCellRenderer.this.setBounds(x, y, width, height); - } + private int visibleRow; + private DefaultTableCellRenderer tableCellRenderer; - @Override - public void paint(final Graphics g) - { - TreeTableCellRenderer.this.paint(g); - paintBorder(g); - } + public TreeTableCellRenderer() + { + this.tableCellRenderer = new DefaultTableCellRenderer() + { - }; + @Override + public void setBounds(int x, int y, int width, int height) + { + super.setBounds(x, y, width, height); + TreeTableCellRenderer.this.setBounds(x, y, width, height); + } + + @Override + public void paint(final Graphics g) + { + TreeTableCellRenderer.this.paint(g); + paintBorder(g); + } + + }; //TODO: this code doesn't belong here DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); renderer.setClosedIcon(null); renderer.setLeafIcon(null); renderer.setOpenIcon(null); this.setCellRenderer(renderer); - } + } - /** - * This is overridden to set the height - * to match that of the JTable. - * @param x - * @param y - * @param w - * @param h - **/ - @Override - public void setBounds(int x, - - @SuppressWarnings("unused") int y, int w, - - @SuppressWarnings("unused") int h) - { - super.setBounds(x, 0, w, JTreeTable.this.getHeight()); - } + /** + * This is overridden to set the height + * to match that of the JTable. + * @param x + * @param y + * @param w + * @param h + **/ + @Override + public void setBounds(int x, + @SuppressWarnings("unused") int y, int w, + @SuppressWarnings("unused") int h) + { + super.setBounds(x, 0, w, JTreeTable.this.getHeight()); + } - /** - * Sets the row height of the tree and forwards - * the row height to the table. - * @param aRowHeight - **/ - @Override - public void setRowHeight(int aRowHeight) - { - if (aRowHeight > 0) - { - super.setRowHeight(aRowHeight); + /** + * Sets the row height of the tree and forwards + * the row height to the table. + * @param aRowHeight + **/ + @Override + public void setRowHeight(int aRowHeight) + { + if (aRowHeight > 0) + { + super.setRowHeight(aRowHeight); - if ((JTreeTable.this != null) && - (JTreeTable.this.getRowHeight() != aRowHeight)) - { - JTreeTable.this.setRowHeight(JTreeTable.this.getRowHeight()); - } - } - } + if ((JTreeTable.this != null) && + (JTreeTable.this.getRowHeight() != aRowHeight)) + { + JTreeTable.this.setRowHeight(JTreeTable.this.getRowHeight()); + } + } + } - /** - * TreeCellRenderer method. - * Overridden to update the visible row. - * @param table - * @param value - * @param isSelected - * @param hasFocus - * @param row - * @param column - * @return Component - **/ - public Component getTableCellRendererComponent(JTable table, - Object value, - boolean isSelected, - boolean hasFocus, - int row, - int column) - { - if (isSelected) - { - this.setBackground(table.getSelectionBackground()); - } - else - { - this.setBackground(table.getBackground()); - } + /** + * TreeCellRenderer method. + * Overridden to update the visible row. + * @param table + * @param value + * @param isSelected + * @param hasFocus + * @param row + * @param column + * @return Component + **/ + public Component getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, + int column) + { + if (isSelected) + { + this.setBackground(table.getSelectionBackground()); + } + else + { + this.setBackground(table.getBackground()); + } - visibleRow = row; + visibleRow = row; - return tableCellRenderer.getTableCellRendererComponent(table, value, - isSelected, - hasFocus, row, - column); - } + return tableCellRenderer.getTableCellRendererComponent(table, value, + isSelected, + hasFocus, row, + column); + } - /** - * Fix to bad event handling on MacOS X - * @return UI Class ID - **/ - @Override - public String getUIClassID() - { - return "TreeTableUI"; //$NON-NLS-1$ - } + /** + * Fix to bad event handling on MacOS X + * @return UI Class ID + **/ + @Override + public String getUIClassID() + { + return "TreeTableUI"; //$NON-NLS-1$ + } - /** - * Sublcassed to translate the graphics such - * that the last visible row will be drawn at 0,0. - * @param g - **/ - @Override - public void paint(final Graphics g) - { - int offset = -visibleRow * JTreeTable.this.getRowHeight(); - g.translate(0, offset); - try - { - super.paint(g); - } - catch (Exception e) - { - // TODO Handle this? - } - finally - { - g.translate(0, -offset); - } - } + /** + * Sublcassed to translate the graphics such + * that the last visible row will be drawn at 0,0. + * @param g + **/ + @Override + public void paint(final Graphics g) + { + int offset = -visibleRow * JTreeTable.this.getRowHeight(); + g.translate(0, offset); + try + { + super.paint(g); + } + catch (Exception e) + { + // TODO Handle this? + } + finally + { + g.translate(0, -offset); + } + } - /** - * updateUI is overridden to set the colors - * of the Trees renderer to match that of the table. - **/ - @Override - public void updateUI() - { - super.updateUI(); + /** + * updateUI is overridden to set the colors + * of the Trees renderer to match that of the table. + **/ + @Override + public void updateUI() + { + super.updateUI(); - // Make the tree's cell renderer use the - // table's cell selection colors. - TreeCellRenderer tcr = getCellRenderer(); + // Make the tree's cell renderer use the + // table's cell selection colors. + TreeCellRenderer tcr = getCellRenderer(); - if (tcr instanceof DefaultTreeCellRenderer) - { - DefaultTreeCellRenderer dtcr = ((DefaultTreeCellRenderer) tcr); - dtcr.setTextSelectionColor(UIManager.getColor("Table.selectionForeground")); //$NON-NLS-1$ - dtcr.setBackgroundSelectionColor(UIManager.getColor("Table.selectionBackground")); //$NON-NLS-1$ - } - } + if (tcr instanceof DefaultTreeCellRenderer) + { + DefaultTreeCellRenderer dtcr = ((DefaultTreeCellRenderer) tcr); + dtcr.setTextSelectionColor(UIManager.getColor("Table.selectionForeground")); //$NON-NLS-1$ + dtcr.setBackgroundSelectionColor(UIManager.getColor("Table.selectionBackground")); //$NON-NLS-1$ + } + } - } + } - /** - * ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel - * to listen for changes in the ListSelectionModel it maintains. Once - * a change in the ListSelectionModel happens, the paths are updated - * in the DefaultTreeSelectionModel. - **/ - private final class ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel - { + /** + * ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel + * to listen for changes in the ListSelectionModel it maintains. Once + * a change in the ListSelectionModel happens, the paths are updated + * in the DefaultTreeSelectionModel. + **/ + private final class ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel + { - static final long serialVersionUID = -3571248405124682593L; + static final long serialVersionUID = -3571248405124682593L; - // Set to true when we are updating the ListSelectionModel - private boolean updatingListSelectionModel; + // Set to true when we are updating the ListSelectionModel + private boolean updatingListSelectionModel; - private ListToTreeSelectionModelWrapper() - { - super(); - getListSelectionModel(). - addListSelectionListener( - createListSelectionListener()); - } + private ListToTreeSelectionModelWrapper() + { + super(); + getListSelectionModel(). + addListSelectionListener( + createListSelectionListener()); + } - /** - * This is overridden to set updatingListSelectionModel - * and message super. This is the only place - * DefaultTreeSelectionModel alters the ListSelectionModel. - **/ - @Override - public void resetRowSelection() - { - if (!updatingListSelectionModel) - { - updatingListSelectionModel = true; + /** + * This is overridden to set updatingListSelectionModel + * and message super. This is the only place + * DefaultTreeSelectionModel alters the ListSelectionModel. + **/ + @Override + public void resetRowSelection() + { + if (!updatingListSelectionModel) + { + updatingListSelectionModel = true; - try - { - super.resetRowSelection(); - } - finally - { - updatingListSelectionModel = false; - } - } + try + { + super.resetRowSelection(); + } + finally + { + updatingListSelectionModel = false; + } + } - // Notice how we don't message super if - // updatingListSelectionModel is true. If - // updatingListSelectionModel is true, it implies the - // ListSelectionModel has already been updated and the - // paths are the only thing that needs to be updated. - } + // Notice how we don't message super if + // updatingListSelectionModel is true. If + // updatingListSelectionModel is true, it implies the + // ListSelectionModel has already been updated and the + // paths are the only thing that needs to be updated. + } - /** - * Returns the list selection model. - * ListToTreeSelectionModelWrapper listens for changes - * to this model and updates the selected paths accordingly. - * @return ListSelectionModel - **/ - private ListSelectionModel getListSelectionModel() - { - return listSelectionModel; - } + /** + * Returns the list selection model. + * ListToTreeSelectionModelWrapper listens for changes + * to this model and updates the selected paths accordingly. + * @return ListSelectionModel + **/ + private ListSelectionModel getListSelectionModel() + { + return listSelectionModel; + } - /** - * Creates and returns an instance of ListSelectionHandler. - * @return ListSelectionListener - **/ - private ListSelectionListener createListSelectionListener() - { - return new ListSelectionHandler(); - } + /** + * Creates and returns an instance of ListSelectionHandler. + * @return ListSelectionListener + **/ + private ListSelectionListener createListSelectionListener() + { + return new ListSelectionHandler(); + } - /** - * If <code>updatingListSelectionModel</code> is false, - * this will reset the selected paths from the selected - * rows in the list selection model. - **/ - private void updateSelectedPathsFromSelectedRows() - { - if (!updatingListSelectionModel) - { - updatingListSelectionModel = true; + /** + * If <code>updatingListSelectionModel</code> is false, + * this will reset the selected paths from the selected + * rows in the list selection model. + **/ + private void updateSelectedPathsFromSelectedRows() + { + if (!updatingListSelectionModel) + { + updatingListSelectionModel = true; - try - { - int[] sRows = getSelectedRows(); + try + { + int[] sRows = getSelectedRows(); - if ((sRows == null) || (sRows.length == 0)) - { - return; - } + if ((sRows == null) || (sRows.length == 0)) + { + return; + } - int count = 0; + int count = 0; - for (int i = 0; i < sRows.length; i++) - { - if (tree.getPathForRow(sRows[i]) != null) - { - count++; - } - } + for (int i = 0; i < sRows.length; i++) + { + if (tree.getPathForRow(sRows[i]) != null) + { + count++; + } + } - if (count == 0) - { - return; - } + if (count == 0) + { + return; + } - TreePath[] tps = new TreePath[count]; - count = 0; + TreePath[] tps = new TreePath[count]; + count = 0; - for (int i = 0; i < sRows.length; i++) - { - TreePath tp = tree.getPathForRow(sRows[i]); + for (int i = 0; i < sRows.length; i++) + { + TreePath tp = tree.getPathForRow(sRows[i]); - if (tp != null) - { - tps[count++] = tp; - } - } + if (tp != null) + { + tps[count++] = tp; + } + } - // don't ned a clear as we are - // using setSelectionPaths() - //clearSelection(); - setSelectionPaths(tps); - } - finally - { - updatingListSelectionModel = false; - } - } - } + // don't ned a clear as we are + // using setSelectionPaths() + //clearSelection(); + setSelectionPaths(tps); + } + finally + { + updatingListSelectionModel = false; + } + } + } - /** - * Class responsible for calling - * updateSelectedPathsFromSelectedRows when the - * selection of the list changse. - **/ - final class ListSelectionHandler implements ListSelectionListener - { + /** + * Class responsible for calling + * updateSelectedPathsFromSelectedRows when the + * selection of the list changse. + **/ + final class ListSelectionHandler implements ListSelectionListener + { - /** - * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent) - */ - public void valueChanged( - - @SuppressWarnings("unused") ListSelectionEvent e) - { - updateSelectedPathsFromSelectedRows(); - } + /** + * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent) + */ + public void valueChanged( + @SuppressWarnings("unused") ListSelectionEvent e) + { + updateSelectedPathsFromSelectedRows(); + } - } - } + } + } - /** - * TreeTableCellEditor implementation. - * Component returned is the JTree. - **/ - private final class TreeTableCellEditor implements TableCellEditor - { + /** + * TreeTableCellEditor implementation. + * Component returned is the JTree. + **/ + private final class TreeTableCellEditor implements TableCellEditor + { - /** - * Overridden to return false, and if the event is a mouse event - * it is forwarded to the tree.<p> - * The behavior for this is debatable, and should really be offered - * as a property. By returning false, all keyboard actions are - * implemented in terms of the table. By returning true, the - * tree would get a chance to do something with the keyboard - * events. For the most part this is ok. But for certain keys, - * such as left/right, the tree will expand/collapse where as - * the table focus should really move to a different column. Page - * up/down should also be implemented in terms of the table. - * By returning false this also has the added benefit that clicking - * outside of the bounds of the tree node, but still in the tree - * column will select the row, whereas if this returned true - * that wouldn't be the case. - * <p>By returning false we are also enforcing the policy that - * the tree will never be editable (at least by a key sequence). - * @param e - * @return true if cell editable - */ - public boolean isCellEditable(EventObject e) - { - if (e instanceof MouseEvent) - { - for (int counter = getColumnCount() - 1; counter >= 0; counter--) - { - if (getColumnClass(counter) == TreeTableNode.class) - { - MouseEvent me = (MouseEvent) e; - MouseEvent newME = - new MouseEvent(tree, me.getID(), me.getWhen(), - me.getModifiers(), me.getX(), - me.getY(), me.getClickCount(), - me.isPopupTrigger()); - tree.dispatchEvent(newME); + /** + * Overridden to return false, and if the event is a mouse event + * it is forwarded to the tree.<p> + * The behavior for this is debatable, and should really be offered + * as a property. By returning false, all keyboard actions are + * implemented in terms of the table. By returning true, the + * tree would get a chance to do something with the keyboard + * events. For the most part this is ok. But for certain keys, + * such as left/right, the tree will expand/collapse where as + * the table focus should really move to a different column. Page + * up/down should also be implemented in terms of the table. + * By returning false this also has the added benefit that clicking + * outside of the bounds of the tree node, but still in the tree + * column will select the row, whereas if this returned true + * that wouldn't be the case. + * <p>By returning false we are also enforcing the policy that + * the tree will never be editable (at least by a key sequence). + * @param e + * @return true if cell editable + */ + public boolean isCellEditable(EventObject e) + { + if (e instanceof MouseEvent) + { + for (int counter = getColumnCount() - 1; counter >= 0; counter--) + { + if (getColumnClass(counter) == TreeTableNode.class) + { + MouseEvent me = (MouseEvent) e; + MouseEvent newME = + new MouseEvent(tree, me.getID(), me.getWhen(), + me.getModifiers(), me.getX(), + me.getY(), me.getClickCount(), + me.isPopupTrigger()); + tree.dispatchEvent(newME); - break; - } - } - } + break; + } + } + } - return false; - } + return false; + } - /** - * @see javax.swing.table.TableCellEditor#getTableCellEditorComponent(javax.swing.JTable, java.lang.Object, boolean, int, int) - */ - public Component getTableCellEditorComponent( - - @SuppressWarnings("unused") JTable table, - - @SuppressWarnings("unused") Object value, - - @SuppressWarnings("unused") boolean isSelected, - - @SuppressWarnings("unused") int r, - - @SuppressWarnings("unused") int c) - { - return tree; - } + /** + * @see javax.swing.table.TableCellEditor#getTableCellEditorComponent(javax.swing.JTable, java.lang.Object, boolean, int, int) + */ + public Component getTableCellEditorComponent( + @SuppressWarnings("unused") JTable table, + @SuppressWarnings("unused") Object value, + @SuppressWarnings("unused") boolean isSelected, + @SuppressWarnings("unused") int r, + @SuppressWarnings("unused") int c) + { + return tree; + } - public Object getCellEditorValue() - { - return null; - } + public Object getCellEditorValue() + { + return null; + } - public boolean shouldSelectCell(EventObject anEvent) - { - return false; - } + public boolean shouldSelectCell(EventObject anEvent) + { + return false; + } - public boolean stopCellEditing() - { - return true; - } + public boolean stopCellEditing() + { + return true; + } - public void cancelCellEditing() - { + public void cancelCellEditing() + { + } - } + public void addCellEditorListener(CellEditorListener l) + { + } - public void addCellEditorListener(CellEditorListener l) - { + public void removeCellEditorListener(CellEditorListener l) + { + } - } + } - public void removeCellEditorListener(CellEditorListener l) - { + /** + * Associates a popup menu with the tree table. + * + * <p>This handles showing the popup based on a right click and also handles + * any menu accelerators. + * + * @param aPopupMenu Menu to associate. + */ + public void addPopupMenu(final JPopupMenu aPopupMenu) + { + addMouseListener(new PopupListener(this, aPopupMenu)); + } - } + private class PopupListener extends MouseAdapter + { - } + private JPopupMenu theMenu; + private JTree theTree; - /** - * Associates a popup menu with the tree table. - * - * <p>This handles showing the popup based on a right click and also handles - * any menu accelerators. - * - * @param aPopupMenu Menu to associate. - */ - public void addPopupMenu(final JPopupMenu aPopupMenu) - { - addMouseListener(new PopupListener(this, aPopupMenu)); - } + private PopupListener(final JTreeTable treeTable, + final JPopupMenu aMenu) + { + theTree = treeTable.getTree(); + theMenu = aMenu; + } - private class PopupListener extends MouseAdapter - { + /** + * Overridden to potential show the popup menu. + * + * @see java.awt.event.MouseAdapter#mousePressed(java.awt.event.MouseEvent) + */ + @Override + public void mousePressed(MouseEvent evt) + { + maybeShowPopup(evt); + } - private JPopupMenu theMenu; - private JTree theTree; + /** + * Overridden to potentially show the popup menu. + * + * @see java.awt.event.MouseAdapter#mouseReleased(java.awt.event.MouseEvent) + */ + @Override + public void mouseReleased(MouseEvent evt) + { + maybeShowPopup(evt); + } - private PopupListener(final JTreeTable treeTable, - final JPopupMenu aMenu) - { - theTree = treeTable.getTree(); - theMenu = aMenu; - } + private void maybeShowPopup(MouseEvent evt) + { + if (evt.isPopupTrigger()) + { + final TreePath selPath = + theTree.getClosestPathForLocation(evt.getX(), evt.getY()); - /** - * Overridden to potential show the popup menu. - * - * @see java.awt.event.MouseAdapter#mousePressed(java.awt.event.MouseEvent) - */ - @Override - public void mousePressed(MouseEvent evt) - { - maybeShowPopup(evt); - } + if (selPath == null) + { + return; + } - /** - * Overridden to potentially show the popup menu. - * - * @see java.awt.event.MouseAdapter#mouseReleased(java.awt.event.MouseEvent) - */ - @Override - public void mouseReleased(MouseEvent evt) - { - maybeShowPopup(evt); - } + if (theTree.isSelectionEmpty()) + { + theTree.setSelectionPath(selPath); + theMenu.show(evt.getComponent(), evt.getX(), evt.getY()); + } + else if (!theTree.isPathSelected(selPath)) + { + theTree.setSelectionPath(selPath); + theMenu.show(evt.getComponent(), evt.getX(), evt.getY()); + } + else + { + theTree.addSelectionPath(selPath); + theMenu.show(evt.getComponent(), evt.getX(), evt.getY()); + } + } + } - private void maybeShowPopup(MouseEvent evt) - { - if (evt.isPopupTrigger()) - { - final TreePath selPath = - theTree.getClosestPathForLocation(evt.getX(), evt.getY()); - - if (selPath == null) - { - return; - } - - if (theTree.isSelectionEmpty()) - { - theTree.setSelectionPath(selPath); - theMenu.show(evt.getComponent(), evt.getX(), evt.getY()); - } - else if (!theTree.isPathSelected(selPath)) - { - theTree.setSelectionPath(selPath); - theMenu.show(evt.getComponent(), evt.getX(), evt.getY()); - } - else - { - theTree.addSelectionPath(selPath); - theMenu.show(evt.getComponent(), evt.getX(), evt.getY()); - } - } - } - - } + } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeViewPane.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeViewPane.java 2009-08-30 03:36:23 UTC (rev 10341) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/JTreeViewPane.java 2009-08-30 05:33:21 UTC (rev 10342) @@ -109,6 +109,15 @@ return viewModel; } + public void refreshModelData() + { + if (treetableModel != null) + { + treetableModel.refreshData(); + } + getTable().repaint(); + } + public void setTreeCellRenderer(TreeCellRenderer renderer) { getTable().setTreeCellRenderer(renderer); Added: sandbox/cdomui/code/src/java/pcgen/gui2/util/event/TransparentGenericListModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/event/TransparentGenericListModel.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/event/TransparentGenericListModel.java 2009-08-30 05:33:21 UTC (rev 10342) @@ -0,0 +1,136 @@ +/* + * TransparentGenericListModel.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Aug 29, 2009, 9:03:09 PM + */ +package pcgen.gui2.util.event; + +import javax.swing.event.EventListenerList; +import pcgen.gui2.util.*; +import javax.swing.event.ListDataListener; +import pcgen.gui2.util.event.GenericListDataEvent; +import pcgen.gui2.util.event.GenericListDataListener; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class TransparentGenericListModel<E> implements GenericListModel<E>, + GenericListDataListener<E> +{ + + private final EventListenerList listenerList = new EventListenerList(); + private final GenericListModel<E> model; + + public TransparentGenericListModel(GenericListModel<E> model) + { + this.model = model; + model.addGenericListDataListener(this); + } + + public E getElementAt(int index) + { + return model.getElementAt(index); + } + + public void addGenericListDataListener(GenericListDataListener<? super E> l) + { + listenerList.add(GenericListDataListener.class, l); + } + + public void removeGenericListDataListener(GenericListDataListener<?> l) + { + listenerList.remove(GenericListDataListener.class, l); + } + + public int getSize() + { + return model.getSize(); + } + + public void addListDataListener(ListDataListener l) + { + listenerList.add(ListDataListener.class, l); + } + + public void removeListDataListener(ListDataListener l) + { + listenerList.remove(ListDataListener.class, l); + } + + @SuppressWarnings("unchecked") + public void intervalAdded(GenericListDataEvent<E> e) + { + Object[] listeners = listenerList.getListenerList(); + + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + Object listener = listeners[i]; + + if (listener == ListDataListener.class) + { + ((ListDataListener) listeners[i + 1]).intervalAdded(e); + } + else if (listener == GenericListDataListener.class) + { + ((GenericListDataListener) listeners[i + 1]).intervalAdded(e); + } + } + } + + @SuppressWarnings("unchecked") + public void intervalRemoved(GenericListDataEvent<E> e) + { + Object[] listeners = listenerList.getListenerList(); + + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + Object listener = listeners[i]; + + if (listener == ListDataListener.class) + { + ((ListDataListener) listeners[i + 1]).intervalRemoved(e); + } + else if (listener == GenericListDataListener... [truncated message content] |
From: <cpm...@us...> - 2009-09-03 08:25:39
|
Revision: 10385 http://pcgen.svn.sourceforge.net/pcgen/?rev=10385&view=rev Author: cpmeister Date: 2009-09-03 08:25:31 +0000 (Thu, 03 Sep 2009) Log Message: ----------- Plugin system update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriterFactory.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java Modified: sandbox/cdomui/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriterFactory.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriterFactory.java 2009-09-02 08:10:52 UTC (rev 10384) +++ sandbox/cdomui/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriterFactory.java 2009-09-03 08:25:31 UTC (rev 10385) @@ -32,12 +32,13 @@ import java.util.Map; import pcgen.persistence.PersistenceLayerException; +import pcgen.system.PluginLoader; import pcgen.util.Logging; /** * A Factory for PreReq Writing */ -public class PrerequisiteWriterFactory +public class PrerequisiteWriterFactory implements PluginLoader { private static PrerequisiteWriterFactory instance = null; private static Map<String, PrerequisiteWriterInterface> parserLookup = @@ -105,4 +106,14 @@ parserLookup.put(kindHandled.toLowerCase(), testClass); } + + public void loadPlugin(Class<?> clazz) throws Exception + { + register((PrerequisiteWriterInterface) clazz.newInstance()); + } + + public Class[] getPluginClasses() + { + return new Class[]{PrerequisiteWriterInterface.class}; + } } Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-02 08:10:52 UTC (rev 10384) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-03 08:25:31 UTC (rev 10385) @@ -20,16 +20,22 @@ */ package pcgen.system; -import java.util.Observable; -import java.util.Observer; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; +import org.apache.commons.lang.SystemUtils; +import pcgen.core.Globals; import pcgen.core.SettingsHandler; import pcgen.core.bonus.Bonus; +import pcgen.core.prereq.PrerequisiteTestFactory; import pcgen.gui2.SplashScreen; import pcgen.persistence.PersistenceLayerException; +import pcgen.persistence.lst.output.prereq.PrerequisiteWriterFactory; import pcgen.persistence.lst.prereq.PreParserFactory; import pcgen.rules.persistence.TokenLibrary; +import pcgen.util.Logging; /** * @@ -46,6 +52,48 @@ loadPlugins(); } + private static void loadProperties() + { + } + + private static void loadFilePaths() + { + File file; + String filePath; + // first see if it was specified on the command line + filePath = System.getProperty("pcgen.filepaths"); //$NON-NLS-1$ + if (filePath != null) + { + file = new File(expandRelativePath(filePath)); + } + else + { + file = new File(SystemUtils.USER_DIR); + } + if (file.exists()) + { + if (file.isDirectory()) + { + file = new File(file, "filepaths.ini"); + } + if (!file.canWrite()) + { + Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + + "Filepath changes will not be saved. File is " + file.getAbsolutePath()); + } + } + } + + private static String expandRelativePath(String path) + { + if (path.startsWith("@")) + { + path = System.getProperty("user.dir") + File.separator + path.substring(1); + } + + return path; + } + private static void loadPlugins() { PluginClassLoader loader = new PluginClassLoader(SettingsHandler.getGmgenPluginDir()); @@ -59,6 +107,8 @@ { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } + loader.addPluginLoader(PrerequisiteTestFactory.getInstance()); + loader.addPluginLoader(PrerequisiteWriterFactory.getInstance()); loader.addObserver(new SplashScreen()); loader.loadPlugins(); } Added: sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java 2009-09-03 08:25:31 UTC (rev 10385) @@ -0,0 +1,48 @@ +/* + * PCGenProperties.java + * Copyright 2009 Connor Petty <cpm...@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 + * + * Created on Sep 2, 2009, 10:35:31 PM + */ +package pcgen.system; + +import java.util.Properties; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public final class PCGenProperties extends Properties +{ + + public static final String FILE_PATH_PROPERTIES = "pcgen.filepaths"; + private static PCGenProperties instance; + + private PCGenProperties() + { + } + + public static PCGenProperties getInstance() + { + if (instance == null) + { + instance = new PCGenProperties(); + } + return instance; + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2009-09-02 08:10:52 UTC (rev 10384) +++ sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2009-09-03 08:25:31 UTC (rev 10385) @@ -80,8 +80,7 @@ } catch (IOException ex) { - Logging.log(Level.SEVERE, - null, ex); + Logging.log(Level.SEVERE, null, ex); } } setChanged(); @@ -96,6 +95,7 @@ }); ZipFile file = new ZipFile(url.getFile()); Enumeration<? extends ZipEntry> entries = file.entries(); + boolean pluginFound = false; while (entries.hasMoreElements()) { String name = entries.nextElement().getName(); @@ -104,7 +104,7 @@ name = StringUtils.removeEnd(name, ".class").replace('/', '.'); try { - processClass(Class.forName(name, true, loader)); + pluginFound |= processClass(Class.forName(name, true, loader)); } catch (Exception ex) { @@ -112,15 +112,19 @@ } } } + if (!pluginFound) + { + Logging.log(Logging.WARNING, "Plugin not found in " + file.getName()); + } } @SuppressWarnings("unchecked") - private void processClass(Class<?> clazz) + private boolean processClass(Class<?> clazz) { int modifiers = clazz.getModifiers(); + boolean loaded = false; if (!Modifier.isInterface(modifiers) && !Modifier.isAbstract(modifiers)) { - boolean loaded = false; for (Class<?> key : loaderMap.getKeySet()) { if (key != null && !key.isAssignableFrom(clazz)) @@ -145,11 +149,8 @@ } } } - if(!loaded) - { - Logging.log(Logging.WARNING, "PluginLoader not found for "+clazz); - } } + return loaded; } private static void findJarUrls(File directory, List<URL> list) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |