I see!!! ... Is +E/R restricted to making bi-directional connection with
the *ID only? My task.l looks like this now and I've +E/R to wire up the
'ttl rel of Task but I was not sure if I could do the same with the 'tgs
rel as well - full code is here -
https://github.com/ckkashyap/picolispAppPractice/tree/master/step04 (I am
doing a step by step incremental app :) - just so I have a log of
everything).

(de updateTags (L)
    (for I (get *ID 'tgs) (lose!> I))
    (for I L
         (put!> *ID 'tgs (new! '(+Tag) 'tsk *ID 'nm  (or (db 'nm '+TagNm I)
(new! '+TagNm 'nm I)  )    ) ))
    L
    )

(action
        (html 0 Ttl "@lib.css" NIL
            (idForm "TITLE" '(choTask) 'nm '+Name *CanEdit *CanDelete
'("The " (: ttl) " Title")
                (<grid> 2
                        "Title" (gui '(+E/R +Cue +TextField) '(ttl : home
obj) "title" 40)
                        "Tags" (gui '(+Init +Set +ListTextField) (extract
'((Tg) (get (get Tg 'nm) 'nm)) (get *ID 'tgs)) '((L) (updateTags L))
 '(","," ")  40  )
                 )
             )
        )
    )


On Fri, Dec 6, 2019 at 11:41 PM Alexander Burger <a...@software-lab.de>
wrote:

> On Sat, Dec 07, 2019 at 08:10:56AM +0100, Alexander Burger wrote:
> > > "Title" (gui '(+E/R +TextField) '(ttl : home obj) 40)
> > > and
> > > "Title" (gui '(+Init +Set +TextField) (get *ID 'ttl) '((X) (put!> *ID
> 'ttl
> > > X)) 40)
> > > are equivalent inside an idForm?
> >
> > No, +E/R, +Init and +Set are all different.
>
> Getting something equivalent to the +E/R form is not trivial. It needs at
> least
>
>    (gui '(+Set +Chk +Val +TextField)
>       '((Val Dn)  # 'Dn' is not needed here (only in charts)
>          (=: er Val)
>          (and
>             (not (: lock))
>             (eval (: erObj))
>             (put!> @ (: erVar) Val) )
>          (extra Val Dn) )
>       '(or
>          (extra)
>          (and
>             (eval (: erObj))
>             (mis> @ (: erVar) (val> This)) ) )
>       '(()
>          (let Val (extra)
>             (if (= Val (: er))
>                (get (eval (: erObj)) (: erVar))
>                Val ) ) )
>       40 )
>
> but this is not complete, as the GUI object is not properly initialized
> (class
> variables 'erObj' and 'erVar' and more, see the parent classes +/R (and
> +Able).
>
> You see, +E/R is a fairly complicated beast ;)
>
> ☺/ A!ex
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>

Reply via email to