AltME: R3-GUI

Messages

Josh
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
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: 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]]

Josh
I'm struggling a lot coming from R2 and dealing with faces.   get-facet seems extremely unintuitive to me.  
Let's say I have an area:
view [c: area "hello"] print get-facet c 'text-edit
get-facet always returns "hello" even if I type something else in the area.  What is going on with this?
is there a different facet that stores the "real" information?
Josh
the 'state and 'caret objects have the correct text, but can't find a way to access those
Josh
ah, yes, '
get-face c
making things overcomplicated, I suppose

Last message posted 265 weeks ago.