No, there is no explicit documentation of this issue.
________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of florian.salihovic Sent: Tuesday, August 19, 2008 10:33 PM To: [email protected] Subject: [flexcoders] Re: ItemRenderer returns empty Object instead of encapsuled data - update One last question: is there some part in the documentation i missed? It would be nice to know if there are soe article about this topic is floating arround. Best regards and thanx again for the tiem and effort here of the adobe team - u do a great job! --- In [email protected] <mailto:flexcoders%40yahoogroups.com> , "florian.salihovic" <[EMAIL PROTECTED]> wrote: > > Thanx Alex, this helps me a lot! > > Best regards! > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> , "Alex Harui" <aharui@> wrote: > > > > To copy yourself would look something like this > > > > > > > > myDragDropHandler(event:DragEvent):void > > > > { > > > > If (event.action == DragManager.COPY) > > > > { > > > > event.preventDefault(); > > > > var index:int = calculateDropIndex(event); > > > > var items:Array = > > event.dragSource.dataForFormat("items"); > > > > var n:int = items.length; > > > > for (var i:int = 0; I < n; i++) > > > > { > > > > var newVO:VO = new VO(); > > > > var oldVO:VO = items[i] as VO; > > > > newVo.prop1 = oldVO.prop1; > > > > newVo.prop2 = oldVO.prop2; > > > > dataProvider.addItemAt(newVO, > > index); > > > > > > > > } > > > > } > > > > } > > > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> ] On > > Behalf Of florian.salihovic > > Sent: Tuesday, August 19, 2008 4:37 PM > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Re: ItemRenderer returns empty Object instead of > > encapsuled data - update > > > > > > > > Thanx for the info. This is really helpful to know. > > > > Is there perhaps a short example to start with? > > > > Best regards and thanx for the help! > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > > , "Alex Harui" <aharui@> wrote: > > > > > > Ah, ok. The default copy mechanism won't work on typed objects unless > > > they are [RemoteClass] or use registerClassAlias. You can always > > > override the dragDrop handle and do your own intelligent copy. > > > > > > > > > > > > ________________________________ > > > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > > ] On > > > Behalf Of florian.salihovic > > > Sent: Tuesday, August 19, 2008 3:18 PM > > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > > > Subject: [flexcoders] Re: ItemRenderer returns empty Object instead of > > > encapsuled data - update > > > > > > > > > > > > Hello Alex, > > > > > > dragMoveEnabled is making the difference. When i don't use any > > > ItemRenderer the called i > > > get [object PlayListItem] and the collections i wrapped in typed > > > methods. > > > > > > It seems like the DataGridDragProxy works not right, when > > > dragMoveEnabled is set to > > > false. Actually it does in my case as far as i can say. > > > > > > Best regards. > > > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > , "Alex Harui" <aharui@> wrote: > > > > > > > > Are you using modules or sub-applications? Where does the data come > > > > from? It seems like it isn't being converted correctly. Have you > > > > proven that each collection contains the correct object and not > > > Objects? > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > ] On > > > > Behalf Of florian.salihovic > > > > Sent: Tuesday, August 19, 2008 2:05 PM > > > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > > Subject: [flexcoders] Re: ItemRenderer returns empty Object instead > > of > > > > encapsuled data - update > > > > > > > > > > > > > > > > Update: > > > > > > > > Using a for each loop shows me even the right value, but it's type > > is > > > > lost. > > > > override public function set data(value:Object):void { > > > > trace(describeType(value)); > > > > for each(var a:* in value) { > > > > trace(a) > > > > } > > > > if (this._item == value) { > > > > return; > > > > } > > > > super.data = value; > > > > if (value is IPlayListItem) { > > > > this._item = IPlayListItem(value); > > > > } > > > > this.dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); > > > > } > > > > > > > > -> the condition value is IPLayListItem is actually never true. > > > > > > > > Best regards > > > > > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > , "florian.salihovic" <florian.salihovic@> wrote: > > > > > > > > > > Something i forgot to add: > > > > > in the Debugger the passed Object, which is said to be not > > > convertable > > > > in the desired > > > > > type, shows the right properties. > > > > > > > > > > Pretty strange to me. > > > > > > > > > > > > > > > > > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > <mailto:flexcoders%40yahoogroups.com> , "florian.salihovic" > > > > <florian.salihovic@> wrote: > > > > > > > > > > > > Here is the stacktrace: > > > > > > TypeError: Error #1034: Typumwandlung fehlgeschlagen: > > > > [EMAIL PROTECTED] kann > > > > nicht > > > > > in > > > > > > de.blitzeinschlag.playlisteditor.model.playlists.IPlayListItem > > > > umgewandelt werden. > > > > > > at > > > > > > > > > de.blitzeinschlag.playlisteditor.view.playlists.listClasses::ListItemRen > > > > derer/set > > > > > > > > > > > > > > > > > > > > data()[/Users/florian/Workspaces/blitzeinschlag/PlayListEditor/src/de/bl > > > > itzeinschlag/playl > > > > > isteditor/view/playlists/listClasses/ListItemRenderer.mx > > > > > > ml:99] > > > > > > at > > > > > > > > > > > > > > mx.controls::List/makeRowsAndColumns()[E:\dev\3.1.0\frameworks\projects\ > > > > framework\ > > > > > src\mx\controls\List.as:1286] > > > > > > at > > > > > > > > > > > > > > > > > > > > mx.controls.listClasses::ListBase/makeRowsAndColumnsWithExtraRows()[E:\d > > > > ev\3.1.0\fra > > > > > meworks\projects\framework\src\mx\controls\listClasses > > > > > > \ListBase.as:1359] > > > > > > at > > > > > > > > > > > > > > > > > > > > mx.controls.listClasses::ListBase/updateDisplayList()[E:\dev\3.1.0\frame > > > > works\projects\fr > > > > > amework\src\mx\controls\listClasses\ListBase.as:3657] > > > > > > at > > > > > > > > > > > > > > mx.controls::List/updateDisplayList()[E:\dev\3.1.0\frameworks\projects\f > > > > ramework\src\m > > > > > x\controls\List.as:1003] > > > > > > at > > > > > > > > > > > > > > > > > > > > mx.controls.listClasses::ListBase/validateDisplayList()[E:\dev\3.1.0\fra > > > > meworks\projects\f > > > > > ramework\src\mx\controls\listClasses\ListBase.as:3279] > > > > > > at > > > > > > > > > > > > > > mx.managers::LayoutManager/validateDisplayList()[E:\dev\3.1.0\frameworks > > > > \projects\fra > > > > > mework\src\mx\managers\LayoutManager.as:605] > > > > > > at > > > > > > > > > > > > > > > > > > > > mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.1.0\framewor > > > > ks\projects\ > > > > > framework\src\mx\managers\LayoutManager.as:678] > > > > > > at Function/http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > <http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > > > <http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > <http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > > > > > <http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > <http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > > > <http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > <http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply> > > > () > > > > > > at > > > > > > > > > > > > > > mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.1.0\frameworks\proj > > > > ects\framewo > > > > > rk\src\mx\core\UIComponent.as:8565] > > > > > > at > > > > > > > > > > > > > > mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.1.0\frameworks\proje > > > > cts\framewor > > > > > k\src\mx\core\UIComponent.as:8508] > > > > > > > > > > > > And this is the argument which is passed to the "set data"-field > > > > implementation: > > > > > > <type name="Object" isDynamic="true" isFinal="false" > > > > isStatic="false"> > > > > > > <method name="hasOwnProperty" declaredBy="Object" > > > > returnType="Boolean" > > > > > uri="http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > > > > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > > > "> > > > > > > <parameter index="1" type="*" optional="true"/> > > > > > > </method> > > > > > > <method name="isPrototypeOf" declaredBy="Object" > > > > returnType="Boolean" > > > > > uri="http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > > > > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > > > "> > > > > > > <parameter index="1" type="*" optional="true"/> > > > > > > </method> > > > > > > <method name="propertyIsEnumerable" declaredBy="Object" > > > > returnType="Boolean" > > > > > uri="http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > > > > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > <http://adobe.com/AS3/2006/builtin <http://adobe.com/AS3/2006/builtin> > > > > > > "> > > > > > > <parameter index="1" type="*" optional="true"/> > > > > > > </method> > > > > > > </type> > > > > > > > > > > > > Any input would be thankfull! > > > > > > > > > > > > Best regards > > > > > > > > > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > <mailto:flexcoders%40yahoogroups.com> , "Alex Harui" <aharui@> > > wrote: > > > > > > > > > > > > > > If you get an runtime exception, always use a debug build and > > > post > > > > the > > > > > > > full stacktrace. > > > > > > > > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > > > > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > <mailto:flexcoders%40yahoogroups.com> > > > > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > ] On > > > > > > > Behalf Of florian.salihovic > > > > > > > Sent: Monday, August 18, 2008 9:30 AM > > > > > > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > <mailto:flexcoders%40yahoogroups.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! > > > > > > > > > > > > > > > > > > > > > > > > > > > >

