// 1) add groups to area
List addedGroups = groupsChoice.getAddedRows();
Iterator iterator = addedGroups.iterator();
while (iterator.hasNext()) {
Integer position = (Integer) iterator.next();
BusinessGroup group = groupsDataModel.getGroup(position.intValue());
// refresh group to prevent stale object exception and context proxy
// issues
group = BusinessGroupManagerImpl.getInstance().loadBusinessGroup(group);
// refresh group also in table model
this.allGroups.set(position.intValue(), group);
// add group now to area and update in area group list
areaManager.addBGToBGArea(group, area);
this.inAreaGroups.add(group);
}
// 2) remove groups from area
List removedGroups = groupsChoice.getRemovedRows();
iterator = removedGroups.iterator();
while (iterator.hasNext()) {
Integer position = (Integer) iterator.next();
BusinessGroup group = groupsDataModel.getGroup(position.intValue());
areaManager.removeBGFromArea(group, area);
this.inAreaGroups.remove(group);
}
}