Allows displaying labels and images with different alignment options, this class
is a base class for several components allowing them to declare alignement/icon
look in a similar way.
A "rubber stamp" tool that allows us to extract a component (often the same
component instance for all invocations) that is initialized to the value
of the current item extracted from the model, this component is drawn on the
list and discarded.
Represents the data structure of the list, thus allowing a list to
represent any potential data source by referencing different implementations of this
interface.