public synchronized void removeOrgGroup(OrgGroup o) { if (isDataEditable(ResUnit.OrgGroup)) { for (Position position : getPositions()) { OrgGroup group = position.getOrgGroup(); if ((group != null) && group.getID().equals(o.getID())) { position.setOrgGroup((OrgGroup) null); getDataSource(ResUnit.Position).update(position); } } for (OrgGroup group : getOrgGroups()) { OrgGroup owner = group.getBelongsTo(); if ((owner != null) && owner.getID().equals(o.getID())) { group.setBelongsTo((OrgGroup) null); getDataSource(ResUnit.OrgGroup).update(group); } } delOrgGroup(o); getDataSource(ResUnit.OrgGroup).delete(o); } }