@Override public void elementAdded(ListEvent<CharacterLevelFacade> e) { editor.cancelCellEditing(); int i = e.getIndex(); String c = levels.getClassTaken(levels.getElementAt(i)).getKeyName(); finalLevelMap.put(c, i); // Do a full refresh as the previous max class level row may be affected fireTableDataChanged(); }
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 @SuppressWarnings("unchecked") public List<TreeViewPath<SkillFacade>> getPaths(SkillFacade pobj) { List<Object> path = new ArrayList<Object>(); int index = selectionModel.getMinSelectionIndex(); if (index >= 0) { CharacterLevelFacade level = levels.getElementAt(index); path.add(levels.getSkillCost(level, pobj)); } return Arrays.asList(createTreeViewPath(pobj, path.toArray())); }
@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; } }
@Override public Object getData(SkillFacade obj, int column) { if (selectionModel.isSelectionEmpty()) { switch (column) { case 0: case 1: case 4: return 0; case 2: return 0.0; case 3: case 5: return null; case 6: return obj.getSource(); default: return null; } } int index = selectionModel.getMinSelectionIndex(); CharacterLevelFacade level = levels.getElementAt(index); SkillBreakdown skillBreakdown = levels.getSkillBreakdown(level, obj); switch (column) { case 0: return skillBreakdown.total; case 1: return skillBreakdown.modifier; case 2: return skillBreakdown.ranks; case 3: return levels.getSkillCost(level, obj) == SkillCost.CLASS ? LanguageBundle.getString("in_yes") : //$NON-NLS-1$ LanguageBundle.getString("in_no"); // $NON-NLS-1$ case 4: return levels.getSkillCost(level, obj).getCost(); case 5: return character.getInfoFactory().getDescription(obj); case 6: return obj.getSource(); default: return null; } }