[flexcoders] Re: Data Grid Issue

2009-01-19 Thread Dharmendra Chauhan

Hi Sanjay,
  Thanks lot for you reply. Please share that piece of code where in 
you are storing the index of selected row at the respective index of 
array.
How did you u get the row which need to be selected, are you also 
calling a method on mouseOver function.
I desperately need this functionality in my project. Please share 
your sample app if possible or have a look in my code below, please 
point me to the location where I need to focus.
 
 
Regards,
Dharmendra
 
?xml version=1.0 encoding=utf-8?

 

mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; 
layout=absolute creationComplete=init()

  backgroundColor=#b3b4ae 

 

  mx:Script 

![CDATA[

  import mx.charts.HitData;

  import 
mx.controls.dataGridClasses.DataGridItemRenderer;

  import mx.events.ListEvent;

  import flash.utils.describeType;

  import flash.utils.getDefinitionByName;

  import mx.controls.Alert;

  import mx.formatters.DateFormatter;

  import mx.collections.ArrayCollection;

  // include MatsFormatter.as

 var selectedArr:Array = new Array();

   var arrCol:ArrayCollection ;   

function init():void{





 arrCol = new ArrayCollection([{name:'AA', age:25}, 
{name:'BB', age:15}, 

   {name:'CC', age:23},
{name:'DD', age:25}, {name:'EE', age:15}, 

   {name:'FF', age:23},
{name:'GG', age:25}, {name:'HH', age:15}, 

   {name:'II', age:23}]);



dg.dataProvider = arrCol;

}

  

var isMouseDown:Boolean = false;

  

public function mouseDownFunc
(mDn:flash.events.MouseEvent  ):void{

//Alert.show(mouseDownFunc);

isMouseDown = true;

}

 

public function mouseUpFunc
(mUp:flash.events.MouseEvent  ):void{

 // Alert.show(mouseUpFunc);

   isMouseDown = false;

   // Work Around to select iterleaved unselected row 

 /*   var selectedArr2:Array = new Array();

   var firstRowIndex :int = dg.selectedIndices[0]

   var lastRowIndex :int = dg.selectedIndices
[dg.selectedIndices.length -1 ]

   if(firstRowIndex  lastRowIndex){

  for(var i:int = firstRowIndex; firstRowIndex= 
lastRowIndex;firstRowIndex++)

   selectedArr2.push(firstRowIndex);

   }else{

  for(var j:int = lastRowIndex; lastRowIndex= 
firstRowIndex;lastRowIndex++)

  selectedArr2.push(lastRowIndex);

}

   dg.selectedIndices = selectedArr2; */

}

 

public function mouseOverFunc
(mOver:MouseEvent,dgCol:ListEvent = null ):void{

  var  rend:Object;

  if(isMouseDown){

   try{

   selectedArr = dg.selectedIndices;

   selectedArr.push(mOver.target.listData.rowIndex); 

   dg.selectedIndices = selectedArr;

 

   

  }catch(e:Error){

  //  rend = mOver.relatedObject ; 

   

   }

  }

   }

   //   Deprecated 

/*   public function itemRollOverFunc(itmRollOver:ListEvent):void
{

  if(isMouseDown){

 try{

 selectedArr = dg.selectedIndices;

 selectedArr.push(itmRollOver.rowIndex); 

 dg.selectedIndices = selectedArr;

}catch(e:Error){

 trace(e.getStackTrace());

}

   }

  }  */

 

]]



  /mx:Script 

  

mx:Style

  DataGrid {

   backgroundColor:#b3b4ae; 

   borderColor:#66696B;

   verticalGridLineColor :#808080;

   horizontalGridLineColor :#808080;

   themeColor:#0A246A;

   borderStyle:solid;

   fontSize: 8;

   headerStyleName: dgHeaderStyles;

  }

.dgHeaderStyles {

fontSize: 10;

textAlign: left;

backgroundColor: #d4d0c8;

fontFamily :san Sarif;



  }

 

 

 /mx:Style

   !--mouseDown=mouseDownFunc(event)  mouseUp=mouseUpFunc
(event) mouseOver=mouseOverFunc(event)--

