diff --git a/src/main/java/org/olat/group/ui/BusinessGroupTableModel.java b/src/main/java/org/olat/group/ui/BusinessGroupTableModel.java index f5646ba4362d7f931f9636a98052d01f1f82ac83..eaf48cfc64929e847aa806ce17d0d48b6263c81e 100644 --- a/src/main/java/org/olat/group/ui/BusinessGroupTableModel.java +++ b/src/main/java/org/olat/group/ui/BusinessGroupTableModel.java @@ -91,5 +91,8 @@ public class BusinessGroupTableModel extends DefaultTableDataModel { public BusinessGroup getBusinessGroupAt(int row) { return (BusinessGroup) objects.get(row); } - + + public void removeBusinessGroup(BusinessGroup businessGroup) { + objects.remove(businessGroup); + } } \ No newline at end of file diff --git a/src/main/java/org/olat/group/ui/main/BGMainController.java b/src/main/java/org/olat/group/ui/main/BGMainController.java index a8671243049394cf5c6474aa2d029ebbda0c1477..826863c41ba069523f3a243c9be1f79378ffc57a 100644 --- a/src/main/java/org/olat/group/ui/main/BGMainController.java +++ b/src/main/java/org/olat/group/ui/main/BGMainController.java @@ -318,7 +318,15 @@ public class BGMainController extends MainLayoutBasicController implements Activ TableEvent te = (TableEvent) event; String actionid = te.getActionId(); int rowid = te.getRowId(); - currBusinessGroup = groupListModel.getBusinessGroupAt(rowid); + BusinessGroup selectedBusinessGroup = groupListModel.getBusinessGroupAt(rowid); + //reload the group + currBusinessGroup = BusinessGroupManagerImpl.getInstance().loadBusinessGroup(selectedBusinessGroup.getKey(), false); + if(currBusinessGroup == null) { + groupListModel.removeBusinessGroup(selectedBusinessGroup); + groupListCtr.modelChanged(); + return; + } + String trnslP = currBusinessGroup.getName(); if (actionid.equals(TABLE_ACTION_LAUNCH)) { diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java b/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java index 128e859a8605d1101d54c961526bf362e7cdabbc..c2aa075ae9a1e68c1ea44b425b1d99d7951a2366 100644 --- a/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java +++ b/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java @@ -119,4 +119,14 @@ public class BusinessGroupTableModelWithType extends DefaultTableDataModel imple BGTableItem wrapped = (BGTableItem)objects.get(row); return wrapped.getBusinessGroup(); } + + public void removeBusinessGroup(BusinessGroup bg) { + for(int i=objects.size(); i-->0; ) { + BGTableItem wrapped = (BGTableItem)objects.get(i); + if(bg.equals(wrapped.getBusinessGroup())) { + objects.remove(i); + return; + } + } + } } \ No newline at end of file diff --git a/src/main/java/org/olat/group/ui/management/BGManagementController.java b/src/main/java/org/olat/group/ui/management/BGManagementController.java index 1278b32c2955189bd61684d8ffb3615a3f661c11..83a354bd1fbd68098dcb6c889234a721246f90e6 100644 --- a/src/main/java/org/olat/group/ui/management/BGManagementController.java +++ b/src/main/java/org/olat/group/ui/management/BGManagementController.java @@ -572,8 +572,12 @@ public class BGManagementController extends MainLayoutBasicController implements TableEvent te = (TableEvent) event; String actionid = te.getActionId(); int rowid = te.getRowId(); - this.currentGroup = groupListModel.getBusinessGroupAt(rowid); - if (actionid.equals(CMD_GROUP_EDIT)) { + BusinessGroup selectedGroup = groupListModel.getBusinessGroupAt(rowid); + currentGroup = BusinessGroupManagerImpl.getInstance().loadBusinessGroup(selectedGroup.getKey(), false); + if(currentGroup == null) { + groupListModel.removeBusinessGroup(selectedGroup); + groupListCtr.modelChanged(); + } else if (actionid.equals(CMD_GROUP_EDIT)) { doGroupEdit(ureq); } else if (actionid.equals(CMD_GROUP_RUN)) { doGroupRun(ureq);