Autor |
Mensagem |
|
Vamos considerar que eu tenho 100 registro e eu quero a maior data.
Como eu faço isso?
|
 |
|
Como é que eu faço com o QueryBuilder para buscar o Max de um campo de um bean????
|
 |
|
perfeito.... valeu!!!!
|
 |
|
Alterar o fundo por exemplo....
|
 |
|
Como faço para alterar o estilo do menu? Eu criei o pacote br.com.linkcom.neo.resource.imgs na ninha aplicação e alterei o arquivo menubar.gif mas não funcionou. É isso que tenho que fazer??????
|
 |
|
Eu fiz e pensei.... uai oque eu fiz de errado??? heheheheheh mas ta valendo!!!!!
|
 |
|
agora sim!!!!! obrigado!!!!
|
 |
|
eu vi no outro topico http://www.neoframework.org/forum/posts/list/75.page onde a imagem fica mas o download não funciona... como é que eu faço???
|
 |
|
Apos eu ter feito o upload de uma imagem e assim eu vou editar o registro para ver a imagem não funciona. O link criado pelo FrameWork foi o seguinte http://localhost:8081/geoenterprise/DOWNLOADFILE/7
so que não leva para pagina nenhuma.
Para onde a imagem foi?????
|
 |
|
1000 desculpas .... no DAO eu coloquei o nome errado ao invez de colocar:
Code:
arquivoDAO.saveFile(save.getEntity(), "arquivo");
eu coloquei agora:
Code:
arquivoDAO.saveFile(save.getEntity(), "nomeImagem");
arquivoDAO.saveFile(save.getEntity(), "nomeImagemBaseTopografica");
Valeu!!! Agora esta funcionando!!!
|
 |