mx:Panel layout=absolute title=MATS Trade Management Console 
id=gridPanel left=5 right=5 top=5 bottom=5 
themeColor=#B3B4AE

  mx:DataGrid width=50% height=50% 
headerColors=[#d4d0c8,#d4d0c8] horizontalScrollPolicy=auto 
allowMultipleSelection=true id=dg

   horizontalGridLines=truerowHeight=30

 

[flexcoders] Re: Data Grid Issue

2009-01-13 Thread Dharmendra Chauhan
Here is complete code:-

?xml version=1.0 encoding=utf-8? 


mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; 
layout=absolute creationComplete=init() 


  backgroundColor=#b3b4ae  


  mx:Script  


![CDATA[ 


  import mx.charts.HitData; 


  import 
mx.controls.dataGridClasses.DataGridItemRenderer; 


  import mx.events.ListEvent; 


  import flash.utils.describeType; 


  import flash.utils.getDefinitionByName; 


  import mx.controls.Alert; 


  import mx.formatters.DateFormatter; 


  import mx.collections.ArrayCollection; 


  // include MatsFormatter.as 


 var selectedArr:Array = new Array(); 


   var arrCol:ArrayCollection ; 


function init():void{ 


 arrCol = new ArrayCollection([{name:'AA', age:25}, 
{name:'BB', age:15}, 


   {name:'CC', age:23},
{name:'DD', 
age:25}, {name:'EE', age:15}, 


   {name:'FF', age:23},
{name:'GG', 
age:25}, {name:'HH', age:15}, 


   {name:'II', age:23}]); 


dg.dataProvider = arrCol; 


} 


var isMouseDown:Boolean = false; 


public function mouseDownFunc 
(mDn:flash.events.MouseEvent  ):void{ 


//Alert.show(mouseDownFunc); 


isMouseDown = true; 


} 


public function mouseUpFunc 
(mUp:flash.events.MouseEvent  ):void{ 


 // Alert.show(mouseUpFunc); 


   isMouseDown = false; 


   // Work Around to select iterleaved unselected row 


 /*   var selectedArr2:Array = new Array(); 


   var firstRowIndex :int = dg.selectedIndices[0] 


   var lastRowIndex :int = dg.selectedIndices 
[dg.selectedIndices.length -1 ] 


   if(firstRowIndex  lastRowIndex){ 


  for(var i:int = firstRowIndex; firstRowIndex= 
lastRowIndex;firstRowIndex++) 


   selectedArr2.push(firstRowIndex); 


   }else{ 


  for(var j:int = lastRowIndex; lastRowIndex= 
firstRowIndex;lastRowIndex++) 


  selectedArr2.push(lastRowIndex); 


} 


   dg.selectedIndices = selectedArr2; */ 


} 


public function mouseOverFunc 
(mOver:MouseEvent,dgCol:ListEvent = null ):void{ 


  var  rend:Object; 


  if(isMouseDown){ 


   try{ 


   selectedArr = dg.selectedIndices; 


   selectedArr.push(mOver.target.listData.rowIndex); 


   dg.selectedIndices = selectedArr; 


  }catch(e:Error){ 


  //  rend = mOver.relatedObject ; 


   } 


  } 


   } 


  /* public function itemRollOverFunc 
(itmRollOver:ListEvent):void{ 


  if(isMouseDown){ 


 try{ 


 selectedArr = dg.selectedIndices; 


 selectedArr.push(itmRollOver.rowIndex); 


 dg.selectedIndices = selectedArr; 


}catch(e:Error){ 


 trace(e.getStackTrace()); 


} 


   } 


 } */ 


]] 


  /mx:Script 


mx:Style 


 DataGrid { 


   backgroundColor:#b3b4ae; 


   borderColor:#66696B; 


   verticalGridLineColor :#808080; 


   horizontalGridLineColor :#808080; 


   themeColor:#0A246A; 


   borderStyle:solid; 


   fontSize: 8; 


   headerStyleName: dgHeaderStyles; 


  } 


.dgHeaderStyles { 


fontSize: 10; 


textAlign: left; 


backgroundColor: #d4d0c8; 


fontFamily :san Sarif; 


  } 


 /mx:Style 


mx:Panel layout=absolute title=MATS Trade Management Console 
id=gridPanel left=5 right=5 top=5 bottom=5 
themeColor=#B3B4AE 


  mx:DataGrid  width=50% height=50% 
headerColors=[#d4d0c8,#d4d0c8] horizontalScrollPolicy=auto 
allowMultipleSelection=true id=dg 


   horizontalGridLines=truerowHeight=30 


  selectionColor=#FF  top=0 
bottom=0 


   mouseDown=mouseDownFunc(event) 
mouseUp=mouseUpFunc(event) mouseOver=mouseOverFunc(event) 





mx:columns 


  mx:DataGridColumn   id=status 
wordWrap=false  headerText=Name  dataField=name/ 


  mx:DataGridColumnid=age 
dataField=age  headerText=Age/ 


/mx:columns 


  /mx:DataGrid 


/mx:Panel 


/mx:Application 


Regards,
Dharmendra




--- In flexcoders@yahoogroups.com, Dharmendra Chauhan 
chauhan_i...@... wrote:

 

RE: [flexcoders] Re: Data Grid Issue

2009-01-13 Thread Alex Harui
The renderers don't fully cover the DG so parts of the underlying and parenting 
ListBaseContentHolder show through so the target won't always be an 
IListItemRenderer.  mouseEventToItemRenderer will probably help you resolve the 
mouse to a target renderer

From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On Behalf 
Of Dharmendra Chauhan
Sent: Tuesday, January 13, 2009 10:31 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Data Grid Issue


Here is complete code:-

?xml version=1.0 encoding=utf-8?

mx:Application xmlns:mx=http://www.adobe.com/2006/mxml;
layout=absolute creationComplete=init()

backgroundColor=#b3b4ae 

mx:Script 

![CDATA[

import mx.charts.HitData;

import
mx.controls.dataGridClasses.DataGridItemRenderer;

import mx.events.ListEvent;

import flash.utils.describeType;

import flash.utils.getDefinitionByName;

import mx.controls.Alert;

import mx.formatters.DateFormatter;

import mx.collections.ArrayCollection;

// include MatsFormatter.as

var selectedArr:Array = new Array();

var arrCol:ArrayCollection ;

function init():void{

arrCol = new ArrayCollection([{name:'AA', age:25},
{name:'BB', age:15},

{name:'CC', age:23},
{name:'DD',
age:25}, {name:'EE', age:15},

{name:'FF', age:23},
{name:'GG',
age:25}, {name:'HH', age:15},

{name:'II', age:23}]);

dg.dataProvider = arrCol;

}

var isMouseDown:Boolean = false;

public function mouseDownFunc
(mDn:flash.events.MouseEvent ):void{

//Alert.show(mouseDownFunc);

isMouseDown = true;

}

public function mouseUpFunc
(mUp:flash.events.MouseEvent ):void{

// Alert.show(mouseUpFunc);

isMouseDown = false;

// Work Around to select iterleaved unselected row

/* var selectedArr2:Array = new Array();

var firstRowIndex :int = dg.selectedIndices[0]

var lastRowIndex :int = dg.selectedIndices
[dg.selectedIndices.length -1 ]

if(firstRowIndex  lastRowIndex){

for(var i:int = firstRowIndex; firstRowIndex=
lastRowIndex;firstRowIndex++)

selectedArr2.push(firstRowIndex);

}else{

for(var j:int = lastRowIndex; lastRowIndex=
firstRowIndex;lastRowIndex++)

selectedArr2.push(lastRowIndex);

}

dg.selectedIndices = selectedArr2; */

}

public function mouseOverFunc
(mOver:MouseEvent,dgCol:ListEvent = null ):void{

var rend:Object;

if(isMouseDown){

try{

selectedArr = dg.selectedIndices;

selectedArr.push(mOver.target.listData.rowIndex);

dg.selectedIndices = selectedArr;

}catch(e:Error){

// rend = mOver.relatedObject ;

}

}

}

/* public function itemRollOverFunc
(itmRollOver:ListEvent):void{

if(isMouseDown){

try{

selectedArr = dg.selectedIndices;

selectedArr.push(itmRollOver.rowIndex);

dg.selectedIndices = selectedArr;

}catch(e:Error){

trace(e.getStackTrace());

}

}

} */

]]

/mx:Script

mx:Style

DataGrid {

backgroundColor:#b3b4ae;

borderColor:#66696B;

verticalGridLineColor :#808080;

horizontalGridLineColor :#808080;

themeColor:#0A246A;

borderStyle:solid;

fontSize: 8;

headerStyleName: dgHeaderStyles;

}

.dgHeaderStyles {

fontSize: 10;

textAlign: left;

backgroundColor: #d4d0c8;

fontFamily :san Sarif;

}

/mx:Style

mx:Panel layout=absolute title=MATS Trade Management Console
id=gridPanel left=5 right=5 top=5 bottom=5
themeColor=#B3B4AE

mx:DataGrid width=50% height=50%
headerColors=[#d4d0c8,#d4d0c8] horizontalScrollPolicy=auto
allowMultipleSelection=true id=dg

horizontalGridLines=true rowHeight=30

selectionColor=#FF top=0
bottom=0

mouseDown=mouseDownFunc(event)
mouseUp=mouseUpFunc(event) mouseOver=mouseOverFunc(event)



mx:columns

mx:DataGridColumn id=status
wordWrap=false headerText=Name  dataField=name/

mx:DataGridColumn id=age
dataField=age headerText=Age/

/mx:columns

/mx:DataGrid

/mx:Panel

/mx:Application

Regards,
Dharmendra

--- In flexcoders@yahoogroups.commailto:flexcoders%40yahoogroups.com, 
Dharmendra Chauhan
chauhan_i...@... wrote:

 Hello,
 I have designed a custom dataGird which allows user to select
 multiple row without shift key. that meas user just need to right
 click the mouse and drag it over the grid. For this I have
 override mouseOverHandler Function in my dataGrid.

 override protected function mouseOverHandler
(event:MouseEvent):void
 {
 var selectedArr:Array = new Array();
 if(isMouseDown){

 try{

 selectedArr = dg.selectedIndices;


 selectedArr.push(mOver.target.listData.rowIndex);


 dg.selectedIndices = selectedArr;


 }catch(e:Error){
 }
 }
 }

 Issue wich I have been facing
is 'mOver.target.listData.rowIndex'
 does not consistently return rowIndex ,whenever I move mouse
with
 fast pace
 1 ) it throws an error  Property listData not found on
 mx.controls.listClasses.ListBaseContentHolder
 and there is no default value .
 2) Some dataGrid does not dispatch mouseOver as a result
 mouseUpHandler does get called.
 I hope you are convinced with observation.Please let me know you
 have any workAound for the above issue.

 Regards,
 Dharmendra




[flexcoders] Re: Data Grid Issue

2009-01-13 Thread sanjaypmg
Hello Dharmendra,

I have done this type of functionality in Flex 2. That functionality
was like :: User can select multiple rows on a single click without
pressing SHIFT key  and when user again click on the selected row it
gets deselected. for that functionality I have not override any
method. I have just created a method  Array as you have done and
stored the index of selected row at the respective index of array.
thereafter asigned that array to DG's selectedIndices.


Cheers
Sanjay Sharma

--- In flexcoders@yahoogroups.com, Dharmendra Chauhan
chauhan_i...@... wrote:

 Hello,
  I have designed a custom dataGird which allows user to select 
 multiple row without shift key. that meas user just need to right 
 click the mouse and drag it over the grid.  For this I have 
 override  mouseOverHandler Function in my dataGrid.
 
   override protected function mouseOverHandler(event:MouseEvent):void
 {
  var selectedArr:Array = new Array();
  if(isMouseDown){ 
 
try{ 
 
selectedArr = dg.selectedIndices; 
 
 
selectedArr.push(mOver.target.listData.rowIndex); 
 
 
dg.selectedIndices = selectedArr; 
 
 
   }catch(e:Error){ 
} 
   }
}
 
 Issue wich I have been facing is  'mOver.target.listData.rowIndex'  
 does not  consistently  return rowIndex ,whenever I move mouse with 
 fast pace   
 1 ) it throws an error   Property listData not found on 
 mx.controls.listClasses.ListBaseContentHolder 
 and there is no default value .
 2) Some dataGrid does not dispatch mouseOver as a result 
 mouseUpHandler does get called.
 I hope you are convinced with observation.Please let me know you 
 have any workAound for the above issue. 
 
 Regards,
 Dharmendra