[flexcoders] ItemRenderer returns empty Object instead of encapsuled data.

2008-08-18 Thread florian.salihovic
I have two instances of mx:controls::List. Both use the same ItemRenderer. A 
TypeError 
occours, when i drop one item from one List into the other List. Instead of the 
encapsuled 
type (an instance of an interface, typed to the interface) just an empty 
Ombject instance is 
returned.

I implement mx.core.IDataRenderer, 
mx.controls.listClasses.IDropInListItemRenderer and 
mx.controls.listClasses.IListItemRenderer in my component. Here is the code for 
the 
overwritten data and listData Propertys:

private var _item:IPlayListItem;
private var _listData:BaseListData;

[Bindable(dataChange)]
override public function get data():Object {
return this._item;
}

[Bindable(dataChange)]
public function get listData():BaseListData {
return this._listData
}

override public function set data(value:Object):void {
trace(ListItemRenderer.data: +value);
super.data = value;
if (!value) {
return;
}
if (this._item == value) {
return;
}
if (value is IPlayListItem) {
super.data = IPlayListItem(value);
this._item = IPlayListItem(value);
}
this.dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));

}

public function set listData(value:BaseListData):void {
if (this._listData == value) {
return;
}
this._listData = value;
this.dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
}

What am i missing?

Best regards!



RE: [flexcoders] ItemRenderer returns empty Object instead of encapsuled data.

2008-08-18 Thread Alex Harui
If you get an runtime exception, always use a debug build and post the
full stacktrace.

 



From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of florian.salihovic
Sent: Monday, August 18, 2008 9:30 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] ItemRenderer returns empty Object instead of
encapsuled data.

 

I have two instances of mx:controls::List. Both use the same
ItemRenderer. A TypeError 
occours, when i drop one item from one List into the other List. Instead
of the encapsuled 
type (an instance of an interface, typed to the interface) just an empty
Ombject instance is 
returned.

I implement mx.core.IDataRenderer,
mx.controls.listClasses.IDropInListItemRenderer and 
mx.controls.listClasses.IListItemRenderer in my component. Here is the
code for the 
overwritten data and listData Propertys:

private var _item:IPlayListItem;
private var _listData:BaseListData;

[Bindable(dataChange)]
override public function get data():Object {
return this._item;
}

[Bindable(dataChange)]
public function get listData():BaseListData {
return this._listData
}

override public function set data(value:Object):void {
trace(ListItemRenderer.data: +value);
super.data = value;
if (!value) {
return;
}
if (this._item == value) {
return;
}
if (value is IPlayListItem) {
super.data = IPlayListItem(value);
this._item = IPlayListItem(value);
}
this.dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));

}

public function set listData(value:BaseListData):void {
if (this._listData == value) {
return;
}
this._listData = value;
this.dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
}

What am i missing?

Best regards!