- GrahamC
-
In the Saphirion docs, there is this docs\specs\styles\text-table but it's not very helpful
- Josh
-
On the r3-gui changelog I found Under 10-Mar-2012:
TEXT-TABLE: Can set filters using [set-face/field table filters]
Yeah, i've been reading and re-reading that
- GrahamC
-
Well, have to ask Rebolek .. he wrote the text-table
reading the docs, I would have thought
get-facet face 'row
would work too but that returns none for me
- Josh
-
Dug through r3-gui.r and found this:
do-actor tt2 'on-filter-data [1 [value = 1]]
which seems to work
though I have not the faintest what it is really doing
- GrahamC
-
Ok, so this works then
]
ind: [
[1 "Jones" "Tom"]
[2 "Smith" "William"]
[3 "Jones" "Stephen"]
]
eve: [
[1 "Arrival" "Wearing a red hat"]
[1 "Departure" "No hat"]
[2 "Lunch" "Salmon Sandwich"]
[1 "Dinner" "Pasta"]
[2 "Departure" "Red shirt"]
]
view [
tt1: text-table 600x400 ["ID" #1 70 "Last Name" #2 200 "Given Name" #3 200] ind on-action [
filter: first pick get-facet face 'table-data arg/y
do-actor tt2 'on-filter-data compose/deep [1 [value = (filter)]]
draw-face tt2
]
tt2: text-table 600x400 ["ID" #1 70 "Event" #2 150 "Description" #3 300] eve
]
- Cyphre
-
Josh, Graham, the more "correct" SET-FACE version works as well. You just need to pass map! instead of block! like:
REBOL []
ind: [
[1 "Jones" "Tom"]
[2 "Smith" "William"]
[3 "Jones" "Stephen"]
]
eve: [
[1 "Arrival" "Wearing a red hat"]
[1 "Departure" "No hat"]
[2 "Lunch" "Salmon Sandwich"]
[1 "Dinner" "Pasta"]
[2 "Departure" "Red shirt"]
]
view [
tt1: text-table 600x400 ["ID" #1 70 "Last Name" #2 200 "Given Name" #3 200 ] ind on-action [
filter-value: first pick get-facet face 'table-data arg/y
set-face/field tt2 make map! compose/deep [
1 [value = (filter-value)]
] 'filter
]
tt2: text-table 600x400 ["ID" #1 70 "Event" #2 150 "Description" #3 300] eve
]
- Josh
-
Cyphre, Sweet. That is exactly what I was trying to do. thank you so much!
- Josh
-
Bug or expected behavior?
REBOL []
load-gui
ind: [
[1 "Jones" "Tom"]
[2 "Smith" "William"]
[3 "Jones" "Stephen"]
]
view [
tt1: text-table 600x400 ["ID" #1 70 "Last Name" #2 200 "Given Name" #3 200 ] ind
tt2: text-table 600x400 ["ID" #1 70 "Event" #2 150 "Description" #3 300] ind
button on-action [set-face/field tt2 make map! compose/deep [1 [value = "1"]] 'filter]
]
click the button and look at the red filter drop down on tt2. There are two <=======> options. Should there only be one when a filter is in place?
- Cyphre
-
I don't know what does the "<=======>" option mean exactly so let's see if Rebolek can comment on that.
- Robert
-
IIRC (it's been a while that I used it):
do-actor tt2 'on-filter-data [1 [value = 1]]
The [1 [value = 1]] part means:
- filter column 1
- filter by value 1
VALUE is the word that's used by the filter code to compare for TRUE or FALSE
I think it's even possible to filter by more than one column, filtering is applied in order. So first filter, than on the result-set, 2nd filter etc.
- Luis
-
How to programaticaly set drop-down at i.e the second item of data ?
- Luis
-
view[ d: drop-down [ "11" "22" "33"] on-action []button "set drop-down to 2" on-action [set-face d 2]]