[Logo] Neo Framework Forum
  [Search] Busca   [Recent Topics] Tópicos Recentes   [Members]  Lista de Usuários   [Groups] De volta para a página principal 
[Register] Registrar / 
[Login] Entrar 
Problema com Select-one-path  XML
Índice dos Fóruns -> Dúvidas
Autor Mensagem
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Eu tenho uma tela jsp com o codigo abaixo

jsp:
Code:
 <c:forEach var="chamadas" items="${home.chamadas}" varStatus="status">
 	   	    	<t:property name="chamadas[${status.index}].tipochamada.idtipochamada" mode="input" type="hidden"/>	  		        
 	   	    	<n:panel ><a style="font-size:9pt;font-weight:bold">${chamadas.tipochamada.tipochamada }:</a></n:panel>
 	   	    	<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.conteudo}">
 					<t:property label="conteudo:" name="chamadas[${status.index}].conteudo" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Conteudo"/>
 				</c:if>	
 				<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.galeria}">
 					<t:property label="galeria:" name="chamadas[${status.index}].galeria" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Galeria"/>
 				</c:if>	
 			</c:forEach> 
 


Antes eu utilizava o select normal e não tinha nenhum problema... Agora eu alterei e coloquei o selectonepath... A parte de selecionar os conteudos e galeria funciona tranquilamente, porém quando eu vou tentar limpar dá um erro de javascript ('chamadas' não está definido).

O que poderia ser isso?

abraços e obrigado pela ajuda.
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

vc está utilizando alguma biblioteca javascript como prototype?
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Não alterei nada relacionado a javascript no projeto...então assumo que devo estar usando a biblioteca padrão do neo.

Fora que nas outras telas que uso o selectonepath funciona normalmente. Acho que o erro é relacionado ao nome do campo esta no formato 'chamadas[i].conteudo'... mas n sei pq;

Eu mandei exibir o codigo fonte, mas n consegui visualizar erro no local...
segue aqui o trecho provavel onde da problema:

Code:
 <input type="hidden" name="chamadas[0].tipochamada.idtipochamada" value="3"  /><span id="chamadas[0].tipochamada.idtipochamada_value"></span>
 				
 				
 			</td>
 <td ><a style="font-size:9pt;font-weight:bold">Blá Blá Blá:</a></td>
 <td  colspan='1'>
 				
 					<!-- Valor selecionado org.neo.exemplo.bean.Conteudo[idconteudo=5] -->
 <input type="text" name="chamadas[0].conteudo_label" onchange="" readonly="true" value="Contaminação Alimentar"  />
 <input type="hidden" name="chamadas[0].conteudo" value="org.neo.exemplo.bean.Conteudo[idconteudo=5,tituloChamada=Contaminação Alimentar]" />
 <button id="chamadas[0].conteudo_btn" name="chamadas[0].conteudo_btn" type="button" onclick="var c = new selecionarCallbackObject(form['chamadas[0].conteudo'], form['chamadas[0].conteudo_label'], 'org.neo.exemplo.bean.Conteudo', form['chamadas[0].conteudo_btn'], form['chamadas[0].conteudo_btnUnselect']); var win = open('/neo/SELECIONARCADASTRAR/modulo/crud/Conteudo','filha77037','width=' + (window.document.body.clientWidth) + ', height=' + (window.document.body.clientHeight) + ', top=50, left=0, resizable, scrollbars'); win.selecionarCallback = c; " style='display:none'>Selecionar</button>
 <button id="chamadas[0].conteudo_btnUnselect" name="chamadas[0].conteudo_btnUnselect" type="button" onclick="chamadas[0].conteudo_label.value = ''; chamadas[0].conteudo.value = '<null>'; document.getElementById('chamadas[0].conteudo_btn').style.display=''; document.getElementById('chamadas[0].conteudo_btnUnselect').style.display='none'" style=''>Limpar</button>
 


valeu pela ajuda.

abraços
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

vou ter que fazer uma aplicacao para verificar isso...

tem como vc mandar o jsp e os beans?

