ui.gadgets.tables: some band-aid fixes

db4
Slava Pestov 2009-08-06 01:28:30 -05:00
parent 7734bd9bcd
commit ef97fdf0c5
3 changed files with 24 additions and 8 deletions

View File

@ -1,6 +1,6 @@
IN: ui.gadgets.tables.tests
USING: ui.gadgets.tables ui.gadgets.scrollers ui.gadgets.debug accessors
models namespaces tools.test kernel combinators ;
models namespaces tools.test kernel combinators prettyprint arrays ;
SINGLETON: test-renderer
@ -44,4 +44,19 @@ M: test-renderer column-titles drop { "First" "Last" } ;
[ selected-row drop ]
} cleave
] with-grafted-gadget
] unit-test
] unit-test
SINGLETON: silly-renderer
M: silly-renderer row-columns drop unparse 1array ;
M: silly-renderer column-titles drop { "Foo" } ;
: test-table-2 ( -- table )
{ 1 2 f } <model> silly-renderer <table> ;
[ f f ] [
test-table dup [
selected-row
] with-grafted-gadget
] unit-test

View File

@ -303,11 +303,12 @@ PRIVATE>
f >>mouse-index [ hide-status ] [ relayout-1 ] bi ;
: find-row-index ( value table -- n/f )
[ model>> value>> ] [ renderer>> '[ _ row-value ] map index ] bi ;
[ model>> value>> ] [ renderer>> ] bi
'[ _ row-value eq? ] with find drop ;
: (update-selected-indices) ( table -- set )
[ selection>> value>> dup array? [ 1array ] unless ] keep
[ find-row-index ] curry map sift unique f assoc-like ;
[ selection>> value>> dup [ array? not ] [ ] bi and [ 1array ] when ] keep
'[ _ find-row-index ] map sift unique f assoc-like ;
: initial-selected-indices ( table -- set )
{

View File

@ -147,7 +147,7 @@ M: method-renderer column-titles drop { "" "Method" "Count" } ;
horizontal <track>
{ 3 3 } >>gap
profiler vocabs>> vocab-renderer <profiler-table>
profiler vocab>> >>selected-value
profiler vocab>> >>selection
10 >>min-rows
10 >>max-rows
"Vocabularies" <labeled-gadget>
@ -164,11 +164,11 @@ M: method-renderer column-titles drop { "" "Method" "Count" } ;
horizontal <track>
{ 3 3 } >>gap
profiler <generic-model> word-renderer <profiler-table>
profiler generic>> >>selected-value
profiler generic>> >>selection
"Generic words" <labeled-gadget>
1/2 track-add
profiler <class-model> word-renderer <profiler-table>
profiler class>> >>selected-value
profiler class>> >>selection
"Classes" <labeled-gadget>
1/2 track-add
1/2 track-add