Итак, у меня есть диаграмма (упрощено):
Код:
<fx:Declarations>
<mx:SolidColor id="solidColor" color="0x90ee90"/>
<mx:SolidColorStroke id="solidColorStroke" color="0x90ee90"/>
</fx:Declarations>
<mx:ColumnChart id="columnChart" width="100%" height="100%">
<mx:annotationElements>
<mx:CartesianDataCanvas id="cartesianDataCanvas" includeInRanges="true"/>
</mx:annotationElements>
<mx:horizontalAxis>
<mx:DateTimeAxis id="dateTimeAxis"/>
</mx:horizontalAxis>
<mx:horizontalAxisRenderers>
<mx:AxisRenderer axis="{dateTimeAxis}"/>
</mx:horizontalAxisRenderers>
<mx:verticalAxis>
<mx:LinearAxis id="linearAxis" baseAtZero="false"/>
</mx:verticalAxis>
<mx:verticalAxisRenderers>
<mx:AxisRenderer axis="{linearAxis}"/>
</mx:verticalAxisRenderers>
<mx:series>
<mx:ColumnSeries xField="time" yField="value" fill="{solidColor}" stroke="{solidColorStroke}"/>
</mx:series>
</mx:ColumnChart>
Время от времени в нее закидывается новый columnChart.dataProvider. Моя задача - нарисовать поверх этой диаграммы две горизонтальные линии (по мин. и макс. значениям) и еще кое что. Я догадываюсь, что все это не сложно нарисовать в annotationElements на cartesianDataCanvas. Вопрос в другом: В какой момент (или по какому событию) следует перерисовывать аннотации, чтобы они всегда отражали актуальные данные диаграммы?
Я пробовал делать это при обновлении columnChart.dataProvider. Но это слишком рано - в dateTimeAxis и linearAxis еще не успевают вычислить новые мин. и макс. значения. Ну, не самому же их считать?