Frustrante... também não resultou!
Desespero... :)
Valeu a ajuda!
[]'s
João Saleiro
Beck Novaes wrote:
> Olá João,
>
> Você já tentou fazer no CabecalhoGenerico o seguinte:
>
> <mx:Label
> text="{ CabecalhoDeNoticiaVO(data).titulo }"
> fontFamily="Arial"
> fontSize="10"
> color="0xf2890c"
> fontWeight="bold"
> />
>
> []'s
> Beck Novaes
>
>
> On 4 fev, 16:35, João Saleiro <[EMAIL PROTECTED]> wrote:
>
>> Obrigado pela sua disponibilidade Henrique!
>>
>> Ok, esta é a coisa estranha... Está como bindable...
>> Não estou mesmo a encontrar a solução...
>>
>> O código do meu VO:
>>
>> package pt.webfuel.onfashion.vo
>> {
>> import com.adobe.cairngorm.vo.IValueObject;
>>
>> [Bindable]
>> [RemoteClass(alias="pt.webfuel.onfashion.vo.CabecalhoDeNoticiaVO")]
>> public class CabecalhoDeNoticiaVO implements IValueObject {
>>
>> public var id:Number;
>> public var data_insercao:Date;
>> public var titulo:String;
>> public var resumo:String;
>> public var foto_destaque:RecursoMultimediaVO;
>>
>> }
>> }
>>
>> ===========================================
>>
>> Dentro do Command:
>>
>> public function result (event: Object) : void
>> {
>> var result:Object=event.result;
>>
>> var model:GlobalModelLocator=GlobalModelLocator.getInstance();
>>
>> var lista: ArrayCollection=new ArrayCollection(result as Array);
>> var
>> listaDeCabecalhosDeNoticiasEmDestaque:ICollectionView=ICollectionView(lista);
>> model.listaDeCabecalhosDeNoticiasEmDestaque=
>> listaDeCabecalhosDeNoticiasEmDestaque;
>>
>> }
>>
>> ===========================================
>>
>> O modelLocator tem Bindable ao nível da classe:
>>
>> [Bindable]
>> public class GlobalModelLocator implements ModelLocator
>>
>> e o possui a seguinte varíavel pública:
>>
>> public var listaDeCabecalhosDeDicasEmDestaque: ICollectionView;
>>
>> ===========================================
>> O código que cria o componente que lista as notícias:
>>
>> <pods:NoticiasEmDestaque
>> id="noticiasEmDestaque"
>> width="369"
>> height="294"
>> x="199"
>> y="{modeloEmDestaque.y}"
>> listaDeNoticias="{model.listaDeCabecalhosDeNoticiasEmDestaque}"
>> />
>>
>> ===========================================
>> O componente que lista as notícias possui:
>>
>> [Bindable]
>> public var listaDeNoticias:ICollectionView;
>>
>> e
>>
>> <mx:TileList
>> x="14"
>> y="59"
>> width="320"
>> height="190"
>> dataProvider="{ listaDeNoticias }"
>> itemRenderer="pt.webfuel.onfashion.view.ui.CabecalhoGenerico"
>> columnWidth="290"
>> rowHeight="78"
>> backgroundColor="0xFF0000"
>> backgroundAlpha="0"
>> borderStyle="none"
>> rollOverColor="0xf5ebdf"
>> selectionColor="0xf5ebdf"
>> />
>>
>> ===========================================
>> E para terminar, o CabecalhoGenerico tem o seguinte código:
>> <mx:Canvas
>> xmlns:mx="http://www.adobe.com/2006/mxml"
>> width="100%"
>> height="100%"
>> verticalScrollPolicy="off"
>> horizontalScrollPolicy="off"
>> >
>> <mx:Label
>> text="{ data.titulo }"
>> fontFamily="Arial"
>> fontSize="10"
>> color="0xf2890c"
>> fontWeight="bold"
>> />
>> </mx:Canvas>
>>
>> []'s
>>
>> João Saleiro
>>
>> Henrique wrote:
>>
>>
>>> Ok João... finalmente consegui replicar o seu erro.
>>>
>>> Verifique que sua Classe (NoticiaVO) esteja declarada como Bindable.
>>> Se vc fizer isso, o erro não ira mais ocorrer.
>>>
>>> []s,
>>>
>>> Henrique
>>>
>>> ------------------------------------------------------------------------
>>>
>>> *From:* [email protected] [mailto:[EMAIL PROTECTED] *On
>>> Behalf Of *João Saleiro
>>> *Sent:* domingo, 4 de fevereiro de 2007 17:45
>>> *To:* [email protected]
>>> *Subject:* [flexdev] Re: warning: unable to bind to property 'titulo'
>>> on class 'Object' (class is not an IEventDispatcher)
>>>
>>> Yeap, 2.01.
>>> O erro só me aparece quando corro em modo de debug. Vou tentar
>>> corrigir esta noite, se não conseguir faço uma descrição bem mais
>>> exaustiva :)
>>> Obrigado na mesma pela tentativa! :D
>>>
>>> João Saleiro
>>>
>>> Henrique wrote:
>>>
>>> João,
>>>
>>> Tentei replicar o seu erro mais não consegui, de toda forma vc pode sim dar
>>> um cast na variável data, que no caso representa um item da sua coleção.
>>>
>>> []s,
>>>
>>> Henrique
>>>
>>> Ps. Vc esta usando a versão 2.01?
>>>
>>> -----Original Message-----
>>> From: [email protected] <mailto:[email protected]>
>>> [mailto:[EMAIL PROTECTED] On Behalf
>>> Of João Saleiro
>>> Sent: domingo, 4 de fevereiro de 2007 14:00
>>> To: [email protected] <mailto:[email protected]>
>>> Subject: [flexdev] Re: warning: unable to bind to property 'titulo' on class
>>> 'Object' (class is not an IEventDispatcher)
>>>
>>> Desculpe, esqueci de complementar com:
>>>
>>> [Bindable]
>>> public var listaDeNoticias:ICollectionView;
>>>
>>> no componente onde uso o TileList (o ListagemDeNoticias).
>>>
>>> Em resumo:
>>>
>>> 1- a listaDeNoticias é um ICollectionView gerado a partir de um
>>> ArrayCollection de instâncias de VO's (NoticiaVO);
>>> 2- a listaDeNoticias "está" no componente que vai fazer a listagem
>>> (ListagemDeNoticias)
>>> 3- esse componente possui um Tilelist cujo DataProvider é a listaDeNoticias
>>> 4- esse TileList utiliza o componente Noticia com itemRenderer
>>> 5- o componente Noticia possui uma label com text={data.titulo}
>>> 6- devido a isto é lançado um erro "warning: unable to bind to property
>>> 'titulo' on class 'Object' (class is not an IEventDispatcher)" em debug
>>> mode, erro esse que nao estou a conseguir solucionar.
>>>
>>> Assim sendo, posso na mesma fazer o cast de data.titulo para o VO
>>> respectivo (NoticiaVO)?
>>>
>>> João Saleiro
>>>
>>> Henrique wrote:
>>>
>>>> Ola João,
>>>>
>>>> Não sei se entendi bem mais creio que se, no caso da propriedade
>>>> /listaDeNoticias/ , que provavelmente é um ArrayCollection, conter uma
>>>> coleção de uma classe especifica (ClasseEspecifica) ao invés de uma
>>>> coleção de objects, com a classe declarada como Bindable, e vc fizer
>>>> um cast de data - ClasseEspecifica(data). titulo, o erro deve parar de
>>>> ocorrer.
>>>>
>>>> Veja o post do Beck Novaes -
>>>>
>>> http://groups.google.com/group/flexdev/browse_thread/thread/3e3560b89...
>>> /c9a93a7425ad80dc#c9a93a7425ad80dc
>>>
>>>> []s
>>>>
>>>> Henrique Marino
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> *From:* [email protected] <mailto:[email protected]>
>>>> [mailto:[EMAIL PROTECTED] *On
>>>> Behalf Of *João Saleiro
>>>> *Sent:* domingo, 4 de fevereiro de 2007 12:38
>>>> *To:* [email protected] <mailto:[email protected]>
>>>> *Subject:* [flexdev] warning: unable to bind to property 'titulo' on
>>>> class 'Object' (class is not an IEventDispatcher)
>>>>
>>>> Olá,
>>>>
>>>> quando corro o meu programa em debug mode estou a obter o seguinte erro:
>>>>
>>>> warning: unable to bind to property 'titulo' on class 'Object' (class
>>>> is not an IEventDispatcher)
>>>>
>>>> O erro acontece com este componente:
>>>>
>>>> <?xml version="1.0" encoding="utf-8"?>
>>>> <mx:VBox
>>>> xmlns:mx="http://www.adobe.com/2006/mxml" <http://www.adobe.com/2006/mxml>
>>>> <http://www.adobe.com/2006/mxml>
>>>> width="100%"
>>>> height="100%" opaqueBackground="false">
>>>> <mx:Label
>>>> text="{ data.titulo }"
>>>> height="20" />
>>>>
>>>> <mx:Label
>>>> text="safdfadsfad}"
>>>> height="20"
>>>> />
>>>> </mx:VBox>
>>>>
>>>> Que é usado como itemRenderer de um TileList neste trecho de código:
>>>>
>>>> <mx:TileList
>>>> x="17"
>>>> y="62"
>>>> width="310"
>>>> height="150"
>>>> dataProvider="{ listaDeNoticias }"
>>>> itemRenderer="pt.webfuel.onfashion.view.ui.Cabecalho"
>>>> columnWidth="290"
>>>> rowHeight="75"
>>>> backgroundColor="0xFF0000"
>>>> backgroundAlpha="0"
>>>> borderStyle="none"
>>>> />
>>>>
>>>> Presumo que neste caso, os dados ("data") quanto são entregues ao
>>>> componente acima (ui.Cabecalho), possuem o tipo * . Como fico com
>>>> "strict typing" no Cabecalho para a variável data? Simplesmente
>>>> declaro uma variavel pública chamada "data" com o tipo certo no
>>>> componente?
>>>> E isso terá alguma relação com o erro descrito? (warning: unable to
>>>> bind to property 'titulo' on class 'Object' (class is not an
>>>> IEventDispatcher)) Como resolvo este erro?
>>>>
>>>> Obrigado,
>>>>
>>>> João Saleiro
>>>>
>
>
> >
>
>
>
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---