« Return to Thread: WebGrid Sorting

WebGrid Sorting

by Rob Rothwell-2 :: Rate this Message:

Reply to Author | View in Thread

I got tired of my application failing if I tried to sort a WebGrid column with some nil elements, so I have created two methods:

WebGrid>>standardAscendingSortBlockForColumn: column
    ^[:a :b|
        | val1 val2 |
        val1:=a perform: column aspect.
        val2:=b perform: column aspect.
        val1 isNil
            ifTrue: [true]
            ifFalse: [val2 isNil
                ifTrue: [false]
                ifFalse: [val1 < val2]]]

and

standardDescendingSortBlockForColumn: column
    ^[:a :b|
        | val1 val2 |
        val1:=a perform: column aspect.
        val2:=b perform: column aspect.
        val1 isNil
            ifTrue: [false]
            ifFalse: [val2 isNil
                ifTrue: [true]
                ifFalse: [val1 > val2]]]


(There is probably a more compact way to do this if I was more experienced)

and have altered:

WebGrid>>sortColumnsIfNessesary
    | column sortBlock |
     self sortColumn isNil ifTrue: [^nil].
    column := self columns at: self sortColumn.
    sortBlock := (self sortOrder = #ascending)
        ifTrue: [ self standardAscendingSortBlockForColumn: column ]
        ifFalse: [ self standardDescendingSortBlockForColumn: column ].
    self collection: (SortedCollection withAll: self collection sortBlock: sortBlock).

Is this generally useful to Aida, or should it just be a WebGrid subclass like WebDataGrid?

I also have a WebGrid>>bindTo: method which will bind a WebGrid to an ODBCResultTable.  Would database components be generally useful to anyone else?  Probably not, unless you are planning on writing a DbVisualizer type of thing in Smalltalk (which I was thinking of doing as a more "business oriented" example).

This leads me to ask about future component naming conventions if people start contributing separately packaged Aida components.  Would you envision something like

Aida-Database
or
Aida-Database Components
or
Aida-Components-Database?

Just wondering.  It would be great if the Aida Squeaksource would become a repository for new components that could be plugged in to your application as needed!

Rob

_______________________________________________
Aida mailing list
Aida@...
http://lists.aidaweb.si/mailman/listinfo/aida

 « Return to Thread: WebGrid Sorting