# Combing cellRenderer

**URL:** <https://forum.kirupa.com/t/combing-cellrenderer/299301>\
**Category:** flash\
**Created:** [November 3, 2009, 4:53am UTC](https://forum.kirupa.com/t/combing-cellrenderer/299301 "2009-11-03T04:53:52Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![KWP](https://avatars.discourse-cdn.com/v4/letter/k/8e7dd6/32.png) [@KWP](https://forum.kirupa.com/u/KWP)\
**Post date:** [November 3, 2009, 4:53am UTC](https://forum.kirupa.com/t/combing-cellrenderer/299301/1 "2009-11-03T04:53:52Z")

</div>

I am attempting to combine two AS files that are acting as cellRenderers individually but not simultaneously for cells in a datagrid in a Flash document I have created. The first styles the cells to have alternating row colors and the second allows for non-text content to be rendered.

The issue is whenever I attempt to combine them the document reports errors with “super” and “override” among others.

Any help would be greatly appreciated:

Alternating row colors:

```auto
package {
	import fl.controls.listClasses.CellRenderer;
	import fl.controls.listClasses.ICellRenderer;

	public class AlternatingRowColors extends CellRenderer implements ICellRenderer {

		public function AlternatingRowColors():void {

			super();

		}
		public static function getStyleDefinition():Object {

			return CellRenderer.getStyleDefinition();

		}

		override protected function drawBackground():void {

			if (_listData.index % 2 == 0) {

				setStyle("upSkin",CellRenderer_upSkinGray);

			} else {

				setStyle("upSkin",CellRenderer_upSkinDarkGray);

			}

			drawBackground();
			super.drawBackground();
		}
	}
}

```

Displaying non-text content:

```auto
package {
    import fl.containers.UILoader;
    import fl.controls.listClasses.ICellRenderer;
    import fl.controls.listClasses.ListData;
    import fl.core.InvalidationType;
    import fl.data.DataProvider;
    import flash.events.Event;

    public class LoaderCellRenderer extends UILoader implements ICellRenderer {
        protected var _data:Object;
        protected var _listData:ListData;
        protected var _selected:Boolean;

        public function LoaderCellRenderer():void {
            super();
        }

        public function get data():Object {
            return _data;
        }
        public function set data(value:Object):void {
            _data = value;
            source = value.data;
        }

        public function get listData():ListData {
            return _listData;
        }
        public function set listData(value:ListData):void {
            _listData = value;
            invalidate(InvalidationType.DATA);
            invalidate(InvalidationType.STATE);
        }

        public function get selected():Boolean {
            return _selected;
        }
        public function set selected(value:Boolean):void {
            _selected = value;
            invalidate(InvalidationType.STATE);
        }

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

```

Hybrid that doesn’t work:

```auto
package {
    import fl.containers.UILoader;
    import fl.controls.listClasses.ICellRenderer;
    import fl.controls.listClasses.ListData;
    import fl.core.InvalidationType;
    import fl.data.DataProvider;
    import flash.events.Event;
	
	import fl.controls.listClasses.CellRenderer;

    public class hybrid extends UILoader implements ICellRenderer {
        protected var _data:Object;
        protected var _listData:ListData;
        protected var _selected:Boolean;

        public function LoaderCellRenderer():void {
            super();
        }

        public function get data():Object {
            return _data;
        }
        public function set data(value:Object):void {
            _data = value;
            source = value.data;
        }

        public function get listData():ListData {
            return _listData;
        }
        public function set listData(value:ListData):void {
            _listData = value;
            invalidate(InvalidationType.DATA);
            invalidate(InvalidationType.STATE);
        }

        public function get selected():Boolean {
            return _selected;
        }
        public function set selected(value:Boolean):void {
            _selected = value;
            invalidate(InvalidationType.STATE);
        }

        public function setMouseState(state:String):void {
        }
    
	////////////////
	
		public static function getStyleDefinition():Object {

			return CellRenderer.getStyleDefinition();

		}

		override protected function drawBackground():void {

			if (_listData.index % 2 == 0) {

				setStyle("upSkin",CellRenderer_upSkinGray);

			} else {

				setStyle("upSkin",CellRenderer_upSkinDarkGray);

			}

			drawBackground();
			super.drawBackground();
		}	
	}
}

```
