Unable to update properly Smart Client Playback timeline with custom sequences (ribbon content)

Hi,

I am developing a background Smart Client plugin wich populates Playback timeline with custom ribbon data. I am registering 3 timeline sequence sources (TimelineSequenceSource) with different ribbon colors on ImageViewerAddOn. The first call of OnSequencesRetrieved popultes the timeline as I expect - each of the timeline sources populates its own time intervals (there is no overlapping between them). The problem is when I am updating the sequences (update occurs every 5 seconds) - only the first registered sequence source updates on the timeline with new time intervals (there may be a differences with previously retrieved intervals). When I change the order of sources registration again only the first one updates properly. Also I cannot find a way to clear already fetched time intervals before calling OnSequencesRetrieved.

Thanks in advance,

Nikolay.

Milestone Development will investigate this further.

We were not able to reproduce the behavior you have observed in the Milestone lab. I have some notes from the developer that I hope will prove helpful.

-

I tried making a sample with 3 background ribbon sources. First I attached each of them to a separate ImageViewerAddOn and then I tried attaching all 3 to the same ImageViewerAddOn and in both cases all 3 were updated on the timeline.

One thing to be aware of is that you cannot force-update the timeline directly from the source - the timeline will ignore data for areas it already received data for. Instead update the source itself to be aware of the new data and then execute the following where source.Id is the ID of each ribbon source:

EnvironmentManager.Instance.PostMessage(new Message(MessageId.SmartClient.RefreshTimelineRequest, new FQID(EnvironmentManager.Instance.CurrentSite.ServerId, Guid.Empty, source.Id, FolderType.No, Guid.Empty)));

This will make the timeline re-ask for data from the specified source and then the source should return the new data.

-

Thank you, guys.

I have changed my code and now it is working much better. What I was missing in my implementation was sending RefreshTimelineRequest message.

Best regards,

Nikolay.