|
Eu implementei o tutorial, so que esta dando esse erro quando eu salvo a entidade:
Não foi possivel adquirir arquivo. Propriedade arquivo da classe class br.com.geoexplore.geoenterprise.geobarragem.bean.Estrutura
Method not found: isArquivo
Obs.: Eu criei a tabela de arquivo e colocoquei duas referencias ao arquivo:
Arquivo:
Code:
package br.com.geoexplore.geoenterprise.geobarragem.bean;
import java.sql.Timestamp;
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.Table;
import javax.persistence.Transient;
import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
import br.com.linkcom.neo.types.File;
import br.com.linkcom.neo.validation.annotation.MaxLength;
import br.com.linkcom.neo.validation.annotation.Required;
@Entity
@Table(name = "GD2ARQUT")
@SequenceGenerator(name="S_GD2ARQUT", sequenceName="S_GD2ARQUT")
public class Arquivo implements File {
protected Long id;
protected String nome;
protected String tipoConteudo;
protected Long tamanho;
protected byte[] conteudo;
protected Timestamp tsmodificacao;
public Arquivo() {
}
public Arquivo(Long id) {
this.id = id;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="S_GD2ARQUT")
@Column(name="GD2CODAR")
public Long getId() {
return id;
}
@MaxLength(50)
@Column(name="GD2TIPCN")
public String getTipoConteudo() {
return tipoConteudo;
}
@Transient
public byte[] getConteudo() {
return conteudo;
}
@MaxLength(100)
@DescriptionProperty
@Column(name="GD2NOMAR")
public String getNome() {
return nome;
}
@Column(name="GD2TAMAR")
@Required
public Long getTamanho() {
return tamanho;
}
@Column(name="GD2DATMD")
public Timestamp getTsmodificacao() {
return tsmodificacao;
}
public void setId(Long cdarquivo) {
this.id = cdarquivo;
}
public void setTipoConteudo(String tipoconteudo) {
this.tipoConteudo = tipoconteudo;
}
public void setConteudo(byte[] conteudo) {
this.conteudo = conteudo;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setTamanho(Long tamanho) {
this.tamanho = tamanho;
}
public void setTsmodificacao(Timestamp tsmodificacao) {
this.tsmodificacao = tsmodificacao;
}
// -------------------------------------------------------
@Transient
public byte[] getContent() {
return getConteudo();
}
@Transient
public String getName() {
return getNome();
}
@Transient
public Long getCdfile() {
if(getId() == null){
return null;
}
return new Long(getId().intValue());
}
@Transient
public String getContenttype() {
return getTipoConteudo();
}
@Transient
public Long getSize() {
return getTamanho();
}
@Transient
public Timestamp getTsmodification() {
return getTsmodificacao();
}
public void setContenttype(String contenttype) {
setTipoConteudo(contenttype);
}
public void setContent(byte[] content) {
setConteudo(content);
}
public void setCdfile(Long cdfile) {
setId(cdfile);
}
public void setName(String name) {
setNome(name);
}
public void setSize(Long size) {
setTamanho(size);
}
public void setTsmodification(Timestamp tsmodification) {
setTsmodificacao(tsmodification);
}
}
Estrutura:
Code:
package br.com.geoexplore.geoenterprise.geobarragem.bean;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
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.Table;
import javax.persistence.Transient;
import br.com.geoexplore.geoenterprise.adm.bean.Area;
import br.com.linkcom.neo.bean.annotation.DescriptionProperty;
import br.com.linkcom.neo.validation.annotation.Required;
@Entity
@Table(name = "GB0ESTRT")
@SequenceGenerator(name="S_GB0ESTRT", sequenceName="S_GB0ESTRT")
public class Estrutura {
private Long id;
private String nome;
private Arquivo nomeImagem;
private Arquivo nomeImagemBaseTopografica;
private Date dataInicioOperacao;
private String observacao;
private String tipoBarragem;
private String tipoBarragemDesc;
private String tipo;
private String tipoDesc;
private Float volumeOcupado;
private Float volumeTotalDisponivel;
private Area area;
private List<Piezometro> piezometroList;
private List<Regua> reguaList;
@Id
@GeneratedValue(strategy=GenerationType.AUTO,generator="S_GB0ESTRT")
@Column(name="GB0NUMES", nullable = false)
@Required
public Long getId() {
return id;
}
@Column(name="GB0NOMES", nullable = false)
@Required
@DescriptionProperty
public String getNome() {
return nome;
}
@ManyToOne
@JoinColumn(name = "GB0CODAE", referencedColumnName = "GD2CODAR")
@Required
public Arquivo getNomeImagem() {
return nomeImagem;
}
@ManyToOne
@JoinColumn(name = "GB0CODAB", referencedColumnName = "GD2CODAR")
@Required
public Arquivo getNomeImagemBaseTopografica() {
return nomeImagemBaseTopografica;
}
@Column(name="GB0OBSES")
public String getObservacao() {
return observacao;
}
@Column(name="GB0TIPES")
@Required
public String getTipo() {
return tipo;
}
@Column(name="GB0TIPB")
public String getTipoBarragem() {
return tipoBarragem;
}
@Column(name="GB0VALVO")
public Float getVolumeOcupado() {
return volumeOcupado;
}
@Column(name="GB0VALVT")
public Float getVolumeTotalDisponivel() {
return volumeTotalDisponivel;
}
@Column(name="GB0DATIO")
public Date getDataInicioOperacao() {
return dataInicioOperacao;
}
@ManyToOne
@JoinColumn(name = "GB0NUMAR", referencedColumnName = "ADANUMAR")
@Required
public Area getArea() {
return area;
}
@OneToMany(mappedBy = "estrutura")
public List<Piezometro> getPiezometroList() {
return piezometroList;
}
@OneToMany(mappedBy = "estrutura")
public List<Regua> getReguaList() {
return reguaList;
}
@Transient
public String getTipoBarragemDesc() {
return tipoBarragemDesc;
}
@Transient
public String getTipoDesc() {
return tipoDesc;
}
public void setArea(Area area) {
this.area = area;
}
public void setDataInicioOperacao(Date dataInicioOperacao) {
this.dataInicioOperacao = dataInicioOperacao;
}
public void setId(Long id) {
this.id = id;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setNomeImagem(Arquivo nomeImagem) {
this.nomeImagem = nomeImagem;
}
public void setNomeImagemBaseTopografica(Arquivo nomeImagemBaseTopografica) {
this.nomeImagemBaseTopografica = nomeImagemBaseTopografica;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public void setTipoBarragem(String tipoBarragem) {
this.tipoBarragem = tipoBarragem;
}
public void setVolumeOcupado(Float volumeOcupado) {
this.volumeOcupado = volumeOcupado;
}
public void setVolumeTotalDisponivel(Float volumeTotalDisponivel) {
this.volumeTotalDisponivel = volumeTotalDisponivel;
}
public void setPiezometroList(List<Piezometro> piezometroList) {
this.piezometroList = piezometroList;
}
public void setReguaList(List<Regua> reguaList) {
this.reguaList = reguaList;
}
public void setTipoBarragemDesc(String tipoBarragemDesc) {
this.tipoBarragemDesc = tipoBarragemDesc;
}
public void setTipoDesc(String tipoDesc) {
this.tipoDesc = tipoDesc;
}
}
EstruturaDAO:
Code:
package br.com.geoexplore.geoenterprise.geobarragem.dao;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;
import br.com.geoexplore.geoenterprise.geobarragem.bean.Estrutura;
import br.com.linkcom.neo.persistence.GenericDAO;
import br.com.linkcom.neo.persistence.QueryBuilder;
import br.com.linkcom.neo.persistence.SaveOrUpdateStrategy;
public class EstruturaDAO extends GenericDAO<Estrutura> {
ArquivoDAO arquivoDAO;
public void setArquivoDAO(ArquivoDAO arquivoDAO) {
this.arquivoDAO = arquivoDAO;
}
@Override
public void updateSaveOrUpdate(final SaveOrUpdateStrategy save) {
getTransactionTemplate().execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status) {
arquivoDAO.saveFile(save.getEntity(), "arquivo");
return null;
}
});
}
@Override
public void updateEntradaQuery(QueryBuilder query) {
query.leftOuterJoinFetch("estrutra.arquivo arquivo");
}
}
Esta Faltando alguma coisa????
|
 |
