Shape instance in DataGrid

I am attempting to put an instance of Shape into cells of a DataGrid, but it appears the following error:

TypeError: Error #2007: El valor del parámetro child debe ser distinto de null.
	at flash.display::DisplayObjectContainer/addChild()
	at fl.controls::DataGrid/drawList()
	at fl.controls::DataGrid/draw()
	at fl.core::UIComponent/callLaterDispatcher()

I have a DataGrid in the library and this code in the first frame:

import fl.data.DataProvider;
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;

// provider
var dp:DataProvider = new DataProvider();
dp.addItem({name: "Red", color: 0xFF0000});
dp.addItem({name: "Blue", color: 0x0080FF});

// grid
var dg:DataGrid = new DataGrid();
dg.setSize(200, 100);
dg.dataProvider = dp;

// columns
var cols:Array = [];

var name_col:DataGridColumn = new DataGridColumn('name');
cols.push(name_col);

var color_col:DataGridColumn = new DataGridColumn('color');
color_col.cellRenderer = ColorCellRenderer;
cols.push(color_col);

dg.columns = cols;

// display
addChild(dg);

This is the cell renderer:

package
{
	import flash.display.Shape;
	import fl.controls.listClasses.ICellRenderer;
	import fl.controls.listClasses.ListData;

	public class ColorCellRenderer extends Shape implements ICellRenderer {
		private var _listData:ListData;
		private var _data:Object;
		private var _selected:Boolean;

		public function ColorCellRenderer() {
		}

		public function set listData(newListData:ListData):void {
			_listData = newListData;
		}

		public function get listData():ListData {
			return _listData;
		}

		public function set data(newData:Object):void {
			_data = newData;
			graphics.beginFill(newData.color);
			graphics.drawRect(0, 0, 20, 20);
			graphics.endFill();
		}

		public function get data():Object {
			return _data;
		}

		public function get selected():Boolean {
			return _selected;
		}

		public function set selected(value:Boolean):void {
			_selected = value;
		}

		public function setSize(width:Number,height:Number):void {
		}

		public function setMouseState(state:String):void {
		}
	}
}

What can I do? What’s wrong?