Hi Claudiu, Here is part of the existing code of the custom component.
Data is invalidated in the dataProvider setter and used in commitProperties: override protected function commitProperties():void { super.commitProperties(); if(isTextColorStyleChanged) { isTextColorStyleChanged = false; pricesAreaChart.setStyle("color", textColorData); pricesHLOCChart.setStyle("color", textColorData); tradeVolumesChart.setStyle("color", textColorData); legend.setStyle("color", textColorData); } if(isFontFamilyStyleChanged) { isFontFamilyStyleChanged = false; pricesAreaChart.setStyle("fontFamily", fontFamilyData); pricesHLOCChart.setStyle("fontFamily", fontFamilyData); tradeVolumesChart.setStyle("fontFamily", fontFamilyData); legend.setStyle("fontFamily", fontFamilyData); } if(isFontWeightStyleChanged) { isFontWeightStyleChanged = false; pricesAreaChart.setStyle("fontWeight", fontWeightData); pricesHLOCChart.setStyle("fontWeight", fontWeightData); tradeVolumesChart.setStyle("fontWeight", fontWeightData); legend.setStyle("fontWeight", fontWeightData); } if(isFontSizeStyleChanged) { isFontSizeStyleChanged = false; pricesAreaChart.setStyle("fontSize", fontSizeData); pricesHLOCChart.setStyle("fontSize", fontSizeData); tradeVolumesChart.setStyle("fontSize", fontSizeData); legend.setStyle("fontSize", fontSizeData); } if(this._bDataDirty) { this._bDataDirty = false; // Update the time line start and end time timeLine.startTime = minTime; timeLine.endTime = maxTime; // Reset charts series pricesAreaChart.series = []; pricesHLOCChart.series = []; tradeVolumesChart.series = []; // Reset change watchers to prevent memory leaks as we do no set useWeakReference to true for each(var changeWatcher:ChangeWatcher in changeWatchers) { changeWatcher.unwatch(); changeWatcher = null; } changeWatchers = []; // Remove Dynamic skin parts for each(var dynamicSkinPartObject:Object in dynamicPartsInstances) { removeDynamicPartInstance(dynamicSkinPartObject.partName, dynamicSkinPartObject.instance); } dynamicPartsInstances = []; // Create charts series var columnSet:ColumnSet = new ColumnSet(); columnSet.type = "stacked"; for each(var item:StockDataItemDTO in dataProvider) { if(item.data) { if(item.isPrimary) { timeLineAreaSeries.dataProvider = item.data; } // Create one data tip per market //createDataTip(item); //####################################### // Each StockDataItem represents a market //####################################### //------------------------------------------------------------------------- // Top chart: Spread, Level 1, VWAP - AreaSeries, LineSeries and HLOCSeries //------------------------------------------------------------------------- // Spread area var spreadAreaSeries:AreaSeries = new AreaSeries(); spreadAreaSeries.dataProvider = item.data; spreadAreaSeries.xField = "date"; spreadAreaSeries.yField = "high"; spreadAreaSeries.minField = "low"; var spreadAreaStroke:IStroke = new SolidColorStroke(item.areaColor, 1, 0.4); var spreadAreaFill:LinearGradient = new LinearGradient(); var spreadAreaRatio:Number = 0.0; spreadAreaFill.rotation = 90; var gradientEntries:Array = []; for each(var spreadColor:Number in item.areaFill) { var gradientEntry:GradientEntry = new GradientEntry(spreadColor, spreadAreaRatio, 0.1); gradientEntries.push(gradientEntry); spreadAreaRatio += 0.33; } spreadAreaFill.entries = gradientEntries; spreadAreaSeries.setStyle("areaFill", spreadAreaFill); spreadAreaSeries.setStyle("form", formData); pricesAreaChart.series.push(spreadAreaSeries); changeWatchers.push(BindingUtils.bindProperty(spreadAreaSeries, "visible", item, "isSpreadDisplayed")); // Level 1 (Price) var priceLineSeries:LineSeries = new LineSeries(); priceLineSeries.dataProvider = item.data; priceLineSeries.xField = "date"; priceLineSeries.yField = "price"; var priceLineStroke:IStroke = new SolidColorStroke(item.priceColor, 1, 1); priceLineSeries.setStyle("lineStroke", priceLineStroke); var priceLineFilter:GlowFilter = new GlowFilter(0xFFFFFF, 0.6, 5, 5, 1, 1); // Glow the color of vwapColor //priceLineSeries.filters = [priceLineFilter]; priceLineSeries.setStyle("form", formData); pricesAreaChart.series.push(priceLineSeries); changeWatchers.push(BindingUtils.bindProperty(priceLineSeries, "visible", item, "isLevel1Displayed")); if(item.isPrimary) { changeWatchers.push(BindingUtils.bindSetter(priceLineSeriesVisibleChanged, item, "isLevel1Displayed")); } priceLineSeries.addEventListener(FlexEvent.HIDE, seriesHideShowHandler); priceLineSeries.addEventListener(FlexEvent.SHOW, seriesHideShowHandler); // VWAP line var vwapLineSeries1:LineSeries = new LineSeries(); vwapLineSeries1.dataProvider = item.data; vwapLineSeries1.xField="date"; vwapLineSeries1.yField="vwap"; var vwapLineStroke:IStroke = new SolidColorStroke(0xFFFFFF, 1, 1); // Line the same color for all markets (default is white) vwapLineSeries1.setStyle("lineStroke", vwapLineStroke); var vwapFilter:GlowFilter = new GlowFilter(item.priceColor, 0.6, 5, 5, 1, 1); // Glow the color of vwapColor //vwapLineSeries1.filters = [vwapFilter]; vwapLineSeries1.setStyle("form", formData); pricesAreaChart.series.push(vwapLineSeries1); changeWatchers.push(BindingUtils.bindProperty(vwapLineSeries1, "visible", item, "isVWAPDisplayed")); var highLineSeries1:LineSeries = new LineSeries(); highLineSeries1.dataProvider = item.data; highLineSeries1.xField = "date"; highLineSeries1.yField = "high"; highLineSeries1.setStyle("lineStroke", spreadAreaStroke); highLineSeries1.setStyle("form", formData); var lowLineSeries1:LineSeries = new LineSeries(); lowLineSeries1.dataProvider = item.data; lowLineSeries1.xField = "date"; lowLineSeries1.yField = "low"; lowLineSeries1.setStyle("lineStroke", spreadAreaStroke); lowLineSeries1.setStyle("form", formData); pricesAreaChart.series.push(highLineSeries1); pricesAreaChart.series.push(lowLineSeries1); changeWatchers.push(BindingUtils.bindProperty(highLineSeries1, "visible", item, "isSpreadDisplayed")); changeWatchers.push(BindingUtils.bindProperty(lowLineSeries1, "visible", item, "isSpreadDisplayed")); // HLOC var hlocSeries:HLOCSeries = new HLOCSeries(); hlocSeries.dataProvider = item.data; hlocSeries.xField="date"; hlocSeries.openField="open"; hlocSeries.highField="high"; hlocSeries.lowField="low"; hlocSeries.closeField="close"; hlocSeries.setStyle("openTickLength", 7); hlocSeries.setStyle("closeTickLength", 7); var hlocLineStroke:IStroke = new SolidColorStroke(item.hlocColor, 1, 1); hlocSeries.setStyle("lineStroke", hlocLineStroke); var closeTickStroke:IStroke = new SolidColorStroke(item.closeTickColor, 1, 1); hlocSeries.setStyle("closeTickStroke", closeTickStroke); var openTickStroke:IStroke = new SolidColorStroke(item.openTickColor, 1, 1); hlocSeries.setStyle("openTickStroke", openTickStroke); var highLineSeries2:LineSeries = new LineSeries(); highLineSeries2.dataProvider = item.data; highLineSeries2.xField = "date"; highLineSeries2.yField = "high"; highLineSeries2.setStyle("lineStroke", spreadAreaStroke); highLineSeries2.setStyle("form", formData); var lowLineSeries2:LineSeries = new LineSeries(); lowLineSeries2.dataProvider = item.data; lowLineSeries2.xField = "date"; lowLineSeries2.yField = "low"; lowLineSeries2.setStyle("lineStroke", spreadAreaStroke); lowLineSeries2.setStyle("form", formData); pricesHLOCChart.series.push(hlocSeries); pricesHLOCChart.series.push(highLineSeries2); pricesHLOCChart.series.push(lowLineSeries2); changeWatchers.push(BindingUtils.bindProperty(highLineSeries2, "visible", item, "isSpreadDisplayed")); changeWatchers.push(BindingUtils.bindProperty(lowLineSeries2, "visible", item, "isSpreadDisplayed")); // VWAP line var vwapLineSeries2:LineSeries = new LineSeries(); vwapLineSeries2.dataProvider = item.data; vwapLineSeries2.xField="date"; vwapLineSeries2.yField="vwap"; var vwapLineStroke:IStroke = new SolidColorStroke(0xFFFFFF, 1, 1); // Line the same color for all markets (default is white) vwapLineSeries2.setStyle("lineStroke", vwapLineStroke); var vwapFilter:GlowFilter = new GlowFilter(item.priceColor, 0.6, 5, 5, 1, 1); // Glow the color of vwapColor //vwapLineSeries2.filters = [vwapFilter]; vwapLineSeries2.setStyle("form", formData); pricesHLOCChart.series.push(vwapLineSeries2); changeWatchers.push(BindingUtils.bindProperty(vwapLineSeries2, "visible", item, "isVWAPDisplayed")); //---------------------------------------------- // Bottom chart: Volume of trades - ColumnSeries //---------------------------------------------- if(currentAlertType.levelOneVolume) { var volumeColumnSeries:ColumnSeries = new ColumnSeries(); volumeColumnSeries.dataProvider = item.data; volumeColumnSeries.xField="date"; volumeColumnSeries.yField="volume"; volumeColumnSeries.setStyle("stroke", spreadAreaStroke); // Same values as the spread volumeColumnSeries.setStyle("fill", spreadAreaFill); // Same values as the spread volumeColumnSeries.displayName = item.marketName; columnSet.series.push(volumeColumnSeries); changeWatchers.push(BindingUtils.bindProperty(volumeColumnSeries, "visible", item, "isLevel1Displayed")); tradeVolumesChart.visible = true; tradeVolumesChart.includeInLayout = true; pricesAreaChart.height = 200; pricesHLOCChart.height = 200; } else { tradeVolumesChart.visible = false; tradeVolumesChart.includeInLayout = false; pricesAreaChart.height = 400; pricesHLOCChart.height = 400; } } } tradeVolumesChart.series = columnSet.series; } timeLine.startTime = startTime; timeLine.endTime = endTime; // Create dingbats for the alert being investigated createDingBats(); // Reset price at time of order line on both price and HLOC canvases pricesAreaBackgroundCanvas.clear(); pricesHLOCBackgroundCanvas.clear(); invalidateDisplayList(); } --- In flexcoders@yahoogroups.com, claudiu ursica <the_braniak@...> wrote: > > Hi Karl, > Can you share some basic example? I don't know how your chart and data looks > like, and how you add/discard new data. > > I see you already ran into this and did not work... > https://userflex.wordpress.com/2011/04/21/update-linear-axis/ > > C > > > > ________________________________ > From: k.sigiscar <k.sigiscar@...> > To: flexcoders@yahoogroups.com > Sent: Monday, July 9, 2012 10:24 AM > Subject: [flexcoders] Resetting Chart scale on LineAxis > > > Â > Hi, > > I have a chart with dynamic series on a LinearAxis (Y) and a DateTimeAxis (X). > > The series visibility can be set to true / false by the user. > > When a series with a very high value is displayed, the rest of the chart is > scaled down. > > When the series with the high values is then discarded (visibility set to > false), the chart doesn't scale down again. > > Is there a way to force the chart to "reset its scale" (min/max) values ? > > Best regards, > Karl Sigiscar. >