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 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();
 }
Beispiel #3
0
 @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()));
 }
 public ClassLevelTableModel(CharacterFacade character, JTable table, JComboBox comboBox) {
   super();
   this.character = character;
   this.levels = character.getCharacterLevelsFacade();
   this.finalLevelMap = new HashMap<>();
   resetLevelMap();
   levels.addListListener(this);
   levels.addClassListener(this);
   levels.addHitPointListener(this);
   this.classComboBox = comboBox;
   this.classTable = table;
 }
Beispiel #5
0
 @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;
   }
 }
 @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;
 }
Beispiel #12
0
 public void install(FilteredTreeViewTable<CharacterFacade, SkillFacade> ftvt) {
   this.table = ftvt;
   ftvt.setTreeViewModel(this);
   levels.addSkillBonusListener(this);
   selectionModel.addListSelectionListener(this);
 }
Beispiel #13
0
 public void uninstall() {
   table = null;
   levels.removeSkillBonusListener(this);
   selectionModel.removeListSelectionListener(this);
 }