A plug-in object that is used by the {@link CategoryPlot} class to displayindividual data items from a {@link CategoryDataset}.
This interface defines the methods that must be provided by all renderers. If you are implementing a custom renderer, you should consider extending the {@link AbstractCategoryItemRenderer} class.
Most renderer attributes are defined using a "three layer" approach. When looking up an attribute (for example, the outline paint) the renderer first checks to see if there is a setting (in layer 0) that applies to ALL items that the renderer draws. If there is, that setting is used, but if it is null
the renderer looks up the next layer, which contains "per series" settings for the attribute (many attributes are defined on a per series basis, so this is the layer that is most commonly used). If the layer 1 setting is null
, the renderer will look up the final layer, which provides a default or "base" setting. Some attributes allow the base setting to be null
, while other attributes enforce non-null
values.