You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2014/09/04 23:23:54 UTC
[1/2] Added LineChart with two layouts;
renamed some chart classes. Changed how lists (which includes charts)
generate the itemRenderers - it is now up to the layout to create them as
needed.
Repository: flex-asjs
Updated Branches:
refs/heads/develop 9cdabb2ce -> 37cca4d56
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
index e7a7c08..a8b4fa4 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
@@ -112,17 +112,5 @@ package org.apache.flex.charts.core
* @productversion FlexJS 0.0
*/
function set height(value:Number):void;
-
- /**
- * The parent component of the itemRenderer instance. This is the container that houses
- * all of the itemRenderers for the series.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get itemRendererParent():Object;
- function set itemRendererParent(value:Object):void;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IConnectedItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IConnectedItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IConnectedItemRenderer.as
new file mode 100644
index 0000000..e982645
--- /dev/null
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IConnectedItemRenderer.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.core
+{
+ /**
+ * The IConnectedItemRenderer interface is the interface used to connect
+ * data points on a chart. This interface adds a connection point, (x2,y2),
+ * to the (x,y) already supplied by IChartItemRenderer.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IConnectedItemRenderer extends IChartItemRenderer
+ {
+ /**
+ * The x-coordinate of the second point to connect.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get x2():Number;
+ function set x2(value:Number):void;
+
+ /**
+ * The y-coordinate of the second point to connect.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get y2():Number;
+ function set y2(value:Number):void;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
index 624b28d..8a11f7f 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
@@ -48,26 +48,6 @@ package org.apache.flex.charts.supportClasses
super();
}
- private var _itemRendererParent:Object;
-
- /**
- * The parent component of the itemRenderer instance. This is the container that houses
- * all of the itemRenderers for the series.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get itemRendererParent():Object
- {
- return _itemRendererParent;
- }
- public function set itemRendererParent(value:Object):void
- {
- _itemRendererParent = value;
- }
-
private var filledRect:FilledRectangle;
private var _yField:String = "y";
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as
new file mode 100644
index 0000000..af732bb
--- /dev/null
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as
@@ -0,0 +1,143 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.supportClasses
+{
+ import flash.display.Shape;
+
+ import org.apache.flex.core.FilledRectangle;
+ import org.apache.flex.html.supportClasses.DataItemRenderer;
+
+ public class LineSegmentItemRenderer extends DataItemRenderer
+ {
+ public function LineSegmentItemRenderer()
+ {
+ super();
+ }
+
+ private var filledRect:FilledRectangle;
+
+ private var _points:Array;
+
+ public function get points():Array
+ {
+ return _points;
+ }
+ public function set points(value:Array):void
+ {
+ _points = value;
+
+ if (shape == null) {
+ shape = new Shape();
+ addElement(shape);
+ }
+
+ drawLine();
+ }
+
+ private var shape:Shape;
+
+ private var _lineColor:uint = 0xFF0000;
+
+ /**
+ * The color used to draw the line segments
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get lineColor():uint
+ {
+ return _lineColor;
+ }
+ public function set lineColor(value:uint):void
+ {
+ _lineColor = value;
+ }
+
+ private var _lineThickness:int = 1;
+
+ /**
+ * The thickness or weight of the line segments
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get lineThickness():int
+ {
+ return _lineThickness;
+ }
+ public function set lineThickness(value:int):void
+ {
+ _lineThickness = value;
+ }
+
+ /**
+ * @copy org.apache.flex.supportClasses.UIItemRendererBase#data
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ override public function set data(value:Object):void
+ {
+ super.data = value;
+
+ if (shape == null) {
+ shape = new Shape();
+ addElement(shape);
+ }
+// if (filledRect == null) {
+// filledRect = new FilledRectangle();
+// addElement(filledRect);
+// }
+ }
+
+ /**
+ * @private
+ */
+ protected function drawLine():void
+ {
+// if (filledRect) {
+// filledRect.fillColor = fillColor;
+// filledRect.drawRect(0,0,this.width,this.height);
+// }
+// if (shape && (!isNaN(x)) && (!isNaN(y)) && (!isNaN(x2)) && (!isNaN(y2))) {
+// shape.graphics.clear();
+// shape.graphics.lineStyle(1,fillColor,1);
+// shape.graphics.moveTo(0,0);
+// shape.graphics.lineTo(x2-x,y2-y);
+// }
+ if (shape != null && points != null)
+ {
+ shape.graphics.clear();
+ shape.graphics.lineStyle(lineThickness,lineColor,1);
+
+ for (var i:int=0; i < points.length; i++) {
+ var point:Object = points[i];
+ if (i == 0) shape.graphics.moveTo(point.x,point.y);
+ else shape.graphics.lineTo(point.x,point.y);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
index 4b69a41..32e0dd7 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
@@ -19,11 +19,8 @@
package org.apache.flex.charts.supportClasses
{
import flash.display.Graphics;
- import flash.geom.Point;
import org.apache.flex.charts.core.IChartItemRenderer;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.IUIBase;
import org.apache.flex.core.UIBase;
import org.apache.flex.html.supportClasses.DataItemRenderer;
@@ -34,26 +31,6 @@ package org.apache.flex.charts.supportClasses
super();
}
- private var _itemRendererParent:Object;
-
- /**
- * The parent component of the itemRenderer instance. This is the container that houses
- * all of the itemRenderers for the series.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get itemRendererParent():Object
- {
- return _itemRendererParent;
- }
- public function set itemRendererParent(value:Object):void
- {
- _itemRendererParent = value;
- }
-
private var _fillColor:uint = 0xFF0000;
public function get fillColor():uint
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as
new file mode 100644
index 0000000..692d85c
--- /dev/null
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContentView.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.core
+{
+ public interface IContentView
+ {
+ function get x():Number;
+ function set x(value:Number):void;
+
+ function get y():Number;
+ function set y(value:Number):void;
+
+ function get width():Number;
+ function set width(value:Number):void;
+
+ function get height():Number;
+ function set height(value:Number):void;
+
+ function addElement(value:Object):void;
+ function removeAllElements():void;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IItemRenderer.as
index ca604b9..1a8eef7 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IItemRenderer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IItemRenderer.as
@@ -101,5 +101,17 @@ package org.apache.flex.core
*/
function get down():Boolean;
function set down(value:Boolean):void;
+
+ /**
+ * The parent component of the itemRenderer instance. This is the container that houses
+ * all of the itemRenderers.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get itemRendererParent():Object;
+ function set itemRendererParent(value:Object):void;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/List.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/List.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/List.as
index 59fb793..a690b9b 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/List.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/List.as
@@ -21,10 +21,13 @@ package org.apache.flex.html
import mx.core.IFactory;
import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.IItemRendererClassFactory;
import org.apache.flex.core.IRollOverModel;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.core.ValuesManager;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
[Event(name="change", type="org.apache.flex.events.Event")]
@@ -174,11 +177,18 @@ package org.apache.flex.html
{
super.addedToParent();
- if (getBeadByType(IDataProviderItemRendererMapper) == null)
- {
- var mapper:IDataProviderItemRendererMapper = new (ValuesManager.valuesImpl.getValue(this, "iDataProviderItemRendererMapper")) as IDataProviderItemRendererMapper;
- addBead(mapper);
- }
+// if (getBeadByType(IDataProviderItemRendererMapper) == null)
+// {
+// var mapper:IDataProviderItemRendererMapper = new (ValuesManager.valuesImpl.getValue(this, "iDataProviderItemRendererMapper")) as IDataProviderItemRendererMapper;
+// addBead(mapper);
+// }
+ var itemRendererFactory:IItemRendererClassFactory = getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory;
+ if (!itemRendererFactory)
+ {
+ itemRendererFactory = new (ValuesManager.valuesImpl.getValue(this, "iItemRendererClassFactory")) as IItemRendererClassFactory;
+ addBead(itemRendererFactory);
+ }
+ IEventDispatcher(this).dispatchEvent(new Event("layoutNeeded"));
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.as
index ea34a9e..94d4166 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.as
@@ -24,11 +24,18 @@ package org.apache.flex.html.beads.layouts
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.IBorderModel;
+ import org.apache.flex.core.IContentView;
+ import org.apache.flex.core.IItemRenderer;
+ import org.apache.flex.core.IItemRendererClassFactory;
+ import org.apache.flex.core.IItemRendererParent;
import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.IScrollBarModel;
+ import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.html.List;
import org.apache.flex.html.supportClasses.Border;
import org.apache.flex.html.supportClasses.ScrollBar;
@@ -79,36 +86,56 @@ package org.apache.flex.html.beads.layouts
IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
}
-
+
private function changeHandler(event:Event):void
{
var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:DisplayObjectContainer = layoutParent.contentView;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
var border:Border = layoutParent.border;
var borderModel:IBorderModel = border.model as IBorderModel;
- var ww:Number = DisplayObject(layoutParent.resizableView).width;
- var hh:Number = DisplayObject(layoutParent.resizableView).height;
- border.width = ww;
- border.height = hh;
-
+ var ww:Number = DisplayObject(layoutParent.resizableView).width;
+ var hh:Number = DisplayObject(layoutParent.resizableView).height;
+ border.width = ww;
+ border.height = hh;
+
contentView.width = ww - borderModel.offsets.left - borderModel.offsets.right;
contentView.height = hh - borderModel.offsets.top - borderModel.offsets.bottom;
contentView.x = borderModel.offsets.left;
contentView.y = borderModel.offsets.top;
- var n:int = contentView.numChildren;
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
+
+ var itemRendererFactory:IItemRendererClassFactory = _strand.getBeadByType(IItemRendererClassFactory) as IItemRendererClassFactory;
+
+ var n:int = dp.length;
var yy:Number = 0;
+ var defaultHeight:Number = 30;
+
for (var i:int = 0; i < n; i++)
{
- var ir:DisplayObject = contentView.getChildAt(i);
- ir.y = yy;
- ir.width = contentView.width;
- yy += ir.height;
+ var needsAdd:Boolean = false;
+ var ir:IItemRenderer = IItemRendererParent(contentView).getItemRendererForIndex(i);
+ if (ir == null) {
+ ir = itemRendererFactory.createItemRenderer(contentView as IItemRendererParent) as IItemRenderer;
+ needsAdd = true;
+ }
+ ir.itemRendererParent = contentView;
+ ir.index = i;
+ ir.labelField = (_strand as List).labelField;
+ ir.data = dp[i];
+ if (needsAdd) UIBase(contentView).addElement(ir);
+ UIBase(ir).y = yy;
+ UIBase(ir).width = contentView.width;
+// if (UIBase(ir).height == 0) UIBase(ir).height = defaultHeight;
+ yy += UIBase(ir).height;
}
if (yy > contentView.height)
{
- vScrollBar = layoutParent.vScrollBar;
+ vScrollBar = layoutParent.vScrollBar;
contentView.width -= vScrollBar.width;
IScrollBarModel(vScrollBar.model).maximum = yy;
IScrollBarModel(vScrollBar.model).pageSize = contentView.height;
@@ -117,13 +144,13 @@ package org.apache.flex.html.beads.layouts
vScrollBar.height = contentView.height;
vScrollBar.y = contentView.y;
vScrollBar.x = contentView.width;
- var vpos:Number = IScrollBarModel(vScrollBar.model).value;
- contentView.scrollRect = new Rectangle(0, vpos, contentView.width, vpos + contentView.height);
- vScrollBar.addEventListener("scroll", scrollHandler);
+ var vpos:Number = IScrollBarModel(vScrollBar.model).value;
+ DisplayObjectContainer(contentView).scrollRect = new Rectangle(0, vpos, contentView.width, vpos + contentView.height);
+ vScrollBar.addEventListener("scroll", scrollHandler);
}
else if (vScrollBar)
{
- contentView.scrollRect = null;
+ DisplayObjectContainer(contentView).scrollRect = null;
vScrollBar.visible = false;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.as
index 9473246..8487618 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.as
@@ -18,6 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.html.supportClasses
{
+ import org.apache.flex.core.IContentView;
import org.apache.flex.core.IItemRenderer;
import org.apache.flex.core.IItemRendererParent;
import org.apache.flex.core.UIBase;
@@ -31,7 +32,7 @@ package org.apache.flex.html.supportClasses
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class NonVirtualDataGroup extends UIBase implements IItemRendererParent
+ public class NonVirtualDataGroup extends UIBase implements IItemRendererParent, IContentView
{
/**
* Constructor.
@@ -56,6 +57,7 @@ package org.apache.flex.html.supportClasses
*/
public function getItemRendererForIndex(index:int):IItemRenderer
{
+ if (index < 0 || index >= numChildren) return null;
return getChildAt(index) as IItemRenderer;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
index 1974358..0d121c3 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
@@ -236,6 +236,26 @@ package org.apache.flex.html.supportClasses
_down = value;
updateRenderer();
}
+
+ private var _itemRendererParent:Object;
+
+ /**
+ * The parent component of the itemRenderer instance. This is the container that houses
+ * all of the itemRenderers.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get itemRendererParent():Object
+ {
+ return _itemRendererParent;
+ }
+ public function set itemRendererParent(value:Object):void
+ {
+ _itemRendererParent = value;
+ }
/**
* @private
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as
index d77ae61..765407a 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as
@@ -69,6 +69,25 @@ package org.apache.flex.html.supportClasses
}
+ private var _itemRendererParent:Object;
+
+ /**
+ * The parent container for the itemRenderer instance.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get itemRendererParent():Object
+ {
+ return _itemRendererParent;
+ }
+ public function set itemRendererParent(value:Object):void
+ {
+ _itemRendererParent = value;
+ }
+
/**
* @private
*/
[2/2] git commit: [flex-asjs] [refs/heads/develop] - Added LineChart
with two layouts;
renamed some chart classes. Changed how lists (which includes charts) generate
the itemRenderers - it is now up to the layout to create them as needed.
Posted by pe...@apache.org.
Added LineChart with two layouts; renamed some chart classes. Changed how lists (which includes charts) generate the itemRenderers - it is now up to the layout to create them as needed.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/37cca4d5
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/37cca4d5
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/37cca4d5
Branch: refs/heads/develop
Commit: 37cca4d56ab1ed5b93b3ef6f3f556deb770e7f28
Parents: 9cdabb2
Author: Peter Ent <pe...@apache.org>
Authored: Thu Sep 4 17:23:49 2014 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Sep 4 17:23:49 2014 -0400
----------------------------------------------------------------------
.../as/projects/FlexJSJX/basic-manifest.xml | 9 +-
frameworks/as/projects/FlexJSJX/defaults.css | 13 ++
.../as/projects/FlexJSJX/src/FlexJSJXClasses.as | 7 +-
.../src/org/apache/flex/charts/LineChart.as | 31 ++++
.../charts/beads/HorizontalCategoryAxisBead.as | 28 +--
.../charts/beads/HorizontalLinearAxisBead.as | 32 +---
.../charts/beads/VerticalCategoryAxisBead.as | 10 +-
.../flex/charts/beads/VerticalLinearAxisBead.as | 30 +--
.../flex/charts/beads/layouts/BarChartLayout.as | 51 ++++--
.../charts/beads/layouts/ColumnChartLayout.as | 66 +++++--
.../layouts/LineChartCategoryVsLinearLayout.as | 181 ++++++++++++++++++
.../layouts/LineChartLinearVsLinearLayout.as | 183 +++++++++++++++++++
.../flex/charts/beads/layouts/PieChartLayout.as | 98 +++-------
.../beads/layouts/StackedBarChartLayout.as | 53 ++++--
.../beads/layouts/StackedColumnChartLayout.as | 51 ++++--
.../charts/supportClasses/BarChartSeries.as | 127 -------------
.../flex/charts/supportClasses/BarSeries.as | 122 +++++++++++++
.../flex/charts/supportClasses/ColumnSeries.as | 112 ++++++++++++
.../flex/charts/supportClasses/LineSeries.as | 147 +++++++++++++++
.../charts/supportClasses/PieChartSeries.as | 94 ----------
.../flex/charts/supportClasses/PieSeries.as | 94 ++++++++++
.../as/projects/FlexJSUI/basic-manifest.xml | 1 +
.../as/projects/FlexJSUI/src/FlexJSUIClasses.as | 2 +
.../flex/charts/core/IChartItemRenderer.as | 12 --
.../flex/charts/core/IConnectedItemRenderer.as | 55 ++++++
.../charts/supportClasses/BoxItemRenderer.as | 20 --
.../supportClasses/LineSegmentItemRenderer.as | 143 +++++++++++++++
.../charts/supportClasses/WedgeItemRenderer.as | 23 ---
.../src/org/apache/flex/core/IContentView.as | 38 ++++
.../src/org/apache/flex/core/IItemRenderer.as | 12 ++
.../FlexJSUI/src/org/apache/flex/html/List.as | 20 +-
.../NonVirtualVerticalScrollingLayout.as | 61 +++++--
.../html/supportClasses/NonVirtualDataGroup.as | 4 +-
.../supportClasses/TextFieldItemRenderer.as | 20 ++
.../html/supportClasses/UIItemRendererBase.as | 19 ++
35 files changed, 1440 insertions(+), 529 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/basic-manifest.xml b/frameworks/as/projects/FlexJSJX/basic-manifest.xml
index d4d6ac6..a146016 100644
--- a/frameworks/as/projects/FlexJSJX/basic-manifest.xml
+++ b/frameworks/as/projects/FlexJSJX/basic-manifest.xml
@@ -31,10 +31,13 @@
<component id="DateChooser" class="org.apache.flex.html.DateChooser"/>
<component id="DateField" class="org.apache.flex.html.DateField"/>
<component id="BarChart" class="org.apache.flex.charts.BarChart" />
- <component id="BarChartSeries" class="org.apache.flex.charts.supportClasses.BarChartSeries" />
+ <component id="BarSeries" class="org.apache.flex.charts.supportClasses.BarSeries" />
<component id="ColumnChart" class="org.apache.flex.charts.ColumnChart" />
+ <component id="ColumnSeries" class="org.apache.flex.charts.supportClasses.ColumnSeries" />
+ <component id="LineChart" class="org.apache.flex.charts.LineChart" />
+ <component id="LineSeries" class="org.apache.flex.charts.supportClasses.LineSeries" />
<component id="PieChart" class="org.apache.flex.charts.PieChart" />
- <component id="PieChartSeries" class="org.apache.flex.charts.supportClasses.PieChartSeries" />
+ <component id="PieSeries" class="org.apache.flex.charts.supportClasses.PieSeries" />
<component id="StackedColumnChart" class="org.apache.flex.charts.StackedColumnChart" />
<component id="StackedBarChart" class="org.apache.flex.charts.StackedBarChart" />
<component id="HorizontalCategoryAxisBead" class="org.apache.flex.charts.beads.HorizontalCategoryAxisBead" />
@@ -42,6 +45,8 @@
<component id="VerticalCategoryAxisBead" class="org.apache.flex.charts.beads.VerticalCategoryAxisBead" />
<component id="VerticalLinearAxisBead" class="org.apache.flex.charts.beads.VerticalLinearAxisBead" />
+ <component id="LineChartCategoryVsLinearLayout" class="org.apache.flex.charts.beads.layouts.LineChartCategoryVsLinearLayout" />
+ <component id="LineChartLinearVsLinearLayout" class="org.apache.flex.charts.beads.layouts.LineChartLinearVsLinearLayout" />
<component id="VerticalColumnLayout" class="org.apache.flex.html.beads.layouts.VerticalColumnLayout" />
</componentPackage>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/defaults.css b/frameworks/as/projects/FlexJSJX/defaults.css
index 87d064c..9271d1c 100644
--- a/frameworks/as/projects/FlexJSJX/defaults.css
+++ b/frameworks/as/projects/FlexJSJX/defaults.css
@@ -70,6 +70,19 @@ DateField {
IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatMMDDYYYYBead");
}
+LineChart
+{
+ IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+ IBeadView: ClassReference("org.apache.flex.html.beads.ListView");
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
+ IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.LineChartCategoryVsLinearLayout");
+ IDataGroup: ClassReference("org.apache.flex.charts.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.ChartItemRendererFactory");
+ IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
+ IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
+ IConnectedItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.LineSegmentItemRenderer");
+}
+
PieChart
{
IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
index 19d495e..71d6985 100644
--- a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
+++ b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
@@ -36,11 +36,14 @@ internal class FlexJSJXClasses
import org.apache.flex.charts.beads.VerticalLinearAxisBead; VerticalLinearAxisBead;
import org.apache.flex.charts.beads.layouts.BarChartLayout; BarChartLayout;
import org.apache.flex.charts.beads.layouts.ColumnChartLayout; ColumnChartLayout;
+ import org.apache.flex.charts.beads.layouts.LineChartCategoryVsLinearLayout; LineChartCategoryVsLinearLayout;
+ import org.apache.flex.charts.beads.layouts.LineChartLinearVsLinearLayout; LineChartLinearVsLinearLayout;
import org.apache.flex.charts.beads.layouts.PieChartLayout; PieChartLayout;
import org.apache.flex.charts.beads.layouts.StackedBarChartLayout; StackedBarChartLayout;
import org.apache.flex.charts.beads.layouts.StackedColumnChartLayout; StackedColumnChartLayout;
- import org.apache.flex.charts.supportClasses.BarChartSeries; BarChartSeries;
- import org.apache.flex.charts.supportClasses.PieChartSeries; PieChartSeries;
+ import org.apache.flex.charts.supportClasses.BarSeries; BarSeries;
+ import org.apache.flex.charts.supportClasses.LineSeries; LineSeries;
+ import org.apache.flex.charts.supportClasses.PieSeries; PieSeries;
import org.apache.flex.effects.Tween; Tween;
import org.apache.flex.effects.Move; Move;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as
new file mode 100644
index 0000000..c30034d
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts
+{
+ import org.apache.flex.charts.core.ChartBase;
+ import org.apache.flex.charts.core.IChart;
+
+ public class LineChart extends ChartBase implements IChart
+ {
+ public function LineChart()
+ {
+ super();
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
index c90a861..a9ac931 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
@@ -23,7 +23,6 @@ package org.apache.flex.charts.beads
import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.core.FilledRectangle;
import org.apache.flex.core.IBead;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
@@ -101,7 +100,7 @@ package org.apache.flex.charts.beads
/**
* The amount of space to leave between series. If a chart has several series,
* the bars for an X value are side by side with a gap between the groups of
- * bars.
+ * bars. The default is 20.
*
* @langversion 3.0
* @playerversion Flash 10.2
@@ -140,24 +139,18 @@ package org.apache.flex.charts.beads
*/
private function handleItemsCreated(event:Event):void
{
- var charter:ChartItemRendererFactory =
- _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
-
var model:ArraySelectionModel = _strand.getBeadByType(ISelectionModel) as ArraySelectionModel;
var items:Array;
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
- var renderers:Array = charter.seriesRenderers;
- var series:Array = IChart(_strand).series;
-
var yAxis:IVerticalAxisBead;
if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
var xpos:Number = yAxisOffset;
var xAxisHeightOffset:Number = axisHeight;
- var useWidth:Number = (UIBase(_strand).width-yAxisOffset) / renderers.length;
+ var useWidth:Number = UIBase(_strand).width-yAxisOffset;
// draw the horzontal axis
var horzLine:FilledRectangle = new FilledRectangle();
@@ -165,11 +158,17 @@ package org.apache.flex.charts.beads
horzLine.x = xpos;
horzLine.y = UIBase(_strand).height - xAxisHeightOffset;
horzLine.height = 1;
- horzLine.width = UIBase(_strand).width - yAxisOffset;
+ horzLine.width = useWidth;
UIBase(_strand).addElement(horzLine);
// place the labels below the axis enough to account for the tick marks
var labelY:Number = UIBase(_strand).height + 8;
+ var itemWidth:Number = (useWidth - gap*(items.length-1))/items.length;
+
+ trace("strand width: "+UIBase(_strand).width);
+ trace(items.length+" items = itemWidth: "+itemWidth);
+ trace("yAxisOffset: "+yAxisOffset+" gap: "+gap+" = useWidth: "+useWidth);
+ trace("xpos: "+xpos);
for(var i:int=0; i < items.length; i++) {
var label:Label = new Label();
@@ -182,15 +181,18 @@ package org.apache.flex.charts.beads
// add a tick mark, too
var tick:FilledRectangle = new FilledRectangle();
tick.fillColor = 0x111111;
- tick.x = xpos + useWidth/2 - gap;
+ tick.x = xpos + itemWidth/2;
tick.y = UIBase(_strand).height - xAxisHeightOffset;
tick.width = 1;
tick.height = 5;
UIBase(_strand).addElement(tick);
- var r:UIBase = UIBase(renderers[i][0]);
- xpos += useWidth;
+ xpos += itemWidth + gap;
+
+ trace(" -- xpos is now: "+xpos);
}
+
+ trace(" ");
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
index 7f73536..68dbb4a 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
@@ -23,7 +23,6 @@ package org.apache.flex.charts.beads
import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.core.FilledRectangle;
import org.apache.flex.core.IBead;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
@@ -135,27 +134,6 @@ package org.apache.flex.charts.beads
_maxValue = value;
}
- private var _gap:Number = 20;
-
- /**
- * The amount of space to leave between series. If a chart has several series,
- * the bars for an X value are side by side with a gap between the groups of
- * bars.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get gap():Number
- {
- return _gap;
- }
- public function set gap(value:Number):void
- {
- _gap = value;
- }
-
private var _strand:IStrand;
/**
@@ -201,16 +179,12 @@ package org.apache.flex.charts.beads
* @private
*/
private function handleItemsCreated(event:Event):void
- {
- var charter:ChartItemRendererFactory =
- _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
-
+ {
var model:ArraySelectionModel = _strand.getBeadByType(ISelectionModel) as ArraySelectionModel;
var items:Array;
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
- var renderers:Array = charter.seriesRenderers;
var series:Array = IChart(_strand).series;
var yAxis:IVerticalAxisBead;
@@ -257,9 +231,9 @@ package org.apache.flex.charts.beads
var tickValue:Number = minValue;
// adjust xpos to the first tick position
- xpos += tickSpacing;
+// xpos += tickSpacing;
- for(i=0; i < numTicks; i++) {
+ for(i=0; i < numTicks+1; i++) {
var label:Label = new Label();
label.text = formatLabel(tickValue);
label.x = xpos - label.width/2;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
index b28a21a..b703f06 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
@@ -23,7 +23,6 @@ package org.apache.flex.charts.beads
import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.core.FilledRectangle;
import org.apache.flex.core.IBead;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
@@ -140,16 +139,12 @@ package org.apache.flex.charts.beads
* @private
*/
private function handleItemsCreated(event:Event):void
- {
- var charter:ChartItemRendererFactory =
- _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
-
+ {
var model:ArraySelectionModel = _strand.getBeadByType(ISelectionModel) as ArraySelectionModel;
var items:Array;
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
- var renderers:Array = charter.seriesRenderers;
var series:Array = IChart(_strand).series;
var xAxis:IHorizontalAxisBead;
@@ -157,7 +152,7 @@ package org.apache.flex.charts.beads
var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
var yAxisWidthOffset:Number = axisWidth;
- var useHeight:Number = (UIBase(_strand).height-xAxisOffset) / renderers.length;
+ var useHeight:Number = (UIBase(_strand).height-xAxisOffset) / items.length;
var seriesHeight:Number = useHeight/series.length;
var xpos:Number = yAxisWidthOffset;
var ypos:Number = UIBase(_strand).height - xAxisOffset - seriesHeight - gap;
@@ -192,7 +187,6 @@ package org.apache.flex.charts.beads
tick.height = 1;
UIBase(_strand).addElement(tick);
- var r:UIBase = UIBase(renderers[i][0]);
ypos -= useHeight;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
index d53527e..930270f 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
@@ -23,7 +23,6 @@ package org.apache.flex.charts.beads
import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.core.FilledRectangle;
import org.apache.flex.core.IBead;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
@@ -137,27 +136,6 @@ package org.apache.flex.charts.beads
_maxValue = value;
}
- private var _gap:Number = 20;
-
- /**
- * The amount of space to leave between series. If a chart has several series,
- * the bars for an X value are side by side with a gap between the groups of
- * bars.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get gap():Number
- {
- return _gap;
- }
- public function set gap(value:Number):void
- {
- _gap = value;
- }
-
/**
* @private
*/
@@ -186,15 +164,11 @@ package org.apache.flex.charts.beads
*/
private function handleItemsCreated(event:Event):void
{
- var charter:ChartItemRendererFactory =
- _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
-
var model:ArraySelectionModel = _strand.getBeadByType(ISelectionModel) as ArraySelectionModel;
var items:Array;
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
- var renderers:Array = charter.seriesRenderers;
var series:Array = IChart(_strand).series;
var xAxis:IHorizontalAxisBead;
@@ -242,9 +216,9 @@ package org.apache.flex.charts.beads
var tickValue:Number = minValue;
// adjust ypos to the first tick position
- ypos = useHeight - tickSpacing;
+ ypos = useHeight;// - tickSpacing;
- for(i=0; i < numTicks; i++) {
+ for(i=0; i < numTicks+1; i++) {
var label:Label = new Label();
label.text = formatLabel(tickValue);
label.x = 0;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
index 701d185..e6e5092 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
@@ -18,16 +18,17 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
- import org.apache.flex.charts.beads.ChartItemRendererFactory;
import org.apache.flex.charts.core.ICartesianChartLayout;
import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.charts.core.IHorizontalAxisBead;
import org.apache.flex.charts.core.IVerticalAxisBead;
- import org.apache.flex.charts.supportClasses.BarChartSeries;
+ import org.apache.flex.charts.supportClasses.BarSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.IContentView;
import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
@@ -60,6 +61,7 @@ package org.apache.flex.charts.beads.layouts
IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
}
private var _gap:Number = 20;
@@ -89,13 +91,18 @@ package org.apache.flex.charts.beads.layouts
private function changeHandler(event:Event):void
{
var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
- var factory:ChartItemRendererFactory = _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
- var n:int = factory.seriesRenderers.length;
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
- var maxXValue:Number = 0;
var series:Array = IChart(_strand).series;
+ var n:int = dp.length;
trace("There are "+series.length+" series in this chart");
+
+ var maxXValue:Number = 0;
var seriesMaxes:Array = [];
var xAxis:IHorizontalAxisBead;
@@ -113,18 +120,16 @@ package org.apache.flex.charts.beads.layouts
for (var s:int = 0; s < series.length; s++)
{
- var bcs:BarChartSeries = series[s] as BarChartSeries;
+ var bcs:BarSeries = series[s] as BarSeries;
seriesMaxes.push({maxValue:0,scaleFactor:0});
for (var i:int = 0; i < n; i++)
{
- var m:Array = factory.seriesRenderers[i] as Array;
- var item:IChartItemRenderer = m[s] as IChartItemRenderer;
- var data:Object = item.data;
- var field:String = bcs.yField;
+ var data:Object = dp[i];
+ var field:String = bcs.xField;
- var yValue:Number = Number(data[field]);
- seriesMaxes[s].maxValue = Math.max(seriesMaxes[s].maxValue,yValue);
+ var xValue:Number = Number(data[field]);
+ seriesMaxes[s].maxValue = Math.max(seriesMaxes[s].maxValue,xValue);
}
seriesMaxes[s].scaleFactor = useWidth/seriesMaxes[s].maxValue;
@@ -132,22 +137,28 @@ package org.apache.flex.charts.beads.layouts
for (i = 0; i < n; i++)
{
- m = factory.seriesRenderers[i] as Array;
- for (s=0; s < m.length; s++)
+ data = dp[i];
+
+ for (s=0; s < series.length; s++)
{
- var child:IChartItemRenderer = m[s] as IChartItemRenderer;
- data = child.data
- yValue = Number(data[child.yField]);
+ bcs = series[s] as BarSeries;
+
+ var child:IChartItemRenderer = (series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = contentView;
+ child.data = data;
+ child.fillColor = bcs.fillColor;
+ xValue = Number(data[bcs.xField]);
child.x = yAxisOffset;
child.y = ypos;
- child.width = yValue*seriesMaxes[s].scaleFactor;
+ child.width = xValue*seriesMaxes[s].scaleFactor;
child.height = seriesHeight;
ypos -= seriesHeight;
+
+ contentView.addElement(child);
}
ypos -= gap;
-
}
IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
index 19e6f6c..98ef16b 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
@@ -18,26 +18,38 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
- import org.apache.flex.charts.beads.ChartItemRendererFactory;
import org.apache.flex.charts.core.ICartesianChartLayout;
import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.charts.core.IHorizontalAxisBead;
import org.apache.flex.charts.core.IVerticalAxisBead;
- import org.apache.flex.charts.supportClasses.BarChartSeries;
+ import org.apache.flex.charts.supportClasses.ColumnSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.IContentView;
import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
+ /**
+ * The ColumnChartLayout arranges the graphics in vertical columns (or whatever shape
+ * the renderer uses) using a category axis horizontally and a linear axis vertically.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
public class ColumnChartLayout implements IBeadLayout, ICartesianChartLayout
{
public function ColumnChartLayout()
{
- }private var _strand:IStrand;
+ }
+
+ private var _strand:IStrand;
/**
* @copy org.apache.flex.core.IBead#strand
@@ -53,6 +65,7 @@ package org.apache.flex.charts.beads.layouts
IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
}
private var _gap:Number = 20;
@@ -76,12 +89,22 @@ package org.apache.flex.charts.beads.layouts
_gap = value;
}
+ /**
+ * @private
+ */
private function changeHandler(event:Event):void
{
var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
- var factory:ChartItemRendererFactory = _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
- var n:int = factory.seriesRenderers.length;
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
+
+ var series:Array = IChart(_strand).series;
+ var n:int = dp.length;
+ trace("There are "+series.length+" series in this chart");
var xAxis:IHorizontalAxisBead;
if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
@@ -91,24 +114,22 @@ package org.apache.flex.charts.beads.layouts
var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
var xpos:Number = yAxisOffset;
- var useWidth:Number = ((UIBase(_strand).width-yAxisOffset) / n) - gap;
+ var useWidth:Number = UIBase(_strand).width-yAxisOffset;;
var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var itemWidth:Number = (useWidth - gap*(dp.length-1))/dp.length;
+ var seriesWidth:Number = itemWidth/series.length;
var maxYValue:Number = 0;
- var series:Array = IChart(_strand).series;
- trace("There are "+series.length+" series in this chart");
var seriesMaxes:Array = [];
for (var s:int = 0; s < series.length; s++)
{
- var bcs:BarChartSeries = series[s] as BarChartSeries;
+ var bcs:ColumnSeries = series[s] as ColumnSeries;
seriesMaxes.push({maxValue:0,scaleFactor:0});
for (var i:int = 0; i < n; i++)
{
- var m:Array = factory.seriesRenderers[i] as Array;
- var item:IChartItemRenderer = m[s] as IChartItemRenderer;
- var data:Object = item.data;
+ var data:Object = dp[i];
var field:String = bcs.yField;
var yValue:Number = Number(data[field]);
@@ -120,23 +141,28 @@ package org.apache.flex.charts.beads.layouts
for (i = 0; i < n; i++)
{
- m = factory.seriesRenderers[i] as Array;
- for (s=0; s < m.length; s++)
+ data = dp[i];
+
+ for (s=0; s < series.length; s++)
{
- var seriesWidth:Number = useWidth/series.length;
- var child:IChartItemRenderer = m[s] as IChartItemRenderer;
- data = child.data
- yValue = Number(data[child.yField]);
+ bcs = series[s] as ColumnSeries;
+
+ var child:IChartItemRenderer = bcs.itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = contentView;
+ child.data = data;
+ child.fillColor = bcs.fillColor;
+ yValue = Number(data[bcs.yField]);
child.y = useHeight - yValue*seriesMaxes[s].scaleFactor;
child.x = xpos;
child.width = seriesWidth;
child.height = yValue*seriesMaxes[s].scaleFactor;
xpos += seriesWidth;
+
+ contentView.addElement(child);
}
xpos += gap;
-
}
IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
new file mode 100644
index 0000000..941e31d
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
@@ -0,0 +1,181 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.beads.layouts
+{
+ import org.apache.flex.charts.beads.ChartItemRendererFactory;
+ import org.apache.flex.charts.core.ICartesianChartLayout;
+ import org.apache.flex.charts.core.IChart;
+ import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
+ import org.apache.flex.charts.core.IConnectedItemRenderer;
+ import org.apache.flex.charts.core.IHorizontalAxisBead;
+ import org.apache.flex.charts.core.IVerticalAxisBead;
+ import org.apache.flex.charts.supportClasses.LineSegmentItemRenderer;
+ import org.apache.flex.charts.supportClasses.LineSeries;
+ import org.apache.flex.core.IBeadLayout;
+ import org.apache.flex.core.IContentView;
+ import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+
+ /**
+ * The LineChartCategoryVsLinearLayout displays a line graph of plot points
+ * where the horizontal axis is category value and the vertical axis is numeric.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class LineChartCategoryVsLinearLayout implements IBeadLayout, ICartesianChartLayout
+ {
+ public function LineChartCategoryVsLinearLayout()
+ {
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
+ IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
+ IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
+ }
+
+ /**
+ * @private
+ */
+ private function changeHandler(event:Event):void
+ {
+ var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
+ contentView.removeAllElements();
+
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
+
+ var series:Array = IChart(_strand).series;
+ var n:int = dp.length;
+ trace("There are "+series.length+" series in this chart");
+
+ var xAxis:IHorizontalAxisBead;
+ if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
+ var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
+ var yAxis:IVerticalAxisBead;
+ if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
+ var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+
+ var xpos:Number = yAxisOffset;
+ var useWidth:Number = UIBase(_strand).width-yAxisOffset;;
+ var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var itemWidth:Number = useWidth/dp.length;
+
+ var maxYValue:Number = 0;
+ var seriesMaxes:Array = [];
+
+ for (var s:int = 0; s < series.length; s++)
+ {
+ var aseries:IChartSeries = series[s] as IChartSeries;
+ seriesMaxes.push({maxValue:0,scaleFactor:0,points:[]});
+
+ for (var i:int = 0; i < n; i++)
+ {
+ var data:Object = dp[i];
+ var field:String = aseries.yField;
+
+ var yValue:Number = Number(data[field]);
+ seriesMaxes[s].maxValue = Math.max(seriesMaxes[s].maxValue,yValue);
+ }
+
+ seriesMaxes[s].scaleFactor = useHeight/seriesMaxes[s].maxValue;
+ }
+
+ // draw the itemRenderers at each vertex and build the points array for the
+ // line segment.
+
+ for (s=0; s < series.length; s++)
+ {
+ aseries = series[s] as IChartSeries;
+
+ xpos = yAxisOffset + itemWidth/2;
+
+ for (i=0; i < n; i++)
+ {
+ data = dp[i];
+ yValue = Number(data[aseries.yField]);
+
+ var childX:Number = xpos;
+ var childY:Number = useHeight - yValue*seriesMaxes[s].scaleFactor;
+
+ seriesMaxes[s].points.push( {x:childX, y:childY} );
+
+ if (aseries.itemRenderer) {
+ var child:IChartItemRenderer = aseries.itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = contentView;
+ child.data = data;
+ child.fillColor = aseries.fillColor;
+ child.x = childX - 5;
+ child.y = childY - 5;
+ child.width = 10;
+ child.height = 10;
+ contentView.addElement(child);
+ }
+
+ xpos += itemWidth;
+ }
+ }
+
+ // draw the line segment
+
+ for (s=0; s < series.length; s++)
+ {
+ var lcs:LineSeries = series[s] as LineSeries;
+
+ if (lcs.lineSegmentRenderer)
+ {
+ var renderer:LineSegmentItemRenderer = lcs.lineSegmentRenderer.newInstance() as LineSegmentItemRenderer;
+ renderer.lineColor = lcs.lineColor;
+ renderer.lineThickness = lcs.lineThickness;
+ renderer.data = lcs;
+ renderer.points = seriesMaxes[s].points;
+ renderer.itemRendererParent = contentView;
+ contentView.addElement(renderer);
+ }
+ }
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
new file mode 100644
index 0000000..44bf7a0
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
@@ -0,0 +1,183 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.beads.layouts
+{
+ import org.apache.flex.charts.core.ICartesianChartLayout;
+ import org.apache.flex.charts.core.IChart;
+ import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
+ import org.apache.flex.charts.core.IHorizontalAxisBead;
+ import org.apache.flex.charts.core.IVerticalAxisBead;
+ import org.apache.flex.charts.supportClasses.LineSegmentItemRenderer;
+ import org.apache.flex.charts.supportClasses.LineSeries;
+ import org.apache.flex.core.IBeadLayout;
+ import org.apache.flex.core.IContentView;
+ import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+
+ /**
+ * The LineChartLinearVsLinearLayout displays a line graph of plot points
+ * where both axes are numeric values.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class LineChartLinearVsLinearLayout implements IBeadLayout, ICartesianChartLayout
+ {
+ public function LineChartLinearVsLinearLayout()
+ {
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
+ IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
+ IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
+ }
+
+ /**
+ * @private
+ */
+ private function changeHandler(event:Event):void
+ {
+ var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
+ contentView.removeAllElements();
+
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
+
+ var series:Array = IChart(_strand).series;
+ var n:int = dp.length;
+ trace("There are "+series.length+" series in this chart");
+
+ var xAxis:IHorizontalAxisBead;
+ if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
+ var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
+ var yAxis:IVerticalAxisBead;
+ if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
+ var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+
+ var xpos:Number = yAxisOffset;
+ var ypos:Number = xAxisOffset;
+ var useWidth:Number = UIBase(_strand).width - yAxisOffset;;
+ var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var itemWidth:Number = useWidth/dp.length;
+
+ var seriesMaxes:Array = [];
+
+ for (var s:int = 0; s < series.length; s++)
+ {
+ var aseries:IChartSeries = series[s] as IChartSeries;
+ seriesMaxes.push({minX:Number.MAX_VALUE,maxX:Number.MIN_VALUE,
+ minY:Number.MAX_VALUE,maxY:Number.MIN_VALUE,
+ scaleX:0,scaleY:0,points:[]});
+
+ for (var i:int = 0; i < n; i++)
+ {
+ var data:Object = dp[i];
+ var xfield:String = aseries.xField;
+ var yfield:String = aseries.yField;
+
+ var xValue:Number = Number(data[xfield]);
+ seriesMaxes[s].minX = Math.min(seriesMaxes[s].minX,xValue);
+ seriesMaxes[s].maxX = Math.max(seriesMaxes[s].maxX,xValue);
+ var yValue:Number = Number(data[yfield]);
+ seriesMaxes[s].minY = Math.min(seriesMaxes[s].minY,yValue);
+ seriesMaxes[s].maxY = Math.max(seriesMaxes[s].maxY,yValue);
+ }
+
+ seriesMaxes[s].scaleX = useWidth/(seriesMaxes[s].maxX - seriesMaxes[s].minX);
+ seriesMaxes[s].scaleY = useHeight/(seriesMaxes[s].maxY - seriesMaxes[s].minY);
+ }
+
+ // draw the itemRenderers at each vertex and build the points array for the
+ // line segment.
+
+ for (s=0; s < series.length; s++)
+ {
+ aseries = series[s] as IChartSeries;
+
+ for (i=0; i < n; i++)
+ {
+ data = dp[i];
+ xValue = Number(data[aseries.xField]);
+ yValue = Number(data[aseries.yField]);
+
+ var childX:Number = (xValue-seriesMaxes[s].minX)*seriesMaxes[s].scaleX + yAxisOffset;
+ var childY:Number = useHeight - (yValue-seriesMaxes[s].minY)*seriesMaxes[s].scaleY;
+
+ seriesMaxes[s].points.push( {x:childX, y:childY} );
+
+ if (aseries.itemRenderer) {
+ var child:IChartItemRenderer = aseries.itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = contentView;
+ child.data = data;
+ child.fillColor = aseries.fillColor;
+ child.x = childX - 5;
+ child.y = childY - 5;
+ child.width = 10;
+ child.height = 10;
+ contentView.addElement(child);
+ }
+ }
+ }
+
+ // draw the line segment
+
+ for (s=0; s < series.length; s++)
+ {
+ var lcs:LineSeries = series[s] as LineSeries;
+
+ if (lcs.lineSegmentRenderer)
+ {
+ var renderer:LineSegmentItemRenderer = lcs.lineSegmentRenderer.newInstance() as LineSegmentItemRenderer;
+ renderer.lineColor = lcs.lineColor;
+ renderer.lineThickness = lcs.lineThickness;
+ renderer.data = lcs;
+ renderer.points = seriesMaxes[s].points;
+ renderer.itemRendererParent = contentView;
+ contentView.addElement(renderer);
+ }
+ }
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
index c5546aa..2f0e959 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
@@ -18,14 +18,14 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
- import org.apache.flex.charts.beads.ChartItemRendererFactory;
import org.apache.flex.charts.core.IChart;
- import org.apache.flex.charts.core.IChartItemRenderer;
- import org.apache.flex.charts.supportClasses.PieChartSeries;
+ import org.apache.flex.charts.core.IChartSeries;
+ import org.apache.flex.charts.supportClasses.PieSeries;
import org.apache.flex.charts.supportClasses.WedgeItemRenderer;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.IContentView;
import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
@@ -70,6 +70,7 @@ package org.apache.flex.charts.beads.layouts
IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
}
/**
@@ -77,30 +78,34 @@ package org.apache.flex.charts.beads.layouts
*/
private function changeHandler(event:Event):void
{
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var factory:ChartItemRendererFactory = _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
- var n:int = factory.seriesRenderers.length;
+ var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
+ contentView.removeAllElements();
+
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
+
+ var series:Array = IChart(_strand).series;
+ var n:int = dp.length;
+ trace("There are "+series.length+" series in this chart");
var xpos:Number = 0;
var useWidth:Number = UIBase(_strand).width;
var useHeight:Number = UIBase(_strand).height;
var maxYValue:Number = 0;
- var series:Array = IChart(_strand).series;
- trace("There are "+series.length+" series in this chart");
var seriesMaxes:Array = [];
- var colors:Array = [0xFF0000, 0xFF9900, 0x00FF00, 0x00FFcc, 0x0000FF, 0xcc00FF, 0xFF00cc, 0x888888, 0x333333, 0xFFcc99];
+ var colors:Array = [0xFF0000, 0xFF9900, 0xFFFF00, 0x00FF00, 0x00FFcc, 0x0000FF, 0xcc00FF, 0xFF00cc, 0x888888, 0x333333, 0xFFcc99];
- // determine the total value by adding up the dataField values.
for (var s:int = 0; s < series.length; s++)
{
- var pcs:PieChartSeries = series[s] as PieChartSeries;
+ var pcs:PieSeries = series[s] as PieSeries;
for (var i:int = 0; i < n; i++)
{
- var m:Array = factory.seriesRenderers[i] as Array;
- var item:IChartItemRenderer = m[s] as IChartItemRenderer;
- var data:Object = item.data;
+ var data:Object = dp[i];
var field:String = pcs.dataField;
var yValue:Number = Number(data[field]);
@@ -113,9 +118,7 @@ package org.apache.flex.charts.beads.layouts
{
var obj:Object = seriesMaxes[i];
obj.percent = obj.yValue / maxYValue;
- obj.arc = 360.0*obj.percent;
-
- trace("dataPoint "+i+": value="+obj.yValue+"; percent="+obj.percent+"; arc="+obj.arc);
+ obj.arc = 360.0*obj.percent;
}
var start:Number = 0;
@@ -127,65 +130,22 @@ package org.apache.flex.charts.beads.layouts
for (i=0; i < n; i++)
{
obj = seriesMaxes[i];
- m = factory.seriesRenderers[i] as Array;
- var renderer:WedgeItemRenderer = m[s] as WedgeItemRenderer;
+ data = dp[i];
+
+ var child:WedgeItemRenderer = (series[s] as IChartSeries).itemRenderer.newInstance() as WedgeItemRenderer;
+ child.itemRendererParent = contentView;
+ child.data = data;
+ child.fillColor = colors[i];
+ contentView.addElement(child);
end = start + (360.0 * obj.percent);
var arc:Number = 360.0 * obj.percent;
trace("Draw arc from "+start+" to "+(start+arc));
- renderer.fillColor = colors[i];
- renderer.drawWedge(centerX, centerY, start*Math.PI/180, arc*Math.PI/180, radius);
+ child.drawWedge(centerX, centerY, start*Math.PI/180, arc*Math.PI/180, radius);
start += arc;
}
}
- // for each value, determine its %
- // use that % to determine the arc of the wedge
-
- // tell each wedge the data it needs so it can draw itself
-
- /*var pcs:PieChartSeries = series[0] as PieChartSeries;
- var m:WedgeItemRenderer = (factory.seriesRenderers[0] as Array)[0] as WedgeItemRenderer;
-
- for (var s:int = 0; s < series.length; s++)
- {
- var pcs:PieChartSeries = series[s] as PieChartSeries;
- seriesMaxes.push({maxValue:0,scaleFactor:0});
-
- for (var i:int = 0; i < n; i++)
- {
- var m:Array = factory.seriesRenderers[i] as Array;
- var item:IChartItemRenderer = m[s] as IChartItemRenderer;
- var data:Object = item.data;
- var field:String = bcs.yField;
-
- var yValue:Number = Number(data[field]);
- seriesMaxes[s].maxValue = Math.max(seriesMaxes[s].maxValue,yValue);
- }
-
- seriesMaxes[s].scaleFactor = useHeight/seriesMaxes[s].maxValue;
- }
-
- for (i = 0; i < n; i++)
- {
- m = factory.seriesRenderers[i] as Array;
- for (s=0; s < m.length; s++)
- {
- var seriesWidth:Number = useWidth/series.length;
- var child:IChartItemRenderer = m[s] as IChartItemRenderer;
- data = child.data
- yValue = Number(data[child.yField]);
-
- child.y = useHeight - yValue*seriesMaxes[s].scaleFactor;
- child.x = xpos;
- child.width = seriesWidth;
- child.height = yValue*seriesMaxes[s].scaleFactor;
- xpos += seriesWidth;
- }
-
- xpos += gap;
-
- }*/
IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
index 24c06cb..fed26b0 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
@@ -18,16 +18,17 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
- import org.apache.flex.charts.beads.ChartItemRendererFactory;
import org.apache.flex.charts.core.ICartesianChartLayout;
import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.charts.core.IHorizontalAxisBead;
import org.apache.flex.charts.core.IVerticalAxisBead;
- import org.apache.flex.charts.supportClasses.BarChartSeries;
+ import org.apache.flex.charts.supportClasses.BarSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.IContentView;
import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
@@ -72,6 +73,7 @@ package org.apache.flex.charts.beads.layouts
IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
}
private var _gap:Number = 20;
@@ -101,13 +103,18 @@ package org.apache.flex.charts.beads.layouts
private function changeHandler(event:Event):void
{
var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
- var factory:ChartItemRendererFactory = _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
- var n:int = factory.seriesRenderers.length;
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
- var maxXValue:Number = 0;
var series:Array = IChart(_strand).series;
+ var n:int = dp.length;
trace("There are "+series.length+" series in this chart");
+
+ var maxXValue:Number = 0;
var seriesMaxes:Array = [];
var xAxis:IHorizontalAxisBead;
@@ -131,16 +138,15 @@ package org.apache.flex.charts.beads.layouts
{
barValues.push({totalValue:0, scaleFactor:0});
+ var data:Object = dp[i];
+
for (var s:int = 0; s < series.length; s++)
{
- var bcs:BarChartSeries = series[s] as BarChartSeries;
- var m:Array = factory.seriesRenderers[i] as Array;
- var item:IChartItemRenderer = m[s] as IChartItemRenderer;
- var data:Object = item.data;
- var field:String = bcs.yField;
+ var bcs:BarSeries = series[s] as BarSeries;
+ var field:String = bcs.xField;
- var yValue:Number = Number(data[field]);
- barValues[i].totalValue += yValue;
+ var xValue:Number = Number(data[field]);
+ barValues[i].totalValue += xValue;
}
maxValue = Math.max(maxValue, barValues[i].totalValue);
@@ -150,20 +156,27 @@ package org.apache.flex.charts.beads.layouts
for (i=0; i < n; i++)
{
- m = factory.seriesRenderers[i] as Array;
+ data = dp[i];
xpos = yAxisOffset;
- for (s=0; s < m.length; s++)
+
+ for (s=0; s < series.length; s++)
{
- var child:IChartItemRenderer = m[s] as IChartItemRenderer;
- data = child.data
- yValue = Number(data[child.yField]);
+ bcs = series[s] as BarSeries;
+
+ var child:IChartItemRenderer = (series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = contentView;
+ child.data = data;
+ child.fillColor = bcs.fillColor;
+ xValue = Number(data[bcs.xField]);
child.x = xpos;
- child.width = yValue*scaleFactor;
+ child.width = xValue*scaleFactor;
child.y = ypos;
child.height = seriesHeight;
- xpos += yValue*scaleFactor;
+ xpos += xValue*scaleFactor;
+
+ contentView.addElement(child);
}
ypos -= gap + seriesHeight;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
index 857c4bc..574dca8 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
@@ -18,16 +18,17 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
- import org.apache.flex.charts.beads.ChartItemRendererFactory;
import org.apache.flex.charts.core.ICartesianChartLayout;
import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.charts.core.IHorizontalAxisBead;
import org.apache.flex.charts.core.IVerticalAxisBead;
- import org.apache.flex.charts.supportClasses.BarChartSeries;
+ import org.apache.flex.charts.supportClasses.ColumnSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.IContentView;
import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
@@ -72,6 +73,7 @@ package org.apache.flex.charts.beads.layouts
IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
}
private var _gap:Number = 20;
@@ -101,9 +103,16 @@ package org.apache.flex.charts.beads.layouts
private function changeHandler(event:Event):void
{
var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
+ var contentView:IContentView = layoutParent.contentView as IContentView;
- var factory:ChartItemRendererFactory = _strand.getBeadByType(IDataProviderItemRendererMapper) as ChartItemRendererFactory;
- var n:int = factory.seriesRenderers.length;
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
+
+ var series:Array = IChart(_strand).series;
+ var n:int = dp.length;
+ trace("There are "+series.length+" series in this chart");
var xAxis:IHorizontalAxisBead;
if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
@@ -114,12 +123,11 @@ package org.apache.flex.charts.beads.layouts
var xpos:Number = yAxisOffset;
var ypos:Number = 0;
- var useWidth:Number = ((UIBase(_strand).width-yAxisOffset) / n) - gap;
+ var useWidth:Number = UIBase(_strand).width-yAxisOffset;
var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var itemWidth:Number = (useWidth - gap*(dp.length-1))/dp.length;
var maxYValue:Number = 0;
- var series:Array = IChart(_strand).series;
- trace("There are "+series.length+" series in this chart");
var barValues:Array = [];
var maxValue:Number = 0;
@@ -128,13 +136,11 @@ package org.apache.flex.charts.beads.layouts
for (var i:int=0; i < n; i++)
{
barValues.push({totalValue:0, scaleFactor:0});
+ var data:Object = dp[i];
for (var s:int = 0; s < series.length; s++)
{
- var bcs:BarChartSeries = series[s] as BarChartSeries;
- var m:Array = factory.seriesRenderers[i] as Array;
- var item:IChartItemRenderer = m[s] as IChartItemRenderer;
- var data:Object = item.data;
+ var bcs:ColumnSeries = series[s] as ColumnSeries;
var field:String = bcs.yField;
var yValue:Number = Number(data[field]);
@@ -148,23 +154,30 @@ package org.apache.flex.charts.beads.layouts
for (i=0; i < n; i++)
{
- m = factory.seriesRenderers[i] as Array;
+ data = dp[i];
ypos = useHeight;
- for (s=0; s < m.length; s++)
+
+ for (s=0; s < series.length; s++)
{
- var child:IChartItemRenderer = m[s] as IChartItemRenderer;
- data = child.data
- yValue = Number(data[child.yField]);
+ bcs = series[s] as ColumnSeries;
+
+ var child:IChartItemRenderer = bcs.itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = contentView;
+ child.data = data;
+ child.fillColor = bcs.fillColor;
+ yValue = Number(data[bcs.yField]);
child.x = xpos;
- child.width = useWidth;
+ child.width = itemWidth;
child.y = ypos - yValue*scaleFactor;
child.height = yValue*scaleFactor;
ypos = child.y;
+
+ contentView.addElement(child);
}
- xpos += gap + useWidth;
+ xpos += gap + itemWidth;
}
IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarChartSeries.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarChartSeries.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarChartSeries.as
deleted file mode 100644
index 2848d29..0000000
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarChartSeries.as
+++ /dev/null
@@ -1,127 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package org.apache.flex.charts.supportClasses
-{
- import mx.core.IFactory;
-
- import org.apache.flex.charts.core.IChartSeries;
-
- /**
- * The BarChartSeries represents a pair of X and Y values to be drawn
- * within a org.apache.flex.charts.BarChart.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public class BarChartSeries implements IChartSeries
- {
- /**
- * constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function BarChartSeries()
- {
- }
-
- private var _xField:String = "x";
-
- /**
- * The name of the field corresponding to the X or horizontal value
- * for an item in the chart.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get xField():String
- {
- return _xField;
- }
- public function set xField(value:String):void
- {
- _xField = value;
- }
-
- private var _yField:String;
-
- /**
- * The name of the field that provides the Y or vertical value for an
- * item in the chart.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get yField():String
- {
- return _yField;
- }
- public function set yField(value:String):void
- {
- _yField = value;
- }
-
- private var _fillColor:uint;
-
- /**
- * The color to use for all bars in the series.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get fillColor():uint
- {
- return _fillColor;
- }
- public function set fillColor(value:uint):void
- {
- _fillColor = value;
- }
-
- private var _itemRenderer:IFactory;
-
- /**
- * The class or class factory to use as the itemRenderer for each X/Y pair. The
- * itemRenderer class must implement the IChartItemRenderer interface.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get itemRenderer():IFactory
- {
- return _itemRenderer;
- }
- public function set itemRenderer(value:IFactory):void
- {
- _itemRenderer = value;
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarSeries.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarSeries.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarSeries.as
new file mode 100644
index 0000000..0c8a0b8
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BarSeries.as
@@ -0,0 +1,122 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.supportClasses
+{
+ import mx.core.IFactory;
+
+ import org.apache.flex.charts.core.IChartSeries;
+
+ /**
+ * The BarSeries defines what field is being plotted from
+ * the chart's dataProvider. For BarChartSeries, only the xField
+ * is used.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class BarSeries implements IChartSeries
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function BarSeries()
+ {
+ }
+
+ private var _xField:String = "x";
+
+ /**
+ * The name of the field corresponding to the X or horizontal value
+ * for an item in the chart.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get xField():String
+ {
+ return _xField;
+ }
+ public function set xField(value:String):void
+ {
+ _xField = value;
+ }
+
+ private var _yField:String;
+
+ /**
+ * @private
+ */
+ public function get yField():String
+ {
+ return null;
+ }
+ public function set yField(value:String):void
+ {
+ // not used
+ }
+
+ private var _fillColor:uint;
+
+ /**
+ * The color to use for all bars in the series.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get fillColor():uint
+ {
+ return _fillColor;
+ }
+ public function set fillColor(value:uint):void
+ {
+ _fillColor = value;
+ }
+
+ private var _itemRenderer:IFactory;
+
+ /**
+ * The class or class factory to use as the itemRenderer for each X/Y pair. The
+ * itemRenderer class must implement the IChartItemRenderer interface.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get itemRenderer():IFactory
+ {
+ return _itemRenderer;
+ }
+ public function set itemRenderer(value:IFactory):void
+ {
+ _itemRenderer = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/ColumnSeries.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/ColumnSeries.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/ColumnSeries.as
new file mode 100644
index 0000000..72d8d77
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/ColumnSeries.as
@@ -0,0 +1,112 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.supportClasses
+{
+ import mx.core.IFactory;
+
+ import org.apache.flex.charts.core.IChartSeries;
+
+ /**
+ * The ColumnSeries defines what field is being plotted from
+ * the chart's dataProvider. For ColumnSeries, only the yField
+ * is used.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ColumnSeries implements IChartSeries
+ {
+ public function ColumnSeries()
+ {
+ }
+
+ /**
+ * @private
+ */
+ public function get xField():String
+ {
+ return null;
+ }
+ public function set xField(value:String):void
+ {
+ // not used
+ }
+
+ private var _yField:String;
+
+ /**
+ * The name of the field that provides the Y or vertical value for an
+ * item in the chart.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get yField():String
+ {
+ return _yField;
+ }
+ public function set yField(value:String):void
+ {
+ _yField = value;
+ }
+
+ private var _fillColor:uint;
+
+ /**
+ * The color to use for all bars in the series.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get fillColor():uint
+ {
+ return _fillColor;
+ }
+ public function set fillColor(value:uint):void
+ {
+ _fillColor = value;
+ }
+
+ private var _itemRenderer:IFactory;
+
+ /**
+ * The class or class factory to use as the itemRenderer for each X/Y pair. The
+ * itemRenderer class must implement the IChartItemRenderer interface.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get itemRenderer():IFactory
+ {
+ return _itemRenderer;
+ }
+ public function set itemRenderer(value:IFactory):void
+ {
+ _itemRenderer = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSeries.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSeries.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSeries.as
new file mode 100644
index 0000000..765ee9b
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSeries.as
@@ -0,0 +1,147 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.supportClasses
+{
+ import mx.core.IFactory;
+
+ import org.apache.flex.charts.core.IChartSeries;
+
+ /**
+ * The LineChartSeries represents a pair of X and Y values to be drawn
+ * within a org.apache.flex.charts.LineChart.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class LineSeries implements IChartSeries
+ {
+ public function LineSeries()
+ {
+ }
+
+ private var _xField:String;
+
+ /**
+ * The name of the field corresponding to the X or horizontal value
+ * for an item in the chart.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get xField():String
+ {
+ return _xField;
+ }
+ public function set xField(value:String):void
+ {
+ _xField = value;
+ }
+
+ private var _yField:String;
+
+ /**
+ * The name of the field that provides the Y or vertical value for an
+ * item in the chart.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get yField():String
+ {
+ return _yField;
+ }
+ public function set yField(value:String):void
+ {
+ _yField = value;
+ }
+
+ private var _fillColor:uint = 0xFF0000;
+
+ public function get fillColor():uint
+ {
+ return _fillColor;
+ }
+ public function set fillColor(value:uint):void
+ {
+ _fillColor = value;
+ }
+
+ private var _lineColor:uint = 0xFF0000;
+
+ public function get lineColor():uint
+ {
+ return _lineColor;
+ }
+ public function set lineColor(value:uint):void
+ {
+ _lineColor = value;
+ }
+
+ private var _lineThickness:uint;
+
+ public function get lineThickness():uint
+ {
+ return _lineThickness;
+ }
+ public function set lineThickness(value:uint):void
+ {
+ _lineThickness = value;
+ }
+
+ private var _itemRenderer:IFactory;
+
+ /**
+ * The class or class factory to use as the itemRenderer for each X/Y pair. The
+ * itemRenderer class must implement the IChartItemRenderer interface.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get itemRenderer():IFactory
+ {
+ return _itemRenderer;
+ }
+ public function set itemRenderer(value:IFactory):void
+ {
+ _itemRenderer = value;
+ }
+
+ private var _lineSegmentRenderer:IFactory;
+
+ /**
+ * The class or class factory to use to render each segment of the series.
+ */
+ public function get lineSegmentRenderer():IFactory
+ {
+ return _lineSegmentRenderer;
+ }
+ public function set lineSegmentRenderer(value:IFactory):void
+ {
+ _lineSegmentRenderer = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieChartSeries.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieChartSeries.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieChartSeries.as
deleted file mode 100644
index ce8e36b..0000000
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieChartSeries.as
+++ /dev/null
@@ -1,94 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package org.apache.flex.charts.supportClasses
-{
- import mx.core.IFactory;
-
- import org.apache.flex.charts.core.IChartSeries;
-
- public class PieChartSeries implements IChartSeries
- {
- public function PieChartSeries()
- {
- }
-
- private var _dataField:String;
- public function get dataField():String
- {
- return _dataField;
- }
- public function set dataField(value:String):void
- {
- _dataField = value;
- }
-
- private var _itemRenderer:IFactory;
-
- /**
- * The class or class factory to use as the itemRenderer for each X/Y pair. The
- * itemRenderer class must implement the IChartItemRenderer interface.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get itemRenderer():IFactory
- {
- return _itemRenderer;
- }
- public function set itemRenderer(value:IFactory):void
- {
- _itemRenderer = value;
- }
-
- // todo: fillColors - one color for each wedge which will be repeated if necessary
-
- /*
- * Properties ignored for PieChartSeries
- */
-
- public function get xField():String
- {
- return null;
- }
-
- public function set xField(value:String):void
- {
- }
-
- public function get yField():String
- {
- return null;
- }
-
- public function set yField(value:String):void
- {
- }
-
- public function get fillColor():uint
- {
- return 0;
- }
-
- public function set fillColor(value:uint):void
- {
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieSeries.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieSeries.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieSeries.as
new file mode 100644
index 0000000..0a482b5
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/PieSeries.as
@@ -0,0 +1,94 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.charts.supportClasses
+{
+ import mx.core.IFactory;
+
+ import org.apache.flex.charts.core.IChartSeries;
+
+ public class PieSeries implements IChartSeries
+ {
+ public function PieSeries()
+ {
+ }
+
+ private var _dataField:String;
+ public function get dataField():String
+ {
+ return _dataField;
+ }
+ public function set dataField(value:String):void
+ {
+ _dataField = value;
+ }
+
+ private var _itemRenderer:IFactory;
+
+ /**
+ * The class or class factory to use as the itemRenderer for each X/Y pair. The
+ * itemRenderer class must implement the IChartItemRenderer interface.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get itemRenderer():IFactory
+ {
+ return _itemRenderer;
+ }
+ public function set itemRenderer(value:IFactory):void
+ {
+ _itemRenderer = value;
+ }
+
+ // todo: fillColors - one color for each wedge which will be repeated if necessary
+
+ /*
+ * Properties ignored for PieChartSeries
+ */
+
+ public function get xField():String
+ {
+ return null;
+ }
+
+ public function set xField(value:String):void
+ {
+ }
+
+ public function get yField():String
+ {
+ return null;
+ }
+
+ public function set yField(value:String):void
+ {
+ }
+
+ public function get fillColor():uint
+ {
+ return 0;
+ }
+
+ public function set fillColor(value:uint):void
+ {
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/basic-manifest.xml b/frameworks/as/projects/FlexJSUI/basic-manifest.xml
index 24091c4..ed5c573 100644
--- a/frameworks/as/projects/FlexJSUI/basic-manifest.xml
+++ b/frameworks/as/projects/FlexJSUI/basic-manifest.xml
@@ -74,6 +74,7 @@
<component id="BoxItemRenderer" class="org.apache.flex.charts.supportClasses.BoxItemRenderer" />
<component id="WedgeItemRenderer" class="org.apache.flex.charts.supportClasses.WedgeItemRenderer" />
+ <component id="LineSegmentItemRenderer" class="org.apache.flex.charts.supportClasses.LineSegmentItemRenderer" />
<component id="Map" class="org.apache.flex.maps.google.Map" />
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37cca4d5/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as b/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
index e6c8c62..efab103 100644
--- a/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
+++ b/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
@@ -39,9 +39,11 @@ internal class FlexJSUIClasses
import org.apache.flex.charts.core.IHorizontalAxisBead; IHorizontalAxisBead;
import org.apache.flex.charts.core.IVerticalAxisBead; IVerticalAxisBead;
import org.apache.flex.charts.core.IChartItemRenderer; IChartItemRenderer;
+ import org.apache.flex.charts.core.IConnectedItemRenderer; IConnectedItemRenderer;
import org.apache.flex.charts.core.PolarChart; PolarChart;
import org.apache.flex.charts.ChartDataGroup; ChartDataGroup;
import org.apache.flex.charts.supportClasses.BoxItemRenderer; BoxItemRenderer;
+ import org.apache.flex.charts.supportClasses.LineSegmentItemRenderer; LineSegmentItemRenderer;
import org.apache.flex.charts.supportClasses.WedgeItemRenderer; WedgeItemRenderer;
import org.apache.flex.maps.google.Map; Map;