[flexcoders] Re: Checkbox in Datagrid . . . how?

2008-09-12 Thread valdhor
This is a quick and dirty way to do it. If I had more time I would have
decoupled the renderer from the application with a custom event but this
does work...

?xml version=1.0 encoding=utf-8?
mx:Application pageTitle=Testing
xmlns:mx=http://www.adobe.com/2006/mxml;
  width=100% height=100% backgroundSize=100% layout=vertical
horizontalAlign=left
  xmlns:custom=customcomponents.* backgroundColor=#BB
creationComplete=onCreationComplete(event)
 mx:Script
 ![CDATA[
 import mx.collections.ArrayCollection;
 import mx.rpc.events.FaultEvent;
 import mx.rpc.events.ResultEvent;
 import mx.rpc.remoting.RemoteObject;
 import mx.utils.ArrayUtil;
 import mx.events.FlexEvent;
 import mx.controls.Alert;

 [Bindable] private var itemsArrayCollection:ArrayCollection;
 private var myService:RemoteObject;
 private var itemsToDelete:Array = new Array();

 public function onCreationComplete(event:FlexEvent):void
 {
 myService = new RemoteObject(myDestination);
 myService.requestTimeout = 30;
 myService.addEventListener(FaultEvent.FAULT,
faultHandler);

myService.getFormFields.addEventListener(ResultEvent.RESULT,
getItemsResultHandler);

 myService.getFormFields(27);
 }

 private function
getItemsResultHandler(event:ResultEvent):void
 {
 itemsArrayCollection = new
ArrayCollection(ArrayUtil.toArray(event.result));
 itemsDataGrid.rowCount = (event.result as Array).length;
 }

 private function faultHandler(fault:FaultEvent):void
 {
 switch(fault.fault.faultCode.toString())
 {
 case Client.Error.RequestTimeout:
  Alert.show(The server is not responding.
Please check that you are connected and the server is running., Server
Timeout);
break;
 default:
 Alert.show(fault.fault.faultString,
fault.fault.faultCode.toString());
 break;
 }
 }

 public function addItemToDelete(itemToDelete:String):void
 {
 itemsToDelete.push(itemToDelete)
 }

 public function removeItemToDelete(itemToRemove:String):void
 {
 for(var i:int ; i  itemsToDelete.length ; i++)
 {
 if(itemsToDelete[i] == itemToRemove)
 {
 itemsToDelete.splice(i, 1);
 }
 }
 }

 public function showItemsToDelete():void
 {
 var alertText:String = ;
 for(var i:int ; i  itemsToDelete.length ; i++)
 {
 alertText += itemsToDelete[i] + , ;
 }
 Alert.show(alertText);
 }
 ]]
 /mx:Script

 mx:DataGrid dataProvider={itemsArrayCollection}
id=itemsDataGrid
 mx:columns
 mx:DataGridColumn id=fieldNameColumn headerText=Name
dataField=FieldName width=150 sortable=false textAlign=left/
 mx:DataGridColumn id=fieldLabelColumn headerText=Label
dataField=FieldLabel width=350 sortable=false textAlign=left/
 mx:DataGridColumn id=fieldTypeColumn headerText=Type
dataField=FieldType width=80 sortable=false textAlign=left/
 mx:DataGridColumn id=requiredColumn headerText=Required
dataField=Required width=60 sortable=false textAlign=center/
 mx:DataGridColumn id=fieldOrderColumn headerText=Order
dataField=FieldOrder width=50 sortable=false textAlign=center/
 mx:DataGridColumn id=fieldDeleteColumn
headerText=Remove dataField=FieldID width=60 sortable=false
textAlign=center itemRenderer=renderers.RemoveItemCheckBox/
 /mx:columns
 /mx:DataGrid
 mx:Button id=showItems label=Show Items To Delete
click=showItemsToDelete() /
/mx:Application


renderers.RemoveItemCheckBox
?xml version=1.0 encoding=utf-8?
mx:CheckBox xmlns:mx=http://www.adobe.com/2006/mxml;
click=onClick(event)
 mx:Script
 ![CDATA[
 import mx.events.ListEvent;
 import mx.controls.dataGridClasses.DataGridListData;
 import mx.controls.Alert;
 import mx.core.Application;

 private var itemID:String;

 override public function set data(value:Object):void
 {
 super.data = value;
 itemID = value[DataGridListData(listData).dataField];
 }

 private function onClick(event:MouseEvent):void
 {
 if(this.selected)
 {
 Application.application.addItemToDelete(itemID);
 

Re: [flexcoders] Re: Checkbox in Datagrid . . . how?

2008-09-03 Thread bjorn
Yes, then you have to write code to get the data into a dataProvider for the
Tree, for example creating model objects from the xml and adding them to an
ArrayCollection. The checked state can for instance be a boolean inside the
model.

2008/9/2 crumpelfungus [EMAIL PROTECTED]

   Add-on / Clarification: In my version of the datagrid  checkbox
 scenario, I am using an XMLList to get the database data as E4X from an
 HTTPService request.

  




-- 

http://www.juicability.com - flex blog
http://www.nospoiler.com - link to youtube videos without the spoilers