TKN Mobile Studio for TotalCross

www.tekann.com.br
Hoje é Qui Set 09, 2010 6:04 pm

Todos os Horários estão como UTC - 3 horas




Criar novo tópico Responder Tópico  [ 9 Mensagens ] 
Autor Mensagem
 Assunto do Tópico: Componentes personalizados - Beans
MensagemEnviado: Qui Jul 22, 2010 12:14 pm 
Offline

Data de registro: Qui Jul 22, 2010 11:58 am
Mensagens: 7
Localização: Campinas
Boa tarde.

Estou criando um componente personalizado (bean) com a idéia de utilizá-lo como se fosse um Panel, que possui dentro de si um único Label.

O problema é que quando utilizo meu bean dentro de um Container, não consigo acessar as propriedades do Label, como setar seu texto, por exemplo.

Verifiquei que durante o OnInit do meu container, ao ser instanciado meu bean, o mesmo continua nulo. E depois não é mais exibido na aplicação.

Mas em modo design o componente aparece normalmente.

Aguardo resposta

Grato.

_________________
Júnior Formagio

Analista Desenvolvedor .Net
Sedna Desenvolvimento de Sistemas
Tel:19.3236.6656


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Qui Jul 22, 2010 1:24 pm 
Offline

Data de registro: Ter Abr 28, 2009 1:08 pm
Mensagens: 27
Boa tarde!

Pode me mandar seu projeto ou um exemplo com o problema.

Não entendi exatamente, pois você disse que depois de instanciar seu bean ele continua nulo, isso?
Pois se você o instanciou ele não deveria estar nulo!

Quanto as propriedades de seu bean, você pode setar pelo método setProperty(String propertyName, Object property),
onde você deve implementar o que deseja fazer em usa classe beanCustom. Por exemplo:

No seu container você pode fazer:

Código:
public void initUI(){
super.initUI();
meuBean.setProperty("label_text", "Texto do label");
}


E na sua classe custom do bean:

Código:
public void setProperty(String propertyName, Object property){
if (propertyName != null && propertyName.equals("label_text")){
meuLabel.setText(property.toString());
}
}


Basicamente é isso!
Qualquer dúvida é só postar.

_________________
--
Guilherme João Frantz
Tekann Mobile Solutions
http://www.tekann.com.br


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Qui Jul 22, 2010 2:44 pm 
Offline

Data de registro: Qui Jul 22, 2010 11:58 am
Mensagens: 7
Localização: Campinas
Boa tarde.

Obrigado por responder tão prontamente.
Já havia tentado essa solução dada por você, e mesmo assim não tive sucesso.
Inseri meu Bean no Container, sem problemas pelo modo de Design. Ao compilar meu projeto pelo TKN, ele exibe o seguinte problema:

java.lang.InstantiationException
at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.tekann.ui.FormFactory.newForm(FormFactory.java:120)
at user.ui.Campos.initUI(Campos.java:209)
at totalcross.ui.Control.setRect(Control.java:505)
at totalcross.ui.Control.setRect(Control.java:317)
at totalcross.ui.Window.swap(Window.java:1275)
at user.ui.Principal.swap(Principal.java:206)
at user.ui.Principal.initUI(Principal.java:122)
at totalcross.ui.MainWindow._onTimerTick(MainWindow.java:350)
at totalcross.Launcher$WinTimer$1.run(Launcher.java:301)
at totalcross.Launcher$TCEventThread.handleOneEvent(Launcher.java:1040)
at totalcross.Launcher$TCEventThread.run(Launcher.java:1015)
at java.lang.Thread.run(Thread.java:619)
java.lang.NullPointerException
at totalcross.ui.Container.add(Container.java:186)
at user.ui.Campos.initUI(Campos.java:211)
at totalcross.ui.Control.setRect(Control.java:505)
at totalcross.ui.Control.setRect(Control.java:317)
at totalcross.ui.Window.swap(Window.java:1275)
at user.ui.Principal.swap(Principal.java:206)
at user.ui.Principal.initUI(Principal.java:122)
at totalcross.ui.MainWindow._onTimerTick(MainWindow.java:350)
at totalcross.Launcher$WinTimer$1.run(Launcher.java:301)
at totalcross.Launcher$TCEventThread.handleOneEvent(Launcher.java:1040)
at totalcross.Launcher$TCEventThread.run(Launcher.java:1015)
at java.lang.Thread.run(Thread.java:619)


Após a compilação minha tela aparece sem meu bean.
Se executo a aplicação pelo Eclipse, ele não acusa este erro mas o bean também não aparece.
Aguardo resposta.

Grato.

_________________
Júnior Formagio

Analista Desenvolvedor .Net
Sedna Desenvolvimento de Sistemas
Tel:19.3236.6656


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Qui Jul 22, 2010 2:57 pm 
Offline

Data de registro: Ter Abr 28, 2009 1:08 pm
Mensagens: 27
Opa!

