пятница, 29 февраля 2008 г.

DataGrid cellRenerer для столбца

Поместить в первый кадр (На сцену перетащить компонет DataGrid обозвать dg, в либу поместить Button)
var sampleItem1:Object = { Name:"John Alpha",     Number:"555-123-0101", Email:"jalpha@fictitious.com" };
var sampleItem2:Object = { Name:"Mary Bravo", Number:"555-372-3322", Email:"mbravo@fictitious.com" };
var sampleItem3:Object = { Name:"Trevor Gamma", Number:"555-485-1212", Email:"tgamma@fictitious.com" };
var sampleItem4:Object = { Name:"Susan Delta", Number:"555-987-3434", Email:"sdelta@fictitious.com" };

//dg.setStyle('cellRenderer', MyRenderer);

dg.columns = ["Name", "Number", "Email"];

dg.addItem(sampleItem1);
dg.addItem(sampleItem2);
dg.addItem(sampleItem3);
dg.addItem(sampleItem4);
dg.addColumn("NewCol");
dg.getColumnAt(0).cellRenderer=MyRenderer;
dg.getColumnAt(1).cellRenderer=MyRenderer2;

MyRenderer.as:
package
{
import fl.controls.LabelButton;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import fl.containers.BaseScrollPane;

public class MyRenderer extends LabelButton implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;

public function MyRenderer() {
}

public function set listData(newListData:ListData):void {
_listData = newListData;
label = "Random: " + _listData.label;
drawRandomColor();
}

private function drawRandomColor():void {
graphics.beginFill(Math.random()*0xFFFFFF);
graphics.drawRect(0,0,20,20);
graphics.endFill();
}

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

public function set data(newData:Object):void {
_data = newData;
}

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

MyRenderer2.as:
package
{
import fl.controls.LabelButton;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import fl.containers.BaseScrollPane;
import flash.display.Sprite;
import flash.events.MouseEvent;

public class MyRenderer2 extends Sprite implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;

public function MyRenderer2() {
this.graphics.lineStyle(1);
this.graphics.drawCircle(10, 10, 10);

this.addEventListener(MouseEvent.CLICK, mouseClickHandler);
}

private function mouseClickHandler(e:MouseEvent):void {
trace("cell clicked");
}

public function set listData(newListData:ListData):void {
_listData = newListData;
//label = "Random: " + _listData.label;
//drawRandomColor();
}

private function drawRandomColor():void {
graphics.beginFill(Math.random()*0xFFFFFF);
graphics.drawRect(0,0,20,20);
graphics.endFill();
}

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

public function set data(newData:Object):void {
_data = newData;
}

public function get data():Object {
return _data;
}
public function get selected():Boolean {
return true;
}
public function set selected(value:Boolean):void {

}
public function setMouseState(state:String):void {
if (state == "over") { trace ("mouse Over") } ;
}
public function setSize(width:Number, height:Number):void {
this.width = width;
this.height = height;
}

public function setStyle(style:String, value:Object):void {

}

}
}

3 комментария:

Анонимный комментирует...

Кажется, тот матерь ял которого не хватает в документации, буду тестировать, спасибо

Анонимный комментирует...

It was very interesting for me to read the article. Thanks for it. I like such themes and anything that is connected to them. I would like to read more on that blog soon.
Alex
GPS jammer

hosting.web.hosti комментирует...

облачный хостинг http://hosting.miheeff.ru хостинг облачный хостинг