//**************************************************************************** //Copyright (C) 2003 Macromedia, Inc. All Rights Reserved. //The following is Sample Code and is subject to all restrictions on //such code as contained in the End User License Agreement accompanying //this product. //**************************************************************************** import mx.core.UIComponent; import mx.controls.Button; class ButtonCellRenderer extends UIComponent { var check : MovieClip; var listOwner : MovieClip; // the reference we receive to the list var getCellIndex : Function; // the function we receive from the list var getDataLabel : Function; // the function we receive from the list function ButtonCellRenderer() { } function createChildren(Void) : Void { check = createObject("Button", "check", 1, {styleName:this, owner:this, label: "", icon: "trashClip"}); check.addEventListener("click", this); size(); } // note that setSize is implemented by UIComponent and calls size(), after setting // __width and __height function size(Void) : Void { check.setSize(40, __height); check._x = (__width-40)/2; check._y = (__height - 16)/2; } function setValue(str:String, item:Object, sel:Boolean) : Void { //trace("setValue > str: " + str + ", item: " + item + ", sel: " + sel); check._visible = (item!=undefined); //check.selected = item[getDataLabel()]; var idx:Number = getCellIndex().itemIndex; //trace("\tidx:\t" + idx); var labelStr:String = getDataLabel(); //trace("\tlabelStr:\t" + labelStr); check.selected = listOwner._parent.cdsData.items[idx][labelStr]; } function getPreferredHeight(Void) : Number { return 16; } function getPreferredWidth(Void) : Number { return 20; } function click(oEvent:Object) { //trace("listOwner: " + listOwner); var itemIdx:Number = getCellIndex().itemIndex; //trace("\titemIdx:\t" + itemIdx); var labelStr:String = getDataLabel(); //trace("\tlabelStr:\t" + labelStr); //trace("\tcheck.selected: " + check.selected); //listOwner.dataProvider.editField(itemIdx, labelStr, check.selected); //trace("\tcdsData:\t" + listOwner._parent.cdsData); //istOwner._parent.cdsData.items[itemIdx][labelStr] = check.selected; //trace("\tdp[" + itemIdx + "]:\t" + listOwner.dataProvider[ listOwner._parent.cdsData.removeItemAt(itemIdx); //trace("\tset?\t" + listOwner._parent.cdsData.items[itemIdx][labelStr]); } }