[se eu demorar demais a responder vc me cobra]
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Posso mandar sim...
Só preciso do seu email... basta os .java e jsps neh?
Eu zipo e mando sim.
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

posta aqui no forum mesmo.. é mais fácil..
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

dá pau quando vc tenta setar o conteudo e a galeria? ou em só um caso o problema acontece?
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Vou ver a melhor forma de postar aqui então.
E só dá pau na hora de limpar os campos... tanto de galeria como de conteudo. Setar funciona.
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Vou postar os arquivos que acho necessario para fazer o teste... Caso precise de mais alguma coisa me diga que vou postando.

HomeController
Code:
 package org.neo.exemplo.controller;
 
 import java.util.List;
 
 import org.neo.exemplo.bean.Chamada;
 import org.neo.exemplo.bean.Home;
 import org.neo.exemplo.bean.TipoPublicacao;
 import org.neo.exemplo.service.CanalService;
 import org.neo.exemplo.service.HomeService;
 import org.neo.exemplo.service.SubcanalService;
 import org.springframework.web.servlet.ModelAndView;
 
 import br.com.linkcom.neo.controller.Action;
 import br.com.linkcom.neo.controller.Controller;
 import br.com.linkcom.neo.controller.DefaultAction;
 import br.com.linkcom.neo.controller.MultiActionController;
 import br.com.linkcom.neo.core.web.WebRequestContext;
 
 @Controller(path="/modulo/PublicarHome")
 public class HomeController extends MultiActionController {
 	HomeService service;
 	CanalService canalService;
 	SubcanalService subcanalService;
 			
 	public CanalService getCanalService() {
 		return canalService;
 	}
 	public SubcanalService getSubcanalService() {
 		return subcanalService;
 	}
 	public void setCanalService(CanalService canalService) {
 		this.canalService = canalService;
 	}
 	public void setSubcanalService(SubcanalService subcanalService) {
 		this.subcanalService = subcanalService;
 	}
 	public HomeService getService() {
 		return service;
 	}
 	public void setService(HomeService service) {
 		this.service = service;
 	}
 	
 	@DefaultAction
 	public ModelAndView escolherCanal(WebRequestContext request,Chamada chamada){
 		List<Home> lHomeFormatadas = service.findAllFormatadas();
 		request.setAttribute("lHome", lHomeFormatadas);
 		
 		request.setAttribute("chamada", chamada);
 		
 		return new ModelAndView("homeSelecionar");
 	}
 	
 	@Action("definirPublicacao")
 	public ModelAndView definirConteudo(WebRequestContext request,Chamada chamada){
 		Home home = service.load(chamada.getHome());
 		request.setAttribute("home", home);
 		request.setAttribute("tipoPublicacao",new TipoPublicacao());
 		return new ModelAndView("definirConteudoHome");
 	}
 	
 	@Action("salvar")
 	public ModelAndView salvar(WebRequestContext request,Home home){
 		System.out.print("id="+home.getIdhome());
 		service.saveOrUpdate(home);
 		service.geraXml(home);
 		//request.setAttribute("home", home);
 		return new ModelAndView("sucesso");
 	}
 }
 


homeSelecionar.jsp

Code:
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="t" uri="template"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
 <t:tela titulo="Definir Home">
   		<n:bean name="chamada">
   			<t:propertyConfig mode="input" renderAs="double" showLabel="true" >
   			<n:panelGrid columns="4">
  	 		        <t:property label="home:" name="home" mode="input" labelStyle="font-size:9pt;font-weight:bold" itens="${lHome}"/>	  		        
 					<n:submit action="definirPublicacao" >publicar</n:submit>
  	 		</n:panelGrid>
   		    </t:propertyConfig>
    	    </n:bean>
   </t:tela> 
 


definirConteudoHome ( onde está ocorrendo o erro)

