[flexcoders] Itemrenderer images are not displayed correctly when clicked

2010-07-02 Thread Rajan
Hi

I am using itemrenderer to display images. The images are displayed correctly 
according to the logic but when i click on the images the images are changed. I 
do not know what is causing the images to be change. Sometimes it even changes 
the image for row which is not clicked.

Any pointers why it is being changed.


Below is the code snippet from the itemrenderer.

[Bindable]
private var assets:AssetsImporter = AssetsImporter.getInstance(); 

override public function set data(value:Object):void
{
super.data=value;

var validationStatus:int=(value as 
PricingDataVO).getStatus();
if (validationStatus == 
ValidationConstants.NOT_VALIDATED)
{
purplePushPin.visible=true;
redPushPin.visible=false;
greenPushPin.visible=false;
orangePushPin.visible=false;
}
else if (validationStatus == 
ValidationConstants.ERROR)
{
purplePushPin.visible=false;
redPushPin.visible=true;
greenPushPin.visible=false;
orangePushPin.visible=false;
}
else if (validationStatus == 
ValidationConstants.SUCCESSULLY_VALID)
{
purplePushPin.visible=false;
redPushPin.visible=false;
greenPushPin.visible=true;
orangePushPin.visible=false;
}
else if (validationStatus == 
ValidationConstants.WARNING)
{
purplePushPin.visible=false;
redPushPin.visible=false;
greenPushPin.visible=false;
orangePushPin.visible=true;
}
else
{
purplePushPin.visible=false;
redPushPin.visible=false;
greenPushPin.visible=false;
orangePushPin.visible=false;
}
}


private function onImageClick(event:Event):void
{
var selectedRowEvent:SelectedRowEvent = new 
SelectedRowEvent(statusServicePlan, true);
var pricingDataVO:PricingDataVO = data as 
PricingDataVO;
selectedRowEvent.id = pricingDataVO.id;
selectedRowEvent.seqId = pricingDataVO.seqId;
selectedRowEvent.source = pricingDataVO.source;
selectedRowEvent.origSeqId = 
pricingDataVO.origSeqId;
selectedRowEvent.data = data;
dispatchEvent(selectedRowEvent);
}

images are declared in the below way.

mx:Image source={assets.greenPushPin}
  x=5 click=onImageClick(event)
  id=greenPushPin
  toolTip=Validated Successfully
  width=20
  buttonMode=true
  visible=false
  height=20/

mx:Image source={assets.purplePushPin}
  x=5 click=onImageClick(event)
  id=purplePushPin
  toolTip=Not Validated
  width=20
  buttonMode=true
  visible=false
  height=20/


Thanks
ilikeflex



Re: [flexcoders] Itemrenderer images are not displayed correctly when clicked

2010-07-02 Thread Felix Westphal

 Hi,
I would try to explicitly set the source of the images in the set data 
function.

For me that often helps when I run into strange itemrenderer behaviour.


Am 02.07.2010 17:43, schrieb Rajan:


Hi

I am using itemrenderer to display images. The images are displayed 
correctly according to the logic but when i click on the images the 
images are changed. I do not know what is causing the images to be 
change. Sometimes it even changes the image for row which is not clicked.


Any pointers why it is being changed.

Below is the code snippet from the itemrenderer.

[Bindable]
private var assets:AssetsImporter = AssetsImporter.getInstance();

override public function set data(value:Object):void
{
super.data=value;

var validationStatus:int=(value as PricingDataVO).getStatus();
if (validationStatus == ValidationConstants.NOT_VALIDATED)
{
purplePushPin.visible=true;
redPushPin.visible=false;
greenPushPin.visible=false;
orangePushPin.visible=false;
}
else if (validationStatus == ValidationConstants.ERROR)
{
purplePushPin.visible=false;
redPushPin.visible=true;
greenPushPin.visible=false;
orangePushPin.visible=false;
}
else if (validationStatus == ValidationConstants.SUCCESSULLY_VALID)
{
purplePushPin.visible=false;
redPushPin.visible=false;
greenPushPin.visible=true;
orangePushPin.visible=false;
}
else if (validationStatus == ValidationConstants.WARNING)
{
purplePushPin.visible=false;
redPushPin.visible=false;
greenPushPin.visible=false;
orangePushPin.visible=true;
}
else
{
purplePushPin.visible=false;
redPushPin.visible=false;
greenPushPin.visible=false;
orangePushPin.visible=false;
}
}

private function onImageClick(event:Event):void
{
var selectedRowEvent:SelectedRowEvent = new 
SelectedRowEvent(statusServicePlan, true);

var pricingDataVO:PricingDataVO = data as PricingDataVO;
selectedRowEvent.id = pricingDataVO.id;
selectedRowEvent.seqId = pricingDataVO.seqId;
selectedRowEvent.source = pricingDataVO.source;
selectedRowEvent.origSeqId = pricingDataVO.origSeqId;
selectedRowEvent.data = data;
dispatchEvent(selectedRowEvent);
}

images are declared in the below way.

mx:Image source={assets.greenPushPin}
x=5 click=onImageClick(event)
id=greenPushPin
toolTip=Validated Successfully
width=20
buttonMode=true
visible=false
height=20/

mx:Image source={assets.purplePushPin}
x=5 click=onImageClick(event)
id=purplePushPin
toolTip=Not Validated
width=20
buttonMode=true
visible=false
height=20/

Thanks
ilikeflex