Rev 526 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.controller;
import java.io.File;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.ServletContext;
import org.primefaces.model.file.UploadedFile;
import org.springframework.context.annotation.Scope;
import br.com.ec.domain.dto.ImagemDTO;
import br.com.ec.domain.shared.ConstantesSEC;
@Named
@Scope("view")
public class ImagemBean {
private ImagemDTO imagemDTO;
private UploadedFile imagemParaUpload;
public ImagemDTO getImagemDTO() {
return imagemDTO;
}
public void setImagemDTO(ImagemDTO imagemDTO) {
this.imagemDTO = imagemDTO;
}
public UploadedFile getImagemParaUpload() {
return imagemParaUpload;
}
public void setImagemParaUpload(UploadedFile imagemParaUpload) {
this.imagemParaUpload = imagemParaUpload;
}
/**********************************************/
/**********************************************/
/*
public void uploadImagem(final FileUploadEvent e) {
new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
public void execute() {
// FotoDTO arquivoGerado = gerarArquivo(e.getFile());
// arquivoGerado.setDescricao(gerarNovaDescricao(getFotoNova().getDescricao()));
// lancarExcecaoCasoArquivoExcedeuLimite(arquivoGerado);
// arquivoGerado.compactarImagem();
// setFotoParaUpload(e.getFile());
// uploadFisico(arquivoGerado);
LancadorMensagem.lancarSucesso("IMAGEM ADICIONADA COM SUCESSO");
}
});
}
public void uploadFisico(FotoDTO arquivoGerado) {
String caminho = getCaminhoPastaImagens() + arquivoGerado.getDescricao() + "." + arquivoGerado.getExtensao();
FileOutputStream fos;
try {
fos = new FileOutputStream(caminho);
fos.write(arquivoGerado.getArquivo());
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
public String fotoPadraoProdutoDTO(ProdutoDTO produtoDTO) {
try {
if (VerificadorUtil.naoEstaNulo(produtoDTO)) {
if (VerificadorUtil.naoEstaNuloOuVazio(produtoDTO.getCodigo())) {
File foto = new File(getCaminhoPastaImagens() + produtoDTO.getCodigoProdutoPadrao() + ".jpg");
return foto.exists()? getCaminhoPadraoImagens() + produtoDTO.getCodigoProdutoPadrao() + ".jpg" : getCaminhoPadraoImagens() + "SEM_FOTO.jpg";
}
}
} catch (Exception e) {
e.printStackTrace();
}
return getCaminhoPadraoImagens() + "SEM_FOTO.jpg";
}
public String fotoPadraoProdutoComCodigo(String codigo) {
ProdutoDTO produtoDTO = new ProdutoDTO();
produtoDTO.setCodigo(codigo);
return fotoPadraoProdutoDTO(produtoDTO);
}
public String fotoPadraoProduto(Produto produto) {
try {
if (VerificadorUtil.naoEstaNulo(produto)) {
if (VerificadorUtil.naoEstaNuloOuVazio(produto.getCodigo())) {
File foto = new File(getCaminhoPastaImagens() + produto.getCodigoProdutoPadrao() + ".jpg");
return foto.exists()? getCaminhoPadraoImagens() + produto.getCodigoProdutoPadrao() + ".jpg" : getCaminhoPadraoImagens() + "SEM_FOTO.jpg";
}
}
} catch (Exception e) {
e.printStackTrace();
}
return getCaminhoPadraoImagens() + "SEM_FOTO.jpg";
}
*********************************************
@Transient
public List<String> fotosProdutoComFotoPadrao(Produto produto) {
List<String> fotos = new ArrayList<String>();
if (VerificadorUtil.naoEstaNulo(produto)) {
if (VerificadorUtil.naoEstaNuloOuVazio(produto.getCodigo())) {
File fotoPadrao = new File(getCaminhoPastaFotos() + produto.getCodigoProdutoPadrao() + ".jpg");
if (fotoPadrao.exists()) {
fotos.add(getCaminhoPadraoFotos() + produto.getCodigoProdutoPadrao() + ".jpg");
}
fotos.addAll(fotosProduto(produto));
return fotos;
}
}
return fotos;
}
@Transient
public List<String> fotosProduto(Produto produto) {
List<String> fotos = new ArrayList<String>();
if (VerificadorUtil.naoEstaNulo(produto)) {
if (VerificadorUtil.naoEstaNuloOuVazio(produto.getCodigo())) {
File foto = new File(getCaminhoPastaFotos() + produto.getCodigoProdutoPadrao() + "_1.jpg");
Integer quantidadeFotos = 1;
if (foto.exists()) {
while (foto.exists()) {
fotos.add(getCaminhoPadraoFotos() + produto.getCodigoProdutoPadrao() + "_" + quantidadeFotos + ".jpg");
quantidadeFotos++;
foto = new File(getCaminhoPastaFotos() + produto.getCodigoProdutoPadrao() + "_" + quantidadeFotos + ".jpg");
}
}
return fotos;
}
}
return fotos;
}
public void prepararUploadFoto(Produto produto) {
FotoDTO fotoNova = new FotoDTO();
fotoNova.setDescricao(produto.getCodigoProdutoPadrao());
setFotoNova(fotoNova);
}
public void uploadArquivoPadrao(final FileUploadEvent e) {
new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
public void execute() {
FotoDTO arquivoGerado = gerarArquivo(e.getFile());
arquivoGerado.setDescricao(getFotoNova().getDescricao());
lancarExcecaoCasoArquivoExcedeuLimite(arquivoGerado);
arquivoGerado.compactarImagem();
setFotoParaUpload(e.getFile());
uploadFisico(arquivoGerado);
LancadorMensagem.lancarSucesso("Imagem adicionada com sucesso.");
}
});
}
public void uploadArquivo(final FileUploadEvent e) {
new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
public void execute() {
FotoDTO arquivoGerado = gerarArquivo(e.getFile());
arquivoGerado.setDescricao(gerarNovaDescricao(getFotoNova().getDescricao()));
lancarExcecaoCasoArquivoExcedeuLimite(arquivoGerado);
arquivoGerado.compactarImagem();
setFotoParaUpload(e.getFile());
uploadFisico(arquivoGerado);
LancadorMensagem.lancarSucesso("Imagem adicionada com sucesso.");
}
});
}
protected String gerarNovaDescricao(String codigo) {
Produto produto = new Produto();
produto.setCodigo(codigo);
List<String> fotos = fotosProduto(produto);
Integer proximoCodigo = 1;
for (String foto : fotos) {
if (foto.contains("_" + proximoCodigo)) {
proximoCodigo++;
}
}
return produto.getCodigoProdutoPadrao() + "_" + proximoCodigo.toString();
}
public void uploadFisico(FotoDTO arquivoGerado) {
String caminho = getCaminhoPastaFotos() + arquivoGerado.getDescricao() + "." + arquivoGerado.getExtensao();
FileOutputStream fos;
try {
fos = new FileOutputStream(caminho);
fos.write(arquivoGerado.getArquivo());
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
private void lancarExcecaoCasoArquivoExcedeuLimite(FotoDTO arquivoGerado) {
if (arquivoGerado.isExcedeuLimite()) {
throw new NegocioException("Arquivo: " + arquivoGerado.getDescricao() + " excedeu o limite de 3000 kbytes. ");
}
}
private FotoDTO gerarArquivo(UploadedFile file) {
FotoDTO arquivo = new FotoDTO();
arquivo.setArquivo(file.getContent());
arquivo.setDescricao(file.getFileName());
arquivo.setExtensao(ArquivoUtil.retornarExtensaoDoArquivo(file.getFileName()));
return arquivo;
}
public void excluirFotoPadrao(final Produto produto) {
try {
File fotoParaExcluir = new File(getCaminhoPastaFotos() + produto.getCodigoProdutoPadrao() + ".jpg");
if (fotoParaExcluir.exists()) {
fotoParaExcluir.delete();
LancadorMensagem.lancarSucesso("Imagem excluída com sucesso.");
} else {
LancadorMensagem.lancarErro("Erro ao excluir imagem");
}
} catch (Exception e1) {
LancadorMensagem.lancarErro("Erro ao excluir imagem");
}
}
public void excluirFoto(final String foto) {
try {
String codigoFoto = foto.substring(foto.indexOf("fotos/")+6, foto.indexOf("_"));
String ordenadorFoto = foto.substring(foto.indexOf("_")+1, foto.indexOf("."));
String caminhoFoto = foto.substring(foto.indexOf("fotos/")+6);
File fotoParaExcluir = new File(getCaminhoPastaFotos() + caminhoFoto);
if (fotoParaExcluir.exists()) {
fotoParaExcluir.delete();
// REORGANIZAR LISTA
Integer proximoCodigo = new Integer(ordenadorFoto);
proximoCodigo++;
File fotoRenomear = new File(getCaminhoPastaFotos() + codigoFoto + "_" + proximoCodigo + ".jpg");
while (fotoRenomear.exists()) {
proximoCodigo--;
File fotoRenomeada = new File(getCaminhoPastaFotos() + codigoFoto + "_" + proximoCodigo + ".jpg");
fotoRenomear.renameTo(fotoRenomeada);
proximoCodigo = proximoCodigo + 2;
fotoRenomear = new File(getCaminhoPastaFotos() + codigoFoto + "_" + proximoCodigo + ".jpg");
}
LancadorMensagem.lancarSucesso("Imagem excluída com sucesso.");
} else {
LancadorMensagem.lancarErro("Erro ao excluir imagem");
}
} catch (Exception e1) {
LancadorMensagem.lancarErro("Erro ao excluir imagem");
}
}
****/
/*********************************/
/*
private static Integer quantidadeFotosDisponiveis() {
// ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
// String caminhoArquivoPadrao = servletContext.getRealPath("") + File.separator + "imagens" + File.separator + "temp" + File.separator;
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String caminhoArquivoPadrao = servletContext.getRealPath("") + File.separator + "fotos" + File.separator + "SEM_FOTO.jpg";
Integer quantidadeFotos = 0;
// String caminhoArquivoPadrao = "src/main/resources/fotos/";
File file = new File(caminhoArquivoPadrao);
File[] arquivos = file.listFiles();
for (File fileTmp : arquivos) {
quantidadeFotos++;
// System.out.println(fileTmp.getName());
}
return quantidadeFotos;
}
public static void main(String[] args) {
String foto = "espacocase/fotos/010632_1.jpg";
String caminhoFoto = foto.substring(foto.indexOf("fotos/")+6);
System.out.println(caminhoFoto);
}
*/
}