2.0 Migration Guide
KronoGraph 2.0 changes the way data is displayed and how users interact with it. This guide gives an overview of these changes to help you upgrade and make the most of the new features.
The key changes are:
- KronoGraph uses a new lens to visualize and examine large datasets.
- The concept of closed groups and any related API are removed.
Introducing lens
In earlier versions, when the timeline contained more entities than could fit on the screen, KronoGraph collapsed entities into 'runs', or, if you've defined types or groups in your data, 'closed groups'. Both were opened using the expand control.
Our users suggested that closed groups could sometimes open and close unpredictably when navigating the timeline, and that the design of narrow bands of data with lots of white space above and below could be improved.
KronoGraph 2.0 draws all entities and their events, even if there isn't enough space to display each entity label. This results in an immediate visual impact from a dataset, with heatmaps that convey all your data from the first glance.
If there are too many rows to label, instead of groups users can now open and close the lens. The lens enlarges a small set of entities in the timeline center and lets you scroll up and down through the whole dataset.
Migration tips
For any help implementing the changes, please contact support.
Below is a list of suggestions to help you migrate:
If you don't have types or groups defined in your data, consider adding them to visually split up large datasets and to label the split data when there isn't enough space to label individual entities.
New lens event returns the id of the entity at the center of the lens. Use the event to track the data that is currently in view.
New lens property returned with the onTimelineChange object provides the id of the entity at the center of the lens. Use the property to track the data that is currently in view.
New 'lensScrollbar' and 'lensControl' targetType values are returned from pointer events when the user interacts with the lens scroll bar or the lens control. Check your event handler code to ensure the behavior is as you expect during the user interaction.
New 'lensScrollBar' dragType is returned from pointer events when the user interacts with the lens scroll bar. Check your event handler code to ensure the behavior is as you expect during the user interaction.
A new label property is added to the object passed to pointer event handlers which helps you determine if an entity is drawn large enough for labels and interactions, or if it's too small to be shown fully. For example, if you're adding tooltips or annotations, you may want to only display them against entities that have a label.
Although we strongly recommend using the new lens feature, you can still recreate 'closed groups' of entities by manipulating your data.
To force a group of entities into a single row, you can replace their ids in the entityIds property of events with a new entity id representing a summary row and add this new entity to your entity list.
Removed APIs
All APIs referencing open and closed groups have been removed. If you have any code which references them, you'll need to remove or modify it:
-
expandevent -
expandedRowId -
expandoption of controls -
targetTypevalues: 'collapse', 'expand', 'entityGroupMore', 'entityGroupRun'
In addition, the priority option of entityType remains in the API for file format compatibility but it doesn't have any effect.
Other API changes
We've removed support for the focus action on groups, based on feedback that users were unsure what focusing a group meant or how to undo it. We recommend using filtering instead - if you want the user to see only the events associated with a certain group, filter other events out of your data. You can also programmatically focus all the entities in a group using the focus API. You can also programmatically focus all the entities in a group using the focus API.
The pointer-move event now fires when the timeline moves beneath the pointer, as well as when the pointer moves over the timeline. This synchronizes your tooltips and annotations with moving timeline. No migration is required, but you can check that your tooltips and annotations behave as expected.
The onTimeLinePointerMove event is now invoked when the timeline moves beneath the pointer, as well as when the pointer moves over the timeline. This synchronizes your tooltips and annotations with moving timeline. No migration is required, but you can check that your tooltips and annotations behave as expected.
We've changed some default settings to reduce visual clutter and make our event folds feature for simultaneous events more discoverable:
| API | Default before 2.0 | KronoGraph 2.0 default |
|---|---|---|
| color | 'inverse' | 'entity' |
| heatmapPadding | false | true |
| heatmapThreshold | 250 | 100 |
| showCircles | true | false |
| showEventFolds | false | true |
| showLines | 'always' | 'individualEvents' |
| standardRowHeight | 18 | 24 |