Problem solved:

I just commented that line:

pricesHLOCChart.series.push(vwapLineSeries); // Same VWAP line series as
the AreaChart


Added the same series to two different charts causes trouble.


--- In flexcoders@yahoogroups.com, "k.sigiscar" <k.sigiscar@...> wrote:
>
> Hi,
> 
> I have created a custom chart component with dynamic series.
> 
> Everything but the VWAP series is shown.
> 
> I have tried created an empty array, assign series to it then set the series 
> of the priceAreaChart instead of pushing them one by one. To no avail.
> 
> I have tried using invalidateSeriesStyles() as well.
> 
> Any clue ?
> 
> 
> 
>               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;                       
> 
>                               // Reset charts series
>                               
>                               pricesAreaChart.series = [];    
>                               pricesHLOCChart.series = [];
>                               tradeVolumesChart.series = [];
>                               
>                               // Remove Dynamic skin parts
>       
>                               for each(var dynamicSkinPartObject:Object in 
> dynamicPartsInstances) {
>                                       
> removeDynamicPartInstance(dynamicSkinPartObject.partName, 
> dynamicSkinPartObject.instance);                                      
>                               }
>                               
>                               dynamicPartsInstances = [];
>                               
>                               // Remove all the data children (dingbats) from 
> the DataDrawingCanvas in the annotationElements
>                               
>                               pricesAreaForegroundCanvas.removeAllChildren();
>                               pricesHLOCForegroundCanvas.removeAllChildren();
>                               
>                               // Create dingbats for the alert being 
> investigated
>                               createDingBats();
>                               
>                               // Create charts series
>                               
>                               var columnSet:ColumnSet = new ColumnSet();
>                               columnSet.type = "stacked";
>                               
>                               for each(var item:StockDataItemDTO in 
> dataProvider)
>                               {
>                                       if(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, 1);
>                                               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, 
> 1.0);
>                                                       
> gradientEntries.push(gradientEntry);                                    
>                                                       spreadAreaRatio += 0.33;
>                                               }
>                                               
>                                               spreadAreaFill.entries = 
> gradientEntries;
>       
>                                               
> spreadAreaSeries.setStyle("areaStroke", spreadAreaStroke);
>                                               
> spreadAreaSeries.setStyle("areaFill", spreadAreaFill);
>                                               
> spreadAreaSeries.setStyle("form", formData);
>                                               
> pricesAreaChart.series.push(spreadAreaSeries);
>                                               
>                                               
> 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, 2, 2, 2, 2, 1); // Glow the color of vwapColor
>                                               //priceLineSeries.filters = 
> [priceLineFilter];
>                                               
> priceLineSeries.setStyle("form", formData);
>                                               
> pricesAreaChart.series.push(priceLineSeries);
>       
>                                               
> BindingUtils.bindProperty(priceLineSeries, "visible", item, 
> "isLevel1Displayed");
>       
>                                               // VWAP line
>                                                       
>                                               var vwapLineSeries:LineSeries = 
> new LineSeries();
>                                               
>                                               vwapLineSeries.dataProvider = 
> item.data;
>                                               vwapLineSeries.xField="date";
>                                               vwapLineSeries.yField="vwap";
>                                               var vwapLineStroke:IStroke = 
> new SolidColorStroke(0xFFFFFF, 1, 1); // Line the same color for all markets 
> (default is white)
>                                               
> vwapLineSeries.setStyle("lineStroke", vwapLineStroke);
>                                               var vwapFilter:GlowFilter = new 
> GlowFilter(item.priceColor, 2, 2, 2, 2, 1); // Glow the color of vwapColor
>                                               //vwapLineSeries.filters = 
> [vwapFilter];
>                                               vwapLineSeries.setStyle("form", 
> formData);
>                                               
> pricesAreaChart.series.push(vwapLineSeries);
>                                               
>                                               
> BindingUtils.bindProperty(vwapLineSeries, "visible", item, "isVWAPDisplayed");
>                                               
>                                               // 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 highLineSeries:LineSeries = 
> new LineSeries();
>                                               
>                                               highLineSeries.dataProvider = 
> item.data;
>                                               highLineSeries.xField = "date";
>                                               highLineSeries.yField = "high";
>                                               
> highLineSeries.setStyle("lineStroke", spreadAreaStroke);
>                                               highLineSeries.setStyle("form", 
> formData);
>                                               
>                                               var lowLineSeries:LineSeries = 
> new LineSeries();
>                                               
>                                               lowLineSeries.dataProvider = 
> item.data;
>                                               lowLineSeries.xField = "date";
>                                               lowLineSeries.yField = "low";
>                                               
> lowLineSeries.setStyle("lineStroke", spreadAreaStroke);
>                                               lowLineSeries.setStyle("form", 
> formData);
>                                               
>                                               
> pricesHLOCChart.series.push(hlocSeries);
>                                               
> pricesHLOCChart.series.push(vwapLineSeries);                    // Same VWAP 
> line series as the AreaChart
>                                               
> pricesHLOCChart.series.push(highLineSeries);
>                                               
> pricesHLOCChart.series.push(lowLineSeries);
>                                               
>                                               
> //----------------------------------------------
>                                               // Bottom chart: Volume of 
> trades - ColumnSeries
>                                               
> //----------------------------------------------
>                                               
>                                               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);
>                                       }
>                               }
>                               
>                               tradeVolumesChart.series = columnSet.series;
> 
>                               
> //-------------------------------------------------------------------------------------------------------------------------
>                               // Update the timeline dataProvider with the 
> first item whose data is not null (the date range for all markets is the same)
>                               
> //-------------------------------------------------------------------------------------------------------------------------
>                               
>                               var dataProviderAC:ArrayCollection = 
> dataProvider as ArrayCollection;
>                               var itemData:ArrayCollection;
>                               
>                               if(dataProviderAC.length > 0)
>                               {
>                                       for each(var market:StockDataItemDTO in 
> dataProviderAC)
>                                       {
>                                               if(market.data)
>                                               {
>                                                       itemData = market.data; 
>                                                       timeLine.dataProvider = 
> itemData;
>                                                       
>                                                       break;
>                                               }
>                                       }
>                               }
>                       }       
>                       
>                       // Reset price at time of order line on both price and 
> HLOC canvases
>                       
>                       pricesAreaBackgroundCanvas.clear();
>                       pricesHLOCBackgroundCanvas.clear();
> 
>                       invalidateDisplayList();
>               }
> 
> Best regards,
> Karl.
>

Reply via email to