private void updateSelections() { /* Use set intersection/join's to figure out what updates have been done */ /* First, find which temporary bonuses have been removed, and which have been added */ Set<String> newValues = pc.getTempBonusNames(); Set<String> oldValues = new TreeSet<String>(tempBonusWidgets.keySet()); oldValues.removeAll(newValues); newValues.removeAll(tempBonusWidgets.keySet()); if (!newValues.isEmpty()) { addTempBonus(newValues); } if (!oldValues.isEmpty()) { removeTempBonus(oldValues); } /* Now, same for equipment sets. */ newValues.clear(); oldValues.clear(); newValues.addAll(equipSet2Set(pc.getEquipSet())); oldValues.addAll(eqSetWidgets.keySet()); oldValues.removeAll(newValues); newValues.removeAll(eqSetWidgets.keySet()); if (!newValues.isEmpty()) { addEquipSets(newValues); } if (!oldValues.isEmpty()) { removeEquipSets(oldValues); } }