reintroducing myself to GEF (used to work with it)
creating a simple whiteboard view, figure based, however, rectangular selection of freeform shapes
GEF is the better solution, offers command stack, properties management, selection, doesn't have the problems of SWT integration. Batik offers a lot but difficult to use within eclipse (a bit hacky).
Main problem: proper free-hand drawing
introducing to Eclipse Sketch project (free-hand drawing pattern regocnition)
published 28.04. only, would be a nice extension for any whiteboard for programmers
Batik
contacted Gerrit who used to work with GEF and batik and created the SVG composition eclipse plugin
added simultaneous connection establishment from both sides to quickly achieve a working (direct) connection although establishing from one side only wouldn't work
completing documentation and debug output
GEF
solution for continuous freehand drawing
studying Sketch API again
no option for us: painting on GC would get painted over by concurrent edits
writing to GEF newsletter
no response
Studying GEFs code there results a proper solution: usage of feedback layer
hacking existing code lead to a working result
a proper implementation consists of adding specialized tool, edit policy, request and command classes for continuous drawing
we might distribute this to GEF and Sketch afterward to achieve better compatibility
testing for concurrency
concurrent creation of new figures seems to work without graphical problems
pending: concurrent modifications and consideration of proper lock-mechanisms
Literature
learning more about Java concurrency for proper simultaneous connection establishment
GEF code and API
GEF newsletter
Sketch API code
weeks 16 (6 days) (07.06.-12.06)
improving network layer again
catching exceptions if one connection establishment does not work, the other one can be used
testing and trying to find out reasons for Ubuntu invitation delay and missing direct SOCKS5 connections
considering model representation (this and next week):
preliminary: stay SVG conform, for saving, loading sake and to develop a protocol for distributed XML editing
Using prebuilt library classes and generate DOM only for saving