Code:
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="t" uri="template"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
 <t:tela titulo="Definir Home">
 	<n:bean name="home">
 		<t:property name="canal.idcanal" mode="input" type="hidden"/>	  		        
 	    <t:property name="subcanal.idsubcanal" mode="input" type="hidden"/>
 	    <t:property name="idhome" mode="input" type="hidden" />
 	    <t:property name="exibicao" mode="input" type="hidden" />
 	    <t:property name="titulo" mode="input" readonly="readonly" />
  		<n:panelGrid columns="3">
 	   	    <c:forEach var="chamadas" items="${home.chamadas}" varStatus="status">
 	   	    	<t:property name="chamadas[${status.index}].tipochamada.idtipochamada" mode="input" type="hidden"/>	  		        
 	   	    	<n:panel ><a style="font-size:9pt;font-weight:bold">${chamadas.tipochamada.tipochamada }:</a></n:panel>
 	   	    	<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.conteudo}">
 					<t:property label="conteudo:" name="chamadas[${status.index}].conteudo" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Conteudo"/>
 				</c:if>	
 				<c:if test="${chamadas.tipochamada.tipoPublicacao eq tipoPublicacao.galeria}">
 					<t:property label="galeria:" name="chamadas[${status.index}].galeria" mode="input" labelStyle="font-size:9pt;font-weight:bold" selectOnePath="/modulo/crud/Galeria"/>
 				</c:if>	
 			</c:forEach> 
  		</n:panelGrid>
  		<n:panel colspan="2">
 	    	<n:submit action="salvar">salvar</n:submit>
 		</n:panel>
  	</n:bean>
 </t:tela>
 


