diff --git a/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java b/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java index c43c2c593e7bba3ce796bc5bed4b799e361ffcaa..6eef757f46a58aeb85a2a188aa5d18b9e09bb0b6 100644 --- a/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java +++ b/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java @@ -46,7 +46,6 @@ import org.olat.group.model.BusinessGroupSelectionEvent; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.AbstractBusinessGroupListController; import org.olat.group.ui.main.BGAccessControlledCellRenderer; -import org.olat.group.ui.main.BGResourcesCellRenderer; import org.olat.group.ui.main.BGTableItem; import org.olat.group.ui.main.BusinessGroupNameCellRenderer; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; @@ -99,8 +98,7 @@ public class CourseBusinessGroupListController extends AbstractBusinessGroupList groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor(new ResourcesColumnDescriptor(this, mainVC, getTranslator())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.tutorsCount.i18n(), Cols.tutorsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.participantsCount.i18n(), Cols.participantsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.freePlaces.i18n(), Cols.freePlaces.ordinal(), TABLE_ACTION_LAUNCH, getLocale())); diff --git a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java index 10d6bf141f38cb7e87b67ae6a184d12642a73a38..4c191acaf0f43f740cf3a703d99b2adbb944eff5 100644 --- a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java @@ -25,6 +25,7 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -38,6 +39,8 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; +import org.olat.core.gui.components.table.ColumnDescriptor; +import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.Table; import org.olat.core.gui.components.table.TableController; import org.olat.core.gui.components.table.TableEvent; @@ -56,6 +59,7 @@ import org.olat.core.gui.control.generic.wizard.Step; import org.olat.core.gui.control.generic.wizard.StepRunnerCallback; import org.olat.core.gui.control.generic.wizard.StepsMainRunController; import org.olat.core.gui.control.generic.wizard.StepsRunContext; +import org.olat.core.gui.translator.Translator; import org.olat.core.id.Identity; import org.olat.core.id.OLATResourceable; import org.olat.core.id.Roles; @@ -83,6 +87,7 @@ import org.olat.group.model.MembershipModification; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.right.BGRightManager; import org.olat.group.ui.NewBGController; +import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; import org.olat.group.ui.wizard.BGConfigBusinessGroup; import org.olat.group.ui.wizard.BGConfigToolsStep; import org.olat.group.ui.wizard.BGCopyBusinessGroup; @@ -847,4 +852,93 @@ public abstract class AbstractBusinessGroupListController extends BasicControlle groupListCtr.modelChanged(); return groups; } + + protected static class RoleColumnDescriptor extends CustomRenderColumnDescriptor { + public RoleColumnDescriptor(Locale locale) { + super(Cols.role.i18n(), Cols.role.ordinal(), null, locale, ColumnDescriptor.ALIGNMENT_LEFT, new BGRoleCellRenderer(locale)); + } + + @Override + public int compareTo(int rowa, int rowb) { + Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); + Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); + if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { + return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); + } + return super.compareTo(rowa, rowb); + } + } + + protected static class MarkColumnDescriptor extends CustomRenderColumnDescriptor { + + public MarkColumnDescriptor(Controller listeningController, VelocityContainer container, Translator translator) { + super(Cols.mark.i18n(), Cols.resources.ordinal(), null, translator.getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, + new BGMarkCellRenderer(listeningController, container, translator)); + } + + @Override + public int compareTo(int rowa, int rowb) { + Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); + Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); + if(a instanceof BGTableItem && b instanceof BGTableItem) { + BGTableItem t1 = (BGTableItem)a; + BGTableItem t2 = (BGTableItem)b; + if(t1.isMarked()) { + if(t2.isMarked()) { + return super.compareString(t1.getBusinessGroupName(), t2.getBusinessGroupName()); + } + return -1; + } else if(t2.isMarked()) { + return 1; + } + return super.compareString(t1.getBusinessGroupName(), t2.getBusinessGroupName()); + } + return super.compareTo(rowa, rowb); + } + } + + protected static class ResourcesColumnDescriptor extends CustomRenderColumnDescriptor { + + public ResourcesColumnDescriptor(Controller listeningController, VelocityContainer container, Translator translator) { + super(Cols.resources.i18n(), Cols.resources.ordinal(), null, translator.getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, + new BGResourcesCellRenderer(listeningController, container, translator)); + } + + @Override + public int compareTo(int rowa, int rowb) { + Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); + Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); + if(a instanceof BGTableItem && b instanceof BGTableItem) { + List<RepositoryEntryShort> r1 = ((BGTableItem)a).getRelations(); + List<RepositoryEntryShort> r2 = ((BGTableItem)b).getRelations(); + + if(r1 != null && r1.size() > 0) { + if(r2 != null && r2.size() > 0) { + return compareTo(r1, r2); + } + return 1; + } + + if(r2 != null && r2.size() > 0) { + return -1; + } + } + return super.compareTo(rowa, rowb); + } + + private int compareTo(List<RepositoryEntryShort> r1, List<RepositoryEntryShort> r2) { + int size = Math.min(r1.size(), r2.size()); + + for(int i=0; i<size; i++) { + String n1 = r1.get(i).getDisplayname(); + String n2 = r2.get(i).getDisplayname(); + int compare = super.compareString(n1, n2); + if(compare != 0) { + return compare; + } + } + + return (r1.size() < r2.size() ? -1 : (r1.size()==r2.size() ? 0 : 1)); + } + } } diff --git a/src/main/java/org/olat/group/ui/main/AdminBusinessGroupsController.java b/src/main/java/org/olat/group/ui/main/AdminBusinessGroupsController.java index d7b5585be055a8072f5082fb3f5d45cc8a8e7238..c754f990fe4d3c8d01233e541fc326ad50fa0a54 100644 --- a/src/main/java/org/olat/group/ui/main/AdminBusinessGroupsController.java +++ b/src/main/java/org/olat/group/ui/main/AdminBusinessGroupsController.java @@ -34,7 +34,6 @@ import org.olat.core.gui.control.WindowControl; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; import org.olat.group.BusinessGroup; -import org.olat.group.BusinessGroupMembership; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; @@ -72,31 +71,18 @@ public class AdminBusinessGroupsController extends AbstractBusinessGroupListCont @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(false, new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(false, new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor(new ResourcesColumnDescriptor(this, mainVC, getTranslator())); CustomCellRenderer acRenderer = new BGAccessControlledCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.accessTypes.i18n(), Cols.accessTypes.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, acRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.firstTime.i18n(), Cols.firstTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.lastTime.i18n(), Cols.lastTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.lastUsage.i18n(), Cols.lastUsage.ordinal(), null, getLocale())); - CustomCellRenderer roleRenderer = new BGRoleCellRenderer(getLocale()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.role.i18n(), Cols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer){ - @Override - public int compareTo(final int rowa, final int rowb) { - Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); - Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); - if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { - return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); - } - return super.compareTo(rowa, rowb); - } - }); + groupListCtr.addColumnDescriptor(new RoleColumnDescriptor(getLocale())); groupListCtr.addColumnDescriptor(false, new BooleanColumnDescriptor(Cols.allowLeave.i18n(), Cols.allowLeave.ordinal(), TABLE_ACTION_LEAVE, translate("table.header.leave"), null)); groupListCtr.addColumnDescriptor(new BooleanColumnDescriptor(Cols.allowDelete.i18n(), Cols.allowDelete.ordinal(), TABLE_ACTION_DELETE, translate("table.header.delete"), null)); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.accessControlLaunch.i18n(), Cols.accessControlLaunch.ordinal(), TABLE_ACTION_ACCESS, getLocale())); diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java index 61e0ba10ffc84c7e793dc4780e008a0a216738ae..04fa8439c4cb80a395b9ee3ac310309509a1fa5c 100644 --- a/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java @@ -27,7 +27,6 @@ import org.olat.core.gui.components.table.CustomCssCellRenderer; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; import org.olat.core.gui.control.WindowControl; -import org.olat.group.BusinessGroupMembership; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; @@ -48,31 +47,18 @@ public class BusinessGroupListController extends AbstractBusinessGroupListContro @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor(new ResourcesColumnDescriptor(this, mainVC, getTranslator())); CustomCellRenderer acRenderer = new BGAccessControlledCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.accessTypes.i18n(), Cols.accessTypes.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, acRenderer)); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.firstTime.i18n(), Cols.firstTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.lastTime.i18n(), Cols.lastTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.lastUsage.i18n(), Cols.lastUsage.ordinal(), null, getLocale())); - CustomCellRenderer roleRenderer = new BGRoleCellRenderer(getLocale()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.role.i18n(), Cols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer){ - @Override - public int compareTo(final int rowa, final int rowb) { - Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); - Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); - if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { - return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); - } - return super.compareTo(rowa, rowb); - } - }); + groupListCtr.addColumnDescriptor(new RoleColumnDescriptor(getLocale())); groupListCtr.addColumnDescriptor(new BooleanColumnDescriptor(Cols.allowLeave.i18n(), Cols.allowLeave.ordinal(), TABLE_ACTION_LEAVE, translate("table.header.leave"), null)); return 11; } diff --git a/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java index b45c7b556201a7db3c6d0aeb89341f695cf89cbc..3db8f55923ca26eb4517a9207e823d18891edc17 100644 --- a/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java @@ -27,7 +27,6 @@ import org.olat.core.gui.components.table.CustomCssCellRenderer; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; import org.olat.core.gui.control.WindowControl; -import org.olat.group.BusinessGroupMembership; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; @@ -48,31 +47,18 @@ public class FavoritBusinessGroupListController extends AbstractBusinessGroupLis @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor(new ResourcesColumnDescriptor(this, mainVC, getTranslator())); CustomCellRenderer acRenderer = new BGAccessControlledCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.accessTypes.i18n(), Cols.accessTypes.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, acRenderer)); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.firstTime.i18n(), Cols.firstTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.lastTime.i18n(), Cols.lastTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.lastUsage.i18n(), Cols.lastUsage.ordinal(), null, getLocale())); - CustomCellRenderer roleRenderer = new BGRoleCellRenderer(getLocale()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.role.i18n(), Cols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer){ - @Override - public int compareTo(final int rowa, final int rowb) { - Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); - Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); - if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { - return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); - } - return super.compareTo(rowa, rowb); - } - }); + groupListCtr.addColumnDescriptor(new RoleColumnDescriptor( getLocale())); groupListCtr.addColumnDescriptor(new BooleanColumnDescriptor(Cols.allowLeave.i18n(), Cols.allowLeave.ordinal(), TABLE_ACTION_LEAVE, translate("table.header.leave"), null)); return 11; } diff --git a/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java index ac1f2b0fd7f6b289e352d3494eb15cddf662ffb8..2e88f3b164b5224e6b7c333f8239b8e4b405af47 100644 --- a/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java @@ -31,7 +31,6 @@ import org.olat.core.id.OLATResourceable; import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; import org.olat.core.util.resource.OresHelper; import org.olat.group.BusinessGroup; -import org.olat.group.BusinessGroupMembership; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; import org.olat.util.logging.activity.LoggingResourceable; @@ -59,23 +58,11 @@ public class OpenBusinessGroupListController extends AbstractBusinessGroupListCo groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor(new ResourcesColumnDescriptor(this, mainVC, getTranslator())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.freePlaces.i18n(), Cols.freePlaces.ordinal(), TABLE_ACTION_LAUNCH, getLocale())); CustomCellRenderer acRenderer = new BGAccessControlledCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.accessTypes.i18n(), Cols.accessTypes.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, acRenderer)); - CustomCellRenderer roleRenderer = new BGRoleCellRenderer(getLocale()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.role.i18n(), Cols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer){ - @Override - public int compareTo(final int rowa, final int rowb) { - Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); - Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); - if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { - return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); - } - return super.compareTo(rowa, rowb); - } - }); + groupListCtr.addColumnDescriptor(new RoleColumnDescriptor(getLocale())); groupListCtr.addColumnDescriptor(new AccessActionColumnDescriptor(Cols.accessControlLaunch.i18n(), Cols.accessControlLaunch.ordinal(), getTranslator())); return 8; } diff --git a/src/main/java/org/olat/group/ui/main/OwnedBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/OwnedBusinessGroupListController.java index a28288c7aab8d3fa767b0dbd7d475a4762f0c459..0fb136cf50de2f709603f4b9b58ab9944246f39a 100644 --- a/src/main/java/org/olat/group/ui/main/OwnedBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/OwnedBusinessGroupListController.java @@ -27,7 +27,6 @@ import org.olat.core.gui.components.table.CustomCssCellRenderer; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; import org.olat.core.gui.control.WindowControl; -import org.olat.group.BusinessGroupMembership; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; @@ -60,31 +59,18 @@ public class OwnedBusinessGroupListController extends AbstractBusinessGroupListC @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor( new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor( new ResourcesColumnDescriptor(this, mainVC, getTranslator())); CustomCellRenderer acRenderer = new BGAccessControlledCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.accessTypes.i18n(), Cols.accessTypes.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, acRenderer)); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.firstTime.i18n(), Cols.firstTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.lastTime.i18n(), Cols.lastTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.lastUsage.i18n(), Cols.lastUsage.ordinal(), null, getLocale())); - CustomCellRenderer roleRenderer = new BGRoleCellRenderer(getLocale()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.role.i18n(), Cols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer){ - @Override - public int compareTo(final int rowa, final int rowb) { - Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); - Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); - if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { - return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); - } - return super.compareTo(rowa, rowb); - } - }); + groupListCtr.addColumnDescriptor(new RoleColumnDescriptor(getLocale())); groupListCtr.addColumnDescriptor(new BooleanColumnDescriptor(Cols.allowLeave.i18n(), Cols.allowLeave.ordinal(), TABLE_ACTION_LEAVE, translate("table.header.leave"), null)); groupListCtr.addColumnDescriptor(new BooleanColumnDescriptor(Cols.allowDelete.i18n(), Cols.allowDelete.ordinal(), TABLE_ACTION_DELETE, translate("table.header.delete"), null)); return 12; diff --git a/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java index 3ff29215784866c4a35ed1440efece7217176295..2d2c6127733f721ec7fc34fbf8d2260d13c3e954 100644 --- a/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java @@ -33,7 +33,6 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; -import org.olat.group.BusinessGroupMembership; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; @@ -75,31 +74,18 @@ public class SearchBusinessGroupListController extends AbstractBusinessGroupList @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor(new ResourcesColumnDescriptor(this, mainVC, getTranslator())); CustomCellRenderer acRenderer = new BGAccessControlledCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.accessTypes.i18n(), Cols.accessTypes.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, acRenderer)); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.firstTime.i18n(), Cols.firstTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.lastTime.i18n(), Cols.lastTime.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.lastUsage.i18n(), Cols.lastUsage.ordinal(), null, getLocale())); - CustomCellRenderer roleRenderer = new BGRoleCellRenderer(getLocale()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.role.i18n(), Cols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer){ - @Override - public int compareTo(final int rowa, final int rowb) { - Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); - Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); - if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { - return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); - } - return super.compareTo(rowa, rowb); - } - }); + groupListCtr.addColumnDescriptor(new RoleColumnDescriptor(getLocale())); groupListCtr.addColumnDescriptor(new BooleanColumnDescriptor(Cols.allowLeave.i18n(), Cols.allowLeave.ordinal(), TABLE_ACTION_LEAVE, translate("table.header.leave"), null)); return 11; } diff --git a/src/main/java/org/olat/group/ui/main/SearchOpenBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/SearchOpenBusinessGroupListController.java index d14a8074af0a4acc810a8e898ed1c4b6f2c7a277..01b90d2b94ea7a444ee76c7ac9790717a3c0ce3a 100644 --- a/src/main/java/org/olat/group/ui/main/SearchOpenBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/SearchOpenBusinessGroupListController.java @@ -34,7 +34,6 @@ import org.olat.core.gui.control.WindowControl; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; import org.olat.group.BusinessGroup; -import org.olat.group.BusinessGroupMembership; import org.olat.group.model.SearchBusinessGroupParams; import org.olat.group.ui.main.BusinessGroupTableModelWithType.Cols; @@ -66,23 +65,11 @@ public class SearchOpenBusinessGroupListController extends AbstractBusinessGroup groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor(new ResourcesColumnDescriptor(this, mainVC, getTranslator())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.freePlaces.i18n(), Cols.freePlaces.ordinal(), TABLE_ACTION_LAUNCH, getLocale())); CustomCellRenderer acRenderer = new BGAccessControlledCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.accessTypes.i18n(), Cols.accessTypes.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, acRenderer)); - CustomCellRenderer roleRenderer = new BGRoleCellRenderer(getLocale()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.role.i18n(), Cols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer){ - @Override - public int compareTo(final int rowa, final int rowb) { - Object a = table.getTableDataModel().getValueAt(rowa,dataColumn); - Object b = table.getTableDataModel().getValueAt(rowb,dataColumn); - if(a instanceof BusinessGroupMembership && b instanceof BusinessGroupMembership) { - return MEMBERSHIP_COMPARATOR.compare((BusinessGroupMembership)a, (BusinessGroupMembership)b); - } - return super.compareTo(rowa, rowb); - } - }); + groupListCtr.addColumnDescriptor(new RoleColumnDescriptor(getLocale())); groupListCtr.addColumnDescriptor(new AccessActionColumnDescriptor(Cols.accessControlLaunch.i18n(), Cols.accessControlLaunch.ordinal(), getTranslator())); return 8; } diff --git a/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java b/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java index e7a3ff4cd4dac26c141ba46d97154f9cd92a68b9..d67685bf3f824c8187213726ed2ddccdb5e8a773 100644 --- a/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java +++ b/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java @@ -23,7 +23,6 @@ import java.util.List; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.table.ColumnDescriptor; -import org.olat.core.gui.components.table.CustomCellRenderer; import org.olat.core.gui.components.table.CustomCssCellRenderer; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; @@ -56,14 +55,12 @@ public class SelectBusinessGroupCourseAuthorController extends AbstractBusinessG @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor( new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor( new ResourcesColumnDescriptor(this, mainVC, getTranslator())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.tutorsCount.i18n(), Cols.tutorsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.participantsCount.i18n(), Cols.participantsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.freePlaces.i18n(), Cols.freePlaces.ordinal(), null, getLocale())); diff --git a/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java b/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java index ff1e624ab09cbf85e7f5cd600b90650d7b291019..167bdc6959a878f85d1938c8c5875a6304e2afb5 100644 --- a/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java +++ b/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java @@ -21,7 +21,6 @@ package org.olat.group.ui.main; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.table.ColumnDescriptor; -import org.olat.core.gui.components.table.CustomCellRenderer; import org.olat.core.gui.components.table.CustomCssCellRenderer; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; @@ -58,8 +57,7 @@ public class SelectFavoritBusinessGroupController extends AbstractBusinessGroupL groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor( new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor( new ResourcesColumnDescriptor(this, mainVC, getTranslator())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.tutorsCount.i18n(), Cols.tutorsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.participantsCount.i18n(), Cols.participantsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.freePlaces.i18n(), Cols.freePlaces.ordinal(), null, getLocale())); diff --git a/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java b/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java index 524eae62cfd52f3c418e6ecb655f0e0b7a2df475..63624df2e2569dca1758299b32ec6f6603bc6d18 100644 --- a/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java +++ b/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java @@ -21,7 +21,6 @@ package org.olat.group.ui.main; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.table.ColumnDescriptor; -import org.olat.core.gui.components.table.CustomCellRenderer; import org.olat.core.gui.components.table.CustomCssCellRenderer; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; @@ -53,14 +52,12 @@ public class SelectOwnedBusinessGroupController extends AbstractBusinessGroupLis @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor( new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor( new ResourcesColumnDescriptor(this, mainVC, getTranslator())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.tutorsCount.i18n(), Cols.tutorsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.participantsCount.i18n(), Cols.participantsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.freePlaces.i18n(), Cols.freePlaces.ordinal(), null, getLocale())); diff --git a/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java b/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java index c313b0c19ed6f0cf639777859d2f4304f9cee7a8..7aa542b17f9b805242cf2bebeafb22c66c08a76c 100644 --- a/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java +++ b/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java @@ -23,7 +23,6 @@ import java.util.List; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.table.ColumnDescriptor; -import org.olat.core.gui.components.table.CustomCellRenderer; import org.olat.core.gui.components.table.CustomCssCellRenderer; import org.olat.core.gui.components.table.CustomRenderColumnDescriptor; import org.olat.core.gui.components.table.DefaultColumnDescriptor; @@ -67,14 +66,12 @@ public class SelectSearchBusinessGroupController extends AbstractBusinessGroupLi @Override protected int initColumns() { - CustomCellRenderer markRenderer = new BGMarkCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.mark.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, markRenderer)); + groupListCtr.addColumnDescriptor(new MarkColumnDescriptor(this, mainVC, getTranslator())); CustomCssCellRenderer nameRenderer = new BusinessGroupNameCellRenderer(); groupListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(Cols.name.i18n(), Cols.name.ordinal(), TABLE_ACTION_LAUNCH, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, nameRenderer)); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.key.i18n(), Cols.key.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(Cols.description.i18n(), Cols.description.ordinal(), null, getLocale())); - CustomCellRenderer resourcesRenderer = new BGResourcesCellRenderer(this, mainVC, getTranslator()); - groupListCtr.addColumnDescriptor( new CustomRenderColumnDescriptor(Cols.resources.i18n(), Cols.resources.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, resourcesRenderer)); + groupListCtr.addColumnDescriptor( new ResourcesColumnDescriptor(this, mainVC, getTranslator())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.tutorsCount.i18n(), Cols.tutorsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.participantsCount.i18n(), Cols.participantsCount.ordinal(), null, getLocale())); groupListCtr.addColumnDescriptor(new DefaultColumnDescriptor(Cols.freePlaces.i18n(), Cols.freePlaces.ordinal(), null, getLocale()));