Overview
MicroPainter is a Java open source framework to design graphics components. The framework provides some graphics abstraction such as metrics repository, layouts objects, tools for user interaction and graphics painters to display data. The famework gives extentions to provides developers a wide variety of data visualization needs and ensure your Java desktop applications are visually appealing.
The framework provides you a common set of classes for producing plots, build classic charting like Curve, Area, Bar chart, Histogram, Pie chart, Bubble chart, Radar chart, Scatter Plot, Vector Map Layer and Map rendering engine. A broadcast extention propose a component's suite to show the flexibilty of this charting framework.
The Micropainter API is available here.
Architechture Overview
View2D encapsulates micropainter material to display user instrument. It's the common swing connector (javax.swing.JComponent). The view instance should be add in a parent swing component like JPanel. View has to register a set of windows2D instances.

Window2D
Window2D is a metrics referential (Linear or logarithmic) and provides material to modelize data by superposing layer object such as Layout, Painters and Tools objects. Window instances are registered in a view like explain below. Performing an efficient graphic requires a high display qualitity, an easy user interaction and rich annotations. Device Painter, Tool, and Layout provide all core material to build graphic instrument. A window results from a composition of layouts for background Intrument, Painters for rendering data display and tools for handling all user interaction between device painter or any other related object. Presentation of data on a logarithmic scale can be helpful when the data covers a large range of values – the logarithm reduces this to a more manageable range.

Layouts
Layout object are primitive window annotations representing user referential. There are several layout nature. Window give a metrics to work and deal with user/pixel coordinate. MP provide associative painters to display metrics layout and numeric axis are drawn. Grid , Band and Points layout and associates painters are used as background device painters to make space reference and pretty rendering. Core layouts implements differents layouts wich can be choose as user needs.
Layouts object are register on window following this pattern:
windowInstance.registerLayout(AbstractLayout layout);
The layout painter parameter is responsible for painting the layout define by the layout manager parameter; Interface manager and Abstract painter allow multiform structure and composition for painting layout. For example, Metrics core provide two basic painter and four layout manager.This way provide flexibility for build the instrument. this following figure show layout architecture.

Painter
Painter templates are the base material to design your own application painter. Painters objects are responsible to paint your graphic scene and render data into your window. You have to choose and extends template (or use existing micropainter extention, like micropainter common, the first classic painter and tool set that can inspire you in your own painter or tool implementation ). Java, java 2D and all related knowledge is welcome to create painters and use micropainter. Templates give a flexible approach by painter and tool extention way. More Painters ! More Tools ! Our hope is that users participate and feedback efforts to the micropainters framework and developpers comunity.
Device Painter is an AbstractDevice2DPainter sub class that know how to paint a define data object or more complex data model. Painter is registered into the window instance. the first task of the window is to paint the backgroud layouts that have been registered as described above , then it call painters operation to display data instrument.

Tools
Tool handles all user interaction and give controls to improve feedback data analysis. Micropainters core give fundamental tools for view and window handling like zoom family (ZoomBox with dynamic zooming, ZoomObjectif , ZoomPercent and ZoomWheel), TranslateTool ,CrossMarkerTool , MiniDevice and WindowControler. Micropainter common extention improves simple curve manipulation at the moment.
Tools is subclass of AbstractTool class. Tool intercept all input events (mouse and key events) and produces a response callback on instrument. (painters, window ar related object). It can be an graphics expression by overriding the doPaintTool abstract method.For example ZoomBox draw a box area when user select device area and draw dynamic effect during zooming operation.Tools build their own controls (ToolControl) like Action, Menu or View which are plug into View and can be ordered into application passing by common swing action control (Button, Menu, Dialog).

