Ether Painters
    
    An ether painter is an object made use by a band
        to paint markings on its background. These markings make the
        mapping from pixels to date/time of the band's
        ether visible to the
        user and helps her gauge when each particular event happens.
        An ether painter should be constructed by client code for 
        the initialization of a band in a timeline, and then not
        touched again by client code.
    
    
    Interface
    An ether painter must expose the following Javascript interface:
    
    
    
        
            constructor
            ( params )
        
        
            params is an object whose
            fields carry initialization settings for the ether painter. Different
            ether painter classes require different fields in this initialization
            object. Refer to the documentation of each ether painter class for
            details (see 
Ether Painters in Library below).
        
 
     
    
        
            initialize
            ( band,
            timeline )
        
        
            The ether painter is to paint the background of the given
            
band
            of the given
            
timeline.
            This method is called by the band itself as it is being 
            initialized. Client code is not supposed to call this method.
        
 
    
    
        
            paint
            ()
        
        
            (Re)paint the band's background. The band will call this method
            when it needs to be (re)painted, at construction time as well
            as whenever its origin is shifted. Client code is not supposed
            to call this method.
        
     
    
        
            softPaint
            ()
        
        
            (Re)paint any part of the band's background that is positioned
            relative to the visible area of the band. The band will call 
            this method whenever it is scrolled. Client code is not supposed
            to call this method.
        
     
    
        
            setHighlight
            ( startDate,
            endDate )
        
        
            Show a highlight between the two given 
            Date objects.
        
     
    
    
    There are currently 2 ether painter classes provided by default:
        Timeline.GregorianEtherPainter and 
        Timeline.HotZoneGregorianEtherPainter.
        They all expose the interface above, but they differ in their
        initialization parameters.
    
    There is also an undocumented Timeline.JapaneseEraEtherPainter.