changed: #list:
authorClaus Gittinger <cg@exept.de>
Thu, 06 May 2010 10:27:19 +0200
changeset 3897 3c7724395afc
parent 3896 9a5437a71fdb
child 3898 465909d18a38
changed: #list: support sortBlockSelector (asking app for a sortBlock)
DSVColumnView.st
--- a/DSVColumnView.st	Tue Apr 27 19:04:44 2010 +0200
+++ b/DSVColumnView.st	Thu May 06 10:27:19 2010 +0200
@@ -1065,7 +1065,7 @@
 list:aRawList
     "set the list of rows"
 
-    |newList selectionHasChanged sortColNr sortSelectorOrBlock|
+    |newList selectionHasChanged sortColNr sortSelectorOrBlock sortBlockSelector sortBlock|
 
     "/ remove selection without redraw
 
@@ -1100,12 +1100,18 @@
         "/ list := OrderedCollection withAll:aRawList.
         newList := aRawList copyAsOrderedCollection.
         (sortColNr := labelView indexOfSortColumn) notNil ifTrue:[
-            sortSelectorOrBlock := (columnDescriptors at:sortColNr) sortSelector.
-            sortSelectorOrBlock notNil ifTrue:[
-                sortSelectorOrBlock isBlock ifTrue:[
-                    newList sort:sortSelectorOrBlock
-                ] ifFalse:[
-                    newList sort:[:a :b | (a perform:sortSelectorOrBlock) < (b perform:sortSelectorOrBlock)]
+            sortBlockSelector := (columnDescriptors at:sortColNr) sortBlockSelector.
+            sortBlockSelector notNil ifTrue:[
+                sortBlock := self application perform:sortBlockSelector.
+                newList sort:sortBlock
+            ] ifFalse:[
+                sortSelectorOrBlock := (columnDescriptors at:sortColNr) sortSelector.
+                sortSelectorOrBlock notNil ifTrue:[
+                    sortSelectorOrBlock isBlock ifTrue:[
+                        newList sort:sortSelectorOrBlock
+                    ] ifFalse:[
+                        newList sort:[:a :b | (a perform:sortSelectorOrBlock) < (b perform:sortSelectorOrBlock)]
+                    ].
                 ].
             ].
             labelView reverseSort ifTrue:[
@@ -1129,6 +1135,8 @@
     ].
     cachedPreferredExtent := nil.
     self contentsChanged.
+
+    "Modified: / 06-05-2010 / 10:22:31 / cg"
 ! !
 
 !DSVColumnView methodsFor:'accessing-visibility'!
@@ -4601,9 +4609,9 @@
 !DSVColumnView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.255 2009-11-11 21:25:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.256 2010-05-06 08:27:19 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.255 2009-11-11 21:25:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.256 2010-05-06 08:27:19 cg Exp $'
 ! !