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. |