Conteudo:
Code:
 package org.neo.exemplo.bean;
 
 import java.io.File;
 import java.util.Date;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Transient;
 
 import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
 import br.com.linkcom.neo.validation.annotation.MaxLength;
 import br.com.linkcom.neo.validation.annotation.Required;
 
 @Entity
 @SequenceGenerator(name="conteudo_idconteudo_seq", sequenceName="conteudo_idconteudo_seq")
 public class Conteudo {
 	public static String pathRaiz ="C:\\Desenv\\projetos\\neo\\web\\xml";
 	private static String pastaXml = "conteudo";
 	private Long idconteudo;
 	private String titulo;
 	private String subtitulo;
 	private String texto;
 	private String tituloChamada;
 	private String textoChamada;
 	private Date dataCadastro;
 	private Date dataAlteracao;
 	private Autor autor;
 	private Imagem imagem;
 	private Imagem imagem2;
 	private Imagem imagemChamada;
 	private Canal canal;
 	private Subcanal subcanal;
 	
 	@JoinColumn(name="idimagem_chamada", referencedColumnName="idimagem")
 	@ManyToOne(fetch=FetchType.LAZY)
 	public Imagem getImagemChamada() {
 		return imagemChamada;
 	}
 	
 	@JoinColumn(name="idimagem2", referencedColumnName="idimagem")
 	@ManyToOne(fetch=FetchType.LAZY)
 	public Imagem getImagem2() {
 		return imagem2;
 	}
 	
 	@JoinColumn(name="idcanal")
 	@ManyToOne(fetch=FetchType.LAZY)
 	@Required
 	public Canal getCanal() {
 		return canal;
 	}
 
 	@JoinColumn(name="idsubcanal")
 	@ManyToOne(fetch=FetchType.LAZY)
 	public Subcanal getSubcanal() {
 		return subcanal;
 	}
 	
 	@Required
 	@JoinColumn(name="idautor")
 	@ManyToOne(fetch=FetchType.LAZY)
 	public Autor getAutor() {
 		return autor;
 	}
 	
 	@Column(name="dt_alteracao")
 	public Date getDataAlteracao() {
 		return dataAlteracao;
 	}
 	
 	@Column(name="dt_cadastro")
 	public Date getDataCadastro() {
 		return dataCadastro;
 	}
 	
 	@Id
 	@GeneratedValue(strategy=GenerationType.AUTO, generator="conteudo_idconteudo_seq")
 	public Long getIdconteudo() {
 		return idconteudo;
 	}
 	@JoinColumn(name="idimagem")
 	@ManyToOne(fetch=FetchType.LAZY)
 	public Imagem getImagem() {
 		return imagem;
 	}
 	
 	@MaxLength(50)
 	public String getSubtitulo() {
 		return subtitulo;
 	}
 	
 	@Required
 	public String getTexto() {
 		return texto;
 	}
 	
 	@MaxLength(200)
 	@Required
 	@Column(name="texto_chamada")
 	public String getTextoChamada() {
 		return textoChamada;
 	}
 	
 	@Required
 	@MaxLength(50)
 	public String getTitulo() {
 		return titulo;
 	}
 	
 	@MaxLength(50)
 	@DescriptionProperty
 	@Required
 	@Column(name="titulo_chamada")
 	public String getTituloChamada() {
 		return tituloChamada;
 	}
 	
 	@Transient
 	public String getPathXml(){
 		String path = pathRaiz;
 		if (this != null){
 			path += File.separator + getCanal().getCodigo();
 			if (getSubcanal() != null)
 				path += File.separator + getSubcanal().getCodigo();
 		}
 		path += File.separator + pastaXml;
 		return path;
 	}
 	
 	@Transient
 	public String getNameXml(){
 		return idconteudo + ".xml"; 
 	}
 	
 	@Transient
 	public String getUrlChamada(){
 		String url = "";
 		if (this != null){
 			url += File.separator + getCanal().getCodigo();
 			if (getSubcanal() != null)
 				url += File.separator + getSubcanal().getCodigo();
 		}
 		url +=  File.separator + "conteudo.jsp?xml=" + pastaXml + File.separator + getNameXml();
 		return url;
 	}
 	
 	@Transient
 	public String getUltimoCanal(){
 		if (getSubcanal() != null)
 			return getSubcanal().getSubcanal();
 		else
 			return getCanal().getCanal();
 	}
 	
 	public void setAutor(Autor autor) {
 		this.autor = autor;
 	}
 	public void setDataAlteracao(Date dataAlteracao) {
 		this.dataAlteracao = dataAlteracao;
 	}
 	public void setDataCadastro(Date dataCadastro) {
 		this.dataCadastro = dataCadastro;
 	}
 	public void setIdconteudo(Long idconteudo) {
 		this.idconteudo = idconteudo;
 	}
 	public void setImagem(Imagem imagem) {
 		this.imagem = imagem;
 	}
 	public void setSubtitulo(String subtitulo) {
 		this.subtitulo = subtitulo;
 	}
 	public void setTexto(String texto) {
 		this.texto = texto;
 	}
 	public void setTextoChamada(String textoChamada) {
 		this.textoChamada = textoChamada;
 	}
 	public void setTitulo(String titulo) {
 		this.titulo = titulo;
 	}
 	public void setTituloChamada(String tituloChamada) {
 		this.tituloChamada = tituloChamada;
 	}
 
 	public void setCanal(Canal canal) {
 		this.canal = canal;
 	}
 
 	public void setSubcanal(Subcanal subcanal) {
 		this.subcanal = subcanal;
 	}
 	
 	public void setImagem2(Imagem imagem2) {
 		this.imagem2 = imagem2;
 	}
 	
 	public void setImagemChamada(Imagem imagemChamada) {
 		this.imagemChamada = imagemChamada;
 	}
 
 }
 


