stickynotes are just one of many types of information that can live in
a single leo node comprised of (a) a headstring, (b) arbitrary text in
the body, and (c) attributes in the uA.

Seems to me it could be really handy to have a generic interface for
user (i.e. manual) editing of *some* uA attributes.  E.g. a date field
on a stickynote or todo item, all sorts of fields on an address book
entry, etc.

(There was one plugin for editing uA's, but I think it was Tk.)

I think the interface is easy enough, but how best to identify which uA
parts are suitable for user editing?

 1) a new dictionary on vnode? - ick

 2) an entry in the existing uA which by convention holds user editable
    attributes?  Suppose it's called "_edit", then uA might end up
    looking like::

       {'annotate': {'pri':7, 'progress':45},
        'icon': {'path': "/x/c/v.png", 'isTodo':True},
        '_edit': { 'ToDo': {'needed_by':20030908},
                   'Sticky': {'category': 'cats',
                              'processed': 'yes'}
                }
       }

Where I'm trying to make the point that different plugins etc. would
probably want to group their attributes within different dicts
in the '_edit' entry.

So the user would just see, for this node, a three line attribute
editing area where the names of the attributes where 'needed_by',
'category', and 'processed'.

It might be nice to have an analogous '_view' entry in uA for read-only
attributes (like 'created' for a stick-note, for example).  And,
drifting off topic and into the future, type-awareness so that
'processed': 'yes' could be a 'processed': True rendered as a checkbox.

 3) finally, not using an '_edit' convention, but instead having
 plugins register parts of uA they wish to expose to the user:

     g.registerAttribute(['todo','needed_by'])
     g.registerAttribute(['todo','metadata','created'], viewOnly=True)

would have the advantage that all the info. for the plugin would be in
one uA entry, instead of split between ['todo'] for the bits the user
shouldn't see, and ['_edit']['todo'] for the bits the user should see.
So the above would indicate that the user should see attributes
'needed_by' and 'created', accessed as v.uA['todo']['needed_by']
and v.uA['todo']['metadata']['created'] respectively, and that
'created' be seen but not edited.

(2) and (3) are close competitors I think, (3) is in some ways neater,
but (2) has the possibly significant advantage that attributes would
still be visible even in the absence of the plugin.

Cheers -Terry



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to leo-editor@googlegroups.com
To unsubscribe from this group, send email to 
leo-editor+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to