File writers for iTools: sparklines example
posted Mon 28 Aug 2006 by Michael Galloy under IDL, Information design, iTools
MGitWriteSparkline is an example of a file writer for the iTools system. It creates a PNG file representing a sparkline for vector data. Sparklines are intense, word-like graphics like
55. Readers and writers are some of the simplest components to add to an iTool and a good place to start learning how to create custom iTools.
In order to run this demo, you will need the the MGitWriteSparkline class (doc), the calling program (doc), and the original sparklines routine (doc and see this article about the sparklines routine).
Continue reading “File writers for iTools: sparklines example.”
Every component in the iTools has a unique identifier placing it in a hierarchy of components for the tool. This identifier is necessary to programmatically use the component. So how do you find the identifier of some component? The standard technique is to use the
When rendering object graphics atoms with transparency, the order the atoms are rendered (i.e. the order the atoms are created and added to the hierarchy) determines what can be seen. You want to draw the atoms from back to front when the front items are transparent. The same principle holds true for iTools since they use object graphics.
The iTools are easy to use interactively (O.K., easy once you learn some of the conventions and jargon). But they also have the ability to be extended and controlled programmatically. I have given a couple examples of extending an iTool with new operations (
The ability to extend the itools is one of their main strengths. This can be adding a button for an operation (like our example here), the capability to read/write new file types, new visualizations, or new ways to manipulate visualizations. Plus, the user interface can be customized to various levels. Toolbars and panels can be added to the standard configuration, but a totally custom interface can be created also. Capabilities can also be removed to provide a simpler interface for a specific task.