Home:
Code:
 package org.neo.exemplo.bean;
 
 import java.io.File;
 import java.util.List;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Transient;
 
 import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
 import br.com.linkcom.neo.validation.annotation.MaxLength;
 import br.com.linkcom.neo.validation.annotation.Required;
 
 @Entity
 @SequenceGenerator(name="home_idhome_seq", sequenceName="home_idhome_seq")
 public class Home {
 	//constantes
 	public static String pathRaiz ="C:\\Desenv\\projetos\\neo\\web\\xml";
 	public static String EXIBICAO_LISTA_DESC = "lista de chamadas";
 	public static String EXIBICAO_LISTA_COD = "l";
 	public static String EXIBICAO_FORMATADA_DESC = "home formatada";
 	public static String EXIBICAO_FORMATADA_COD = "f";
 	
 	//atributos
 	private Long idhome;
 	private Canal canal;
 	private Subcanal subcanal;
 	private Integer numeroChamadas;
 	private List<Chamada> chamadas;
 	private String exibicao;
 	private String titulo;
 	
 	@MaxLength(50)
 	@DescriptionProperty
 	@Required
 	public String getTitulo() {
 		return titulo;
 	}
 	public void setTitulo(String titulo) {
 		this.titulo = titulo;
 	}
 	@OneToMany(mappedBy="home")
 	public List<Chamada> getChamadas() {
 		return chamadas;
 	}
 	@Column(name="numero_chamadas")
 	public Integer getNumeroChamadas() {
 		return numeroChamadas;
 	}
 
 	@JoinColumn(name="idcanal")
 	@ManyToOne(fetch = FetchType.LAZY)
 	public Canal getCanal() {
 		return canal;
 	}
 	
 	@Id
 	@GeneratedValue(strategy = GenerationType.AUTO, generator="home_idhome_seq")
 	public Long getIdhome() {
 		return idhome;
 	}
 	
 	@JoinColumn(name="idsubcanal")
 	@ManyToOne
 	public Subcanal getSubcanal() {
 		return subcanal;
 	}
 	
 	@MaxLength(1)
 	public String getExibicao() {
 		return exibicao;
 	}
 	
 	@Transient
 	public String getPathXml(){
 		String path = pathRaiz;
 		if (this != null){
 			path += File.separator + getCanal().getCodigo();
 			if (getSubcanal() != null)
 				path += File.separator + getSubcanal().getCodigo();
 		}
 		return path;
 	}
 	
 	public void setCanal(Canal canal) {
 		this.canal = canal;
 	}
 	
 	public void setIdhome(Long idhome) {
 		this.idhome = idhome;
 	}
 	public void setSubcanal(Subcanal subcanal) {
 		this.subcanal = subcanal;
 	}
 	public void setChamadas(List<Chamada> chamadas) {
 		this.chamadas = chamadas;
 	}
 	public void setNumeroChamadas(Integer numeroChamadas) {
 		this.numeroChamadas = numeroChamadas;
 	}
 	public void setExibicao(String exibicao) {
 		this.exibicao = exibicao;
 	}
 }
 


Chamada:
Code:
 package org.neo.exemplo.bean;
 
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.SequenceGenerator;
 
 @Entity
 @SequenceGenerator(name="chamada_idchamada_seq", sequenceName="chamada_idchamada_seq")
 public class Chamada {
 	private Long idchamada;
 	private Conteudo conteudo;
 	private Galeria galeria;
 	private Home home;
 	private Tipochamada tipochamada;
 	
 	public Chamada(){
 		
 	}
 	
 	public Chamada(Home h, Conteudo c, Galeria g, Tipochamada t){
 		if (h != null)
 			setHome(h);
 		if (c != null)
 			setConteudo(c);
 		if (g != null)
 			setGaleria(g);
 		if (t != null)
 			setTipochamada(t);
 	}
 	
 	
 	@JoinColumn(name="idgaleria",nullable=true)
 	@ManyToOne()
 	public Galeria getGaleria() {
 		return galeria;
 	}
 
 	@JoinColumn(name="idconteudo",nullable=true)
 	@ManyToOne()
 	public Conteudo getConteudo() {
 		return conteudo;
 	}
 	
 	@JoinColumn(name="idhome")
 	@ManyToOne(fetch=FetchType.LAZY)
 	public Home getHome() {
 		return home;
 	}
 	@Id
 	@GeneratedValue(strategy = GenerationType.AUTO, generator="chamada_idchamada_seq")
 	public Long getIdchamada() {
 		return idchamada;
 	}
 	
 	@JoinColumn(name="idtipochamada")
 	@ManyToOne
 	public Tipochamada getTipochamada() {
 		return tipochamada;
 	}
 	
 	public void setConteudo(Conteudo conteudo) {
 		this.conteudo = conteudo;
 	}
 	public void setHome(Home home) {
 		this.home = home;
 	}
 	public void setIdchamada(Long idchamada) {
 		this.idchamada = idchamada;
 	}
 	public void setTipochamada(Tipochamada tipochamada) {
 		this.tipochamada = tipochamada;
 	}
 	public void setGaleria(Galeria galeria) {
 		this.galeria = galeria;
 	}
 
 	
 }
 