Veja se na classe onde o FormFactory.newForm está tentando iniciar possui um construtor default, sem parâmetros.
Acredito ser esse o problema.

at com.tekann.ui.FormFactory.newForm(FormFactory.java:120)
at user.ui.Campos.initUI(Campos.java:209)

_________________
--
Guilherme João Frantz
Tekann Mobile Solutions
http://www.tekann.com.br


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Qui Jul 22, 2010 3:50 pm 
Offline

Data de registro: Qui Jul 22, 2010 11:58 am
Mensagens: 7
Localização: Campinas
Guilherme,

Isso não resolveu meu problema.
Ele ocorre no seguinte trecho de código:

Código:
bean1 = (user.ui.PanelLabel) com.tekann.ui.FormFactory.getInstance().newForm(user.ui.PanelLabel.class.getName());
      
add(bean1); // nesse momento meu bean esta nulo


Dentro da classe de meu container : "user.ui.Campos.java"

Pelo que sei, o código dessas classe eu não posso editar, correto?
Se eu edito pelo Eclipse o TKN o gera novamente.

Mais alguma idéia?

Grato.

_________________
Júnior Formagio

Analista Desenvolvedor .Net
Sedna Desenvolvimento de Sistemas
Tel:19.3236.6656


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Qui Jul 22, 2010 4:11 pm 
Offline

Data de registro: Ter Abr 28, 2009 1:08 pm
Mensagens: 27
Correto!

Ok, mais um detalhe, olhe se sua classe custom do PanelLabel possui algum outro construtor feito por você.
Se tiver, você deve colocar o default também, o sem parâmetros.

Seria bom você postar todo seu código, assim posso analisar melhor!

Att,

_________________
--
Guilherme João Frantz
Tekann Mobile Solutions
http://www.tekann.com.br


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Qui Jul 22, 2010 4:39 pm 
Offline

Data de registro: Qui Jul 22, 2010 11:58 am
Mensagens: 7
Localização: Campinas
Guilherme,

Exclui o bean, e o recriei. Coloquei os construtores conforme tua orientação.
Ao recompilar o erro mudou.
Segue:

java.lang.RuntimeException: You can't use FILL with BEFORE, CENTER or RIGHT for control totalcross.ui.Label@181afa3
at totalcross.ui.Control.setRect(Control.java:474)
at totalcross.ui.Control.setRect(Control.java:317)
at user.ui.PanelLabel.initUI(PanelLabel.java:93)
at totalcross.ui.Control.setRect(Control.java:505)
at totalcross.ui.Control.setRect(Control.java:328)
at user.ui.Campos.initUI(Campos.java:213)
at totalcross.ui.Control.setRect(Control.java:505)
at totalcross.ui.Control.setRect(Control.java:317)
at totalcross.ui.Window.swap(Window.java:1275)
at user.ui.Principal.swap(Principal.java:206)
at user.ui.Principal.initUI(Principal.java:122)
at totalcross.ui.MainWindow._onTimerTick(MainWindow.java:350)
at totalcross.Launcher$WinTimer$1.run(Launcher.java:301)
at totalcross.Launcher$TCEventThread.handleOneEvent(Launcher.java:1040)
at totalcross.Launcher$TCEventThread.run(Launcher.java:1015)
at java.lang.Thread.run(Thread.java:619)


Mais uma vez agradeço pela ajuda.

Grato.

Obs: não estou conseguindo anexar meu projeto nesta mensagem, existe um email para que eu possa enviá-lo?

_________________
Júnior Formagio

Analista Desenvolvedor .Net
Sedna Desenvolvimento de Sistemas
Tel:19.3236.6656


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Sex Jul 23, 2010 9:17 am 
Offline

Data de registro: Ter Abr 28, 2009 1:08 pm
Mensagens: 27
Bom dia!

Lhe enviei uma mensagem privada com meu e-mail.
Se ainda estiver com o problema me mande seu projeto.

Abraços

_________________
--
Guilherme João Frantz
Tekann Mobile Solutions
http://www.tekann.com.br


Voltar ao topo
 Perfil  
 
 Assunto do Tópico: Re: Componentes personalizados - Beans
MensagemEnviado: Seg Jul 26, 2010 10:11 am 
Offline

Data de registro: Qui Jul 22, 2010 11:58 am
Mensagens: 7
Localização: Campinas
Bom dia Guilherme!

Muito obrigado pela resolução.
Funcionou ok!

[]´s

_________________
Júnior Formagio

Analista Desenvolvedor .Net
Sedna Desenvolvimento de Sistemas
Tel:19.3236.6656


Voltar ao topo
 Perfil  
 
Mostrar mensagens anteriores:  Organizar por  
Criar novo tópico Responder Tópico  [ 9 Mensagens ] 

Todos os Horários estão como UTC - 3 horas


Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
Ir para:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por brasil