private void resetLevelMap() { finalLevelMap.clear(); for (int i = levels.getSize() - 1; i >= 0; i--) { String c = levels.getClassTaken(levels.getElementAt(i)).getKeyName(); if (!finalLevelMap.containsKey(c)) { finalLevelMap.put(c, i); } } }
@Override public Object getValueAt(int rowIndex, int columnIndex) { if (rowIndex == levels.getSize()) { return null; } switch (columnIndex) { case 0: return rowIndex + 1; case 1: return levels.getHPGained(levels.getElementAt(rowIndex)); case 2: ClassFacade c = levels.getClassTaken(levels.getElementAt(rowIndex)); String classKey = c.getKeyName(); if (finalLevelMap.get(classKey) == rowIndex) { return c.toString() + " (" + character.getClassLevel(c) + ")"; } return c.toString(); default: return null; } }
private void levelChanged(CharacterLevelEvent e) { int firstRow = e.getBaseLevelIndex(); int lastRow = e.affectsHigherLevels() ? levels.getSize() - 1 : firstRow; fireTableRowsUpdated(firstRow, lastRow); }
@Override public void propertyChange(PropertyChangeEvent evt) { fireTableRowsUpdated(levels.getSize(), levels.getSize()); }
@Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { fireTableRowsUpdated(levels.getSize(), levels.getSize()); } }
@Override public boolean isCellEditable(int rowIndex, int columnIndex) { return rowIndex >= levels.getSize() - 1 && columnIndex == 2; }
@Override public int getRowCount() { return levels.getSize() + 1; }