vou mandar o resto no post seguinte.
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Continando (se preferir ainda mando por email)

Tipochamada
Code:
 package org.neo.exemplo.bean;
 
 import java.util.Map;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Transient;
 
 import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
 import br.com.linkcom.neo.validation.annotation.MaxLength;
 import br.com.linkcom.neo.validation.annotation.Required;
 
 @Entity
 @SequenceGenerator(name="tipochamada_idtipochamada_seq", sequenceName="tipochamada_idtipochamada_seq")
 public class Tipochamada {
 	private Long idtipochamada;
 	private String tipochamada;
 	private String codigo;
 	private String tipoPublicacao;
 	
 	public Tipochamada(){
 	}
 	
 	public Tipochamada(String padrao){
 		this.codigo = padrao;
 		this.tipochamada = padrao;
 	}
 	
 	@Required
 	@Column(name="tipopublicacao")
 	public String getTipoPublicacao() {
 		return tipoPublicacao;
 	}
 	
 	@Transient
 	public String getTipoPublicacaoDescricao(){
 		if (this != null)
 			return TipoPublicacao.getMap().get(tipoPublicacao);
 		else
 			return "";
 	}
 	
 	@Transient
 	public Map<String,String> getTipoPublicacaoCombo(){
 		return TipoPublicacao.getMap();
 	}
 	
 	@Required
 	@MaxLength(40)
 	public String getCodigo() {
 		return codigo;
 	}
 	@Id
 	@GeneratedValue(strategy=GenerationType.AUTO, generator="tipochamada_idtipochamada_seq")
 	public Long getIdtipochamada() {
 		return idtipochamada;
 	}
 	
 	@DescriptionProperty
 	@Required
 	@MaxLength(60)
 	public String getTipochamada() {
 		return tipochamada;
 	}
 	
 	public void setCodigo(String codigo) {
 		this.codigo = codigo;
 	}
 	public void setIdtipochamada(Long idtipochamada) {
 		this.idtipochamada = idtipochamada;
 	}
 	public void setTipochamada(String tipochamada) {
 		this.tipochamada = tipochamada;
 	}
 	public void setTipoPublicacao(String tipoPublicacao) {
 		this.tipoPublicacao = tipoPublicacao;
 	}
 	
 
 }
 


ConteudoCrud

Code:
 package org.neo.exemplo.controller;
 
 import java.sql.Timestamp;
 
 import org.neo.exemplo.bean.Conteudo;
 import org.neo.exemplo.service.ConteudoService;
 
 import br.com.linkcom.neo.controller.Controller;
 import br.com.linkcom.neo.controller.crud.CrudController;
 import br.com.linkcom.neo.core.web.WebRequestContext;
 
 @Controller(path="/modulo/crud/Conteudo")
 public class ConteudoCrud extends CrudController<ConteudoFiltro, Conteudo, Conteudo> {
 	ConteudoService conteudoService;
 	
 	public ConteudoService getConteudoService() {
 		return conteudoService;
 	}
 
 	public void setConteudoService(ConteudoService conteudoService) {
 		this.conteudoService = conteudoService;
 	}
 
 	@Override
 	protected void salvar(WebRequestContext arg0, Conteudo conteudo) throws Exception {
 		Timestamp dataAtual = new Timestamp(System.currentTimeMillis());
 		if (conteudo.getIdconteudo() == null)
 			conteudo.setDataCadastro(dataAtual);
 		conteudo.setDataAlteracao(dataAtual);
 		super.salvar(arg0, conteudo);
 		conteudoService.geraXml(conteudo);
 	}
 }
 


ConteudoDAO