|
Ficou perfeito!!!!!!Esse framework e esse suporte são muito bons!!!
|
 |
|
O neo gerencia algum tipo de arquivo de mensagens ou tenho que usar o Properties mesmo????
|
 |
|
Obrigado pelos conselhos agora o problema é o seguinte com esse codigo:
Code:
<t:entrada>
<t:janelaEntrada>
<t:tabelaEntrada columns="3">
<n:comboReloadGroup useAjax="true">
<t:property name="piezometro.estrutura.area.projeto"/>
<n:panel colspan="2" id="mensagem.piezometro.estrutura.area.projeto" style="display: none;">Nenhum registro encontrado</n:panel>
<t:property name="piezometro.estrutura.area" onLoadItens="verificaLista(this)"/>
<n:panel colspan="2" id="mensagem.piezometro.estrutura.area" style="display: none;">Nenhum registro encontrado</n:panel>
<t:property name="piezometro.estrutura" onLoadItens="verificaLista(this)"/>
<n:panel colspan="2" id="mensagem.piezometro.estrutura" style="display: none;">Nenhum registro encontrado</n:panel>
<t:property name="piezometro" onLoadItens="verificaLista(this)"/>
<n:panel colspan="2" id="mensagem.piezometro" style="display: none;">Nenhum registro encontrado</n:panel>
</n:comboReloadGroup>
<t:property name="data" type="DATE"/><n:panel id="vazio" style="display: none;"/>
<t:property name="status" itens="${listaStatus}"/><n:panel id="vazio" style="display: none;"/>
<t:property name="profundidade" onchange="executarAjax()"/><n:panel id="vazio" style="display: none;"/>
<t:property name="cotaNivelAgua" bodyStyleClass="readOnly" readonly="readonly" /><n:panel id="vazio" style="display: none;"/>
</t:tabelaEntrada>
</t:janelaEntrada>
</t:entrada>
Eles ficam separados em 3 colunas certinho... so que quando não tem nenhuma mensagem para ser mostrada os labels ficam no lugar certo e o campo para o valor fica no meio da tela.
Quando eu troco o valor do combo e a mensagem tem que aparecer ela aparece e todos os componentes ficam alinhados a esquerda, que é a forma que deveriam ficar desde o começo sem ou com mensagem.
Como eu faço para que os componentes fiquem alinhados a esquerda????
|
 |
|
Será que eu posso gravar somente a figura no servidor e o caminho de acesso no banco de dados ou é necessario gravar todas essas informações?????
|
 |
|