Jeffrey Guenther wrote: > I work on a research project called CZSaw. It is a visual analytics tool for > text analysis. We need a pan/zoom library that supports Swing components, > handles Java events in a standard way, and plays well with Graphics2D. > > I have been digging through Piccolo's API and I have been noticing what > seems to be a lot of code that duplicates stuff provided by Graphics2D. Ie. > graphics contexts? Lines, shapes, etc? Also, as best as I can tell Piccolo > implements its own event system that does not play well with Swing events. > Would the developers be able to tell me the design rationale for doing > things this way? Is it a legacy issue? Ie. Graphics2D and things didn't > exist when it was being written. Is it technical issue?
Piccolo2D implements a scene graph for zoomable user interfaces (ZUI) and is based on HCI research at UMD. Much of the design rationale for Piccolo2D is discussed in the following paper and references therein Toolkit design for interactive structured graphics http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.1.4155 http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1316870 http://ssltest.cs.umd.edu/hcil/piccolo/learn/Toolkit_Design_2004.pdf > Why are PNodes not JComponents and handled by the Swing EDT? PCanvas is a JComponent. There are also non-Swing top level containers, such as POffscreenCanvas and PSWTCanvas, and a separate Piccolo2D library for Processing https://github.com/heuermh/piccolo2d-processing > I really want to avoid rolling my own library and would like to modify > Piccolo2D to meet our needs if possible. Sounds great, welcome. michael -- Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en