Code:
 package org.neo.exemplo.dao;
 
 import java.util.List;
 
 import org.neo.exemplo.bean.Conteudo;
 import org.neo.exemplo.bean.Home;
 import org.neo.exemplo.controller.ConteudoFiltro;
 
 import br.com.linkcom.neo.controller.crud.FiltroListagem;
 import br.com.linkcom.neo.persistence.GenericDAO;
 import br.com.linkcom.neo.persistence.QueryBuilder;
 
 public class ConteudoDAO extends GenericDAO<Conteudo> {
 	
 	@Override
 	public void updateEntradaQuery(QueryBuilder<Conteudo> query) {
 		query.leftOuterJoinFetch("conteudo.imagem");
 	}
 
 	@Override
 	public void updateListagemQuery(QueryBuilder<Conteudo> query, FiltroListagem _filtro) {
 		ConteudoFiltro filtro = (ConteudoFiltro) _filtro;
 		query.joinFetch("conteudo.canal")
 			.leftOuterJoinFetch("conteudo.subcanal")
 			.leftOuterJoinFetch("conteudo.imagem")
 			.whereLike("conteudo.titulo", filtro.getTitulo())
 			.where("conteudo.canal = ?", filtro.getCanal())
 			.where("conteudo.subcanal = ?", filtro.getSubcanal())
 			.where("conteudo.autor = ?", filtro.getAutor());
 	}
 
 	@Override
 	public Conteudo load(Conteudo conteudo) {
 		if (conteudo == null)
 			return null;
 		QueryBuilder<Conteudo> query= newQueryBuilder(Conteudo.class)
 			.from(Conteudo.class)
 			.joinFetch("conteudo.autor")
 			.joinFetch("conteudo.canal")
 			.leftOuterJoinFetch("conteudo.subcanal")
 			.leftOuterJoinFetch("conteudo.imagem")
 			.leftOuterJoinFetch("conteudo.imagem.arquivo")
 			.leftOuterJoinFetch("conteudo.imagem2")
 			.leftOuterJoinFetch("conteudo.imagem2.arquivo")
 			.leftOuterJoinFetch("conteudo.imagemChamada")
 			.leftOuterJoinFetch("conteudo.imagemChamada.arquivo");
 		
 		return query.entity(conteudo).unique();
 	}
 	
 	public Conteudo loadForChamada(Conteudo conteudo) {
 		if (conteudo == null)
 			return null;
 		QueryBuilder<Conteudo> query= newQueryBuilder(Conteudo.class)
 			.from(Conteudo.class)
 			.joinFetch("conteudo.canal")
 			.leftOuterJoinFetch("conteudo.subcanal")
 			.leftOuterJoinFetch("conteudo.imagemChamada")
 			.leftOuterJoinFetch("conteudo.imagemChamada.arquivo");
 		
 		return query.entity(conteudo).unique();
 	}
 	
 	public List<Conteudo> listForHome(Home home){
 		QueryBuilder<Conteudo> query = newQueryBuilder(Conteudo.class)
 		.from(Conteudo.class)
 		.joinFetch("conteudo.canal")
 		.leftOuterJoinFetch("conteudo.subcanal")
 		.leftOuterJoinFetch("conteudo.imagemChamada")
 		.leftOuterJoinFetch("conteudo.imagemChamada.arquivo")
 		.where("conteudo.canal = ?", home.getCanal());
 		
 		if (home.getSubcanal() != null)
 			query.where("conteudo.subcanal = ?", home.getSubcanal());
 		
 		query.orderBy("conteudo.idconteudo desc").setMaxResults(home.getNumeroChamadas());
 
 		return query.list(); 
 	}
 	
 	
 }
 


conteudoEntrada.jsp
Code:
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="t" uri="template"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
 <t:entrada>
 	<t:janelaEntrada>
 		<t:tabelaEntrada>
 			<t:property name="idconteudo"/>
 			<c:if test="${conteudo.idconteudo != null}">
 				<t:property name="dataCadastro" readonly="readonly" />
 			</c:if>
 			<n:comboReloadGroup useAjax="true">
 		        <t:property name="canal"/>
 		        <t:property name="subcanal"/>
 		    </n:comboReloadGroup> 
 			<t:property name="titulo"/>
 			<t:property name="subtitulo"/>
 			<t:property rows="12" cols="60" name="texto"/>
 			<t:property name="tituloChamada"/>
 			<t:property name="textoChamada" rows="10" cols="60"/>
 			<t:property name="autor"/>
 			<t:property name="imagem" selectOnePath="/modulo/crud/Imagem"/>
 			<t:property name="imagem2" selectOnePath="/modulo/crud/Imagem"/>
 			<t:property label="Imagem da Chamada" name="imagemChamada" selectOnePath="/modulo/crud/Imagem"/>
 		</t:tabelaEntrada>
 	</t:janelaEntrada>
 </t:entrada>
 


