ui.gadgets.tables: more fixes
parent
dba67b1815
commit
926797d485
|
@ -55,7 +55,7 @@ multiple-selection? ;
|
||||||
over selected-indices>> conjoin ;
|
over selected-indices>> conjoin ;
|
||||||
|
|
||||||
: multiple>single ( values -- value/f ? )
|
: multiple>single ( values -- value/f ? )
|
||||||
dup assoc-empty? [ drop f f ] [ keys first t ] if ;
|
dup assoc-empty? [ drop f f ] [ values first t ] if ;
|
||||||
|
|
||||||
: selected-index ( table -- n )
|
: selected-index ( table -- n )
|
||||||
selected-indices>> multiple>single drop ;
|
selected-indices>> multiple>single drop ;
|
||||||
|
@ -262,12 +262,13 @@ M: table pref-dim*
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: (selected-rows) ( table -- {row} )
|
: (selected-rows) ( table -- assoc )
|
||||||
[ selected-indices>> keys natural-sort ] keep
|
[ selected-indices>> ] keep
|
||||||
'[ _ nth-row [ 1array ] [ drop { } ] if ] map concat ;
|
'[ _ nth-row drop ] assoc-map ;
|
||||||
|
|
||||||
: selected-rows ( table -- {value} )
|
: selected-rows ( table -- assoc )
|
||||||
[ (selected-rows) ] [ renderer>> ] bi '[ _ row-value ] map ;
|
[ selected-indices>> ] [ ] [ renderer>> ] tri
|
||||||
|
'[ _ nth-row drop _ row-value ] assoc-map ;
|
||||||
|
|
||||||
: (selected-row) ( table -- value/f ? ) (selected-rows) multiple>single ;
|
: (selected-row) ( table -- value/f ? ) (selected-rows) multiple>single ;
|
||||||
|
|
||||||
|
@ -306,7 +307,7 @@ PRIVATE>
|
||||||
|
|
||||||
: (update-selected-indices) ( table -- set )
|
: (update-selected-indices) ( table -- set )
|
||||||
[ selection>> value>> dup array? [ 1array ] unless ] keep
|
[ selection>> value>> dup array? [ 1array ] unless ] keep
|
||||||
[ find-row-index ] curry map sift unique f like ;
|
[ find-row-index ] curry map sift unique f assoc-like ;
|
||||||
|
|
||||||
: initial-selected-indices ( table -- set )
|
: initial-selected-indices ( table -- set )
|
||||||
{
|
{
|
||||||
|
@ -315,7 +316,7 @@ PRIVATE>
|
||||||
[ drop { 0 } unique ]
|
[ drop { 0 } unique ]
|
||||||
} 1&& ;
|
} 1&& ;
|
||||||
|
|
||||||
: update-selected-indices ( table -- {n}/f )
|
: update-selected-indices ( table -- set )
|
||||||
{
|
{
|
||||||
[ (update-selected-indices) ]
|
[ (update-selected-indices) ]
|
||||||
[ initial-selected-indices ]
|
[ initial-selected-indices ]
|
||||||
|
@ -324,7 +325,7 @@ PRIVATE>
|
||||||
M: table model-changed
|
M: table model-changed
|
||||||
nip dup update-selected-indices {
|
nip dup update-selected-indices {
|
||||||
[ >>selected-indices f >>mouse-index drop ]
|
[ >>selected-indices f >>mouse-index drop ]
|
||||||
[ [ f ] [ first ] if-empty show-row-summary ]
|
[ multiple>single drop show-row-summary ]
|
||||||
[ drop update-selected ]
|
[ drop update-selected ]
|
||||||
[ drop relayout ]
|
[ drop relayout ]
|
||||||
} 2cleave ;
|
} 2cleave ;
|
||||||
|
|
Loading…
Reference in New Issue