You're right, that is not the best performing solution ;-)

If all you want to do is create a "watermark" for a band, there are a couple of 
better methods (this is with Timeline 2.3.1)

1) Add the text of your watermark to the timeline-ether-bg layer. Set the 
position of the timeline-ether-bg div to "fixed" and set the styles on that 
element. e.g. 
.timeline-band-0 .timeline-ether-bg {
  color:#ccaabb;  // or color:rgba(200,150,180,0.3)
  font-size:100pt;
  left:0;
  position:fixed;
  text-align:center;
}

You can easily see this using Firefox/Firebug. And it would be simple to write 
a function to find and manipulate the appropriate divs, without modifying the 
Timeline code itself. Just run it after the Timeline has been created and drawn:
function addWatermark(bandNum,text) {
  document
    .getElementById('timeline-band-' + bandNum)
    .getElementsByClassName('timeline-ether-bg')[0]
    .innerHTML = text;
}
addWatermark(0,"WATERMARK");

Try this out for yourself: Go to the JFK example at 
http://www.simile-widgets.org/timeline/
Paste and run the code above into the Firebug console, then inspect the top 
band and change the styles for .timeline-band-0 .timeline-ether-bg to the 
styles above. You should have a nice big "WATERMARK" text on the timeline, 
fixed beneath all the events, no scrollHandler required.

See screenshot: http://imgur.com/7IKPz

--Mike





On Sep 9, 2011, at 2:54 PM, codebeneath wrote:

> This is probably not the best performing solution, but wanted to share
> it regardless.
> 
> Given that a band has an existing SpanHighlightDecorator, that is
> simply a "watermark" text for the entire band that should always be
> visible, we did the following:
> 
>    ....
>    band.addOnScrollListener(this.scrollListener);
>    ....
> 
>    // scroll listener for all source bands, not including the
> overview band
>    scrollListener : function(band) {
>        var minVisibleDate = band.getMinVisibleDate();
>        // find watermarks
>        for (var j = 0; j < band._decorators.length; j++) {
>            var d = band._decorators[j];
>            // move watermarks, but not the "now" line
>            if (d instanceof Timeline.SpanHighlightDecorator) {
>                band._decorators[j]._startDate = minVisibleDate;
>                band._decorators[j]._endDate = minVisibleDate;
>                break;
>            }
>        }
>        band._paintDecorators();
>    }
> 
> I wonder if there is a better solution using a background image for
> the band?
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "SIMILE Widgets" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/simile-widgets?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"SIMILE Widgets" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/simile-widgets?hl=en.

Reply via email to