conteudoListagem
Code:
 <%@ taglib prefix="n" uri="neo"%>
 <%@ taglib prefix="t" uri="template"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
 <t:listagem>
 	<t:janelaFiltro>
      	<t:tabelaFiltro>
      		<t:property name="titulo"/>
  			<n:comboReloadGroup useAjax="true">
  				<t:property name="canal" label="Canal:"/>
  				<t:property name="subcanal" label="Subcanal:"/>
  			</n:comboReloadGroup>
  			<t:property name="autor"/>
  		</t:tabelaFiltro>
      </t:janelaFiltro>
 	
 	<t:janelaResultados>
 		<t:tabelaResultados>
 			<t:property name="idconteudo"/>
 			<t:property name="titulo"/>
 			<t:property name="subtitulo"/>
 			<t:property name="ultimoCanal"/>
 		</t:tabelaResultados>
 	</t:janelaResultados>
 </t:listagem>
 


Talvez aqui seja suficiente se vc colocar uns valores no banco para suprir as necessidades da tela... Qualquer coisa me fala, e valeu mesmo pela ajuda...

Só falto isso e o controle de acesso para terminar um projeto que estou fazendo aqui.

abraços
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

blz robmsjr... talvez eu demore um pouquinho para te dar a resposta.. pq esses dias estao meio turbulentos.. e eu vou ter que analizar muita coisa.. pq esse erro é incomum..

mas eu vou te responder....

[se for possível.. utilize um combo normal por enquanto até eu descobrir o que pode ter dado errado]
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Valeu,

Estou utilizando o combo comum e tentando encontrar o erro... Se eu achar alguma coisa te digo.
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

robmsjr, realmente um bug que acontece quando o nome da propriedade tem colchetes.. que é o seu caso.. na próxima versão estará corrigido.. ou vc pode colocar dentro do seu src o arquivo...

/br/com/linkcom/neo/view/InputTag-select_one_button.jsp

com o seguinte código:
Code:
 <!-- Valor selecionado ${tag.valueToString} -->
 <input type="text" name="${tag.name}_label" id="${tag.id}" onchange="${tag.reloadOnChangeString}" readonly="true" value="${tag.descriptionToString}" ${tag.dynamicAttributesToString}/>
 <input type="hidden" name="${tag.name}" value="${tag.valueWithDescriptionToString}" />
 <button id="${tag.name}_btn" name="${tag.name}_btn" type="button" onclick="${tag.selectOneButtonOnClick} " style='${tag.selectOneButtonStyle}'>Selecionar</button>
 <button id="${tag.name}_btnUnselect" name="${tag.name}_btnUnselect" type="button" onclick="document.getElementsByName('${tag.name}_label')[0].value = ''; document.getElementsByName('${tag.name}')[0].value = '<null>'; document.getElementById('${tag.name}_btn').style.display=''; document.getElementById('${tag.name}_btnUnselect').style.display='none'" style='${tag.selectOneUnselectButtonStyle}'>Limpar</button>
 
 


A alteração ocorreu na ultima linha...
onde tinha

Code:
${tag.name}_label.value = ''; ${tag.name}.value = '<null>'; 


passou a ser

Code:
document.getElementsByName('${tag.name}_label')[0].value = ''; document.getElementsByName('${tag.name}')[0].value = '<null>'; 


Valew
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Valeu mesmo. Estarei colocando em pratica amanhã e posto qualquer duvida.
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Funcionou perfeitamente.
Valeu mesmo.
 
Índice dos Fóruns -> Dúvidas
Ir para:   
Powered by JForum 2.1.7 © JForum Team