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/3e3560b89b686ced
> /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
-~----------~----~----~----~------~----~------~--~---