From J Wiki
Diagram editing prototype
- Draws boxes for items with shadow, title, list of members
- Draws connector lines dynamically between items
- Drags items dynamically updating
- Dragged item is selected with border and shadow style
Implementation details (available j601 beta t)
- uses glwindoworg for local item coordinates
- uses wd 'setinvalid id' for update invoking paint
- gl2 (both Windows and Java) incorrectly offsets glpaint by glwindoworg, so explicit glwindoworg 0 0 has to be done
- Java (esp. Mac) setinvalid is slower and jerky, but direct call to paint is fast.
- Direct paint requires glpaint, whereas initial paint (wd 'pshow') and setinvalid do not: this is because system does not know when you are done painting. So the usage pattern for ad hoc painting should be: glpaint @ f_g_paint.