From 0da4adc0de2db4cbb9b5dc8bc183ab68413fbc86 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 27 May 2014 11:11:19 +0200
Subject: [PATCH] OO-984: pe-sort automatic, segment view stateless

---
 .../form/flexible/elements/FlexiTableElement.java     |  2 ++
 .../impl/elements/table/FlexiTableElementImpl.java    |  2 +-
 .../ui/list/OverviewRepositoryListController.java     | 11 +++++++++++
 .../ui/list/RepositoryEntryListController.java        |  4 +++-
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
index 672796aa5bd..aab23371eb1 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
@@ -243,5 +243,7 @@ public interface FlexiTableElement extends FormItem {
 	
 	public void setPage(int page);
 	
+	public void sort(String sortKey, boolean asc);
+	
 	public void reloadData();
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
index 74fa37c453d..403ee43568b 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
@@ -660,7 +660,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		}
 	}
 	
-	protected void sort(String sortKey, boolean asc) {
+	public void sort(String sortKey, boolean asc) {
 		SortKey key = new SortKey(sortKey, asc);
 		orderBy = new SortKey[]{ key };
 		if(dataModel instanceof SortableFlexiTableDataModel) {
diff --git a/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java b/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java
index e1e2cac0bb7..1267b2b3bd9 100644
--- a/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java
+++ b/src/main/java/org/olat/repository/ui/list/OverviewRepositoryListController.java
@@ -134,6 +134,7 @@ public class OverviewRepositoryListController extends BasicController implements
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if(source == segmentView) {
 			if(event instanceof SegmentViewEvent) {
+				cleanUp();
 				SegmentViewEvent sve = (SegmentViewEvent)event;
 				String segmentCName = sve.getComponentName();
 				Component clickedLink = mainVC.getComponent(segmentCName);
@@ -148,6 +149,16 @@ public class OverviewRepositoryListController extends BasicController implements
 		}
 	}
 	
+	private void cleanUp() {
+		removeAsListenerAndDispose(catalogCtrl);
+		removeAsListenerAndDispose(markedCtrl);
+		removeAsListenerAndDispose(myCoursesCtrl);
+		catalogCtrl = null;
+		markedCtrl = null;
+		myCoursesCtrl = null;
+		
+	}
+	
 	private RepositoryEntryListController doOpenMark(UserRequest ureq) {
 		if(markedCtrl == null) {
 			SearchMyRepositoryEntryViewParams searchParams
diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
index a016af286f0..116f37479ff 100644
--- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
+++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
@@ -107,6 +107,8 @@ public class RepositoryEntryListController extends FormBasicController
 		initForm(ureq);
 		initFilters();
 		initSorters();
+		//
+		tableEl.sort(OrderBy.automatic.name(), true);
 	}
 	
 	public boolean isEmpty() {
@@ -166,7 +168,7 @@ public class RepositoryEntryListController extends FormBasicController
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.comments.i18nKey(), Cols.comments.ordinal()));
 
 		model = new RepositoryEntryDataModel(dataSource, columnsModel);
-		tableEl = uifactory.addTableElement(ureq, getWindowControl(), "table", model, 20, true, getTranslator(), formLayout);
+		tableEl = uifactory.addTableElement(ureq, getWindowControl(), "table", model, 20, false, getTranslator(), formLayout);
 		tableEl.setAvailableRendererTypes(FlexiTableRendererType.custom, FlexiTableRendererType.classic);
 		tableEl.setRendererType(FlexiTableRendererType.custom);
 		tableEl.setSearchEnabled(true);
-- 
GitLab