Package br.com.syspartenon.partenon.view

Source Code of br.com.syspartenon.partenon.view.NoticiaMB

package br.com.syspartenon.partenon.view;

import br.com.syspartenon.partenon.business.SiteBC;
import br.gov.frameworkdemoiselle.message.MessageContext;
import br.gov.frameworkdemoiselle.message.SeverityType;
import br.gov.frameworkdemoiselle.stereotype.ViewController;
import br.gov.frameworkdemoiselle.transaction.Transactional;
import br.gov.frameworkdemoiselle.util.Parameter;
import br.com.syspartenon.partenon.business.NoticiaBC;
import br.com.syspartenon.partenon.domain.Site;
import br.com.syspartenon.partenon.domain.Noticia;
import br.com.syspartenon.partenon.util.TwitterUtil;
import java.util.List;
import javax.inject.Inject;
import twitter4j.Twitter;
import twitter4j.TwitterException;

@ViewController
public class NoticiaMB {
    @Inject
    private SiteBC siteBC;
   
    @Inject
    private NoticiaBC noticiaBC;
   
    private Site site;
   
    private Noticia noticia;
   
    @Inject
    private Parameter<Integer> id;

    @Inject
    private MessageContext messageContext;
   
    private Boolean shareOnTwitter = false;
   
    public List<Noticia> getList(){
        if(site == null)
            site = getSite();
        return noticiaBC.findAll(site);
    }

    public Site getSite() {
        if(this.site == null) {
            this.site = new Site();
            if(this.id.getValue() != null)
                this.site = siteBC.load(this.id.getValue());
        }
        return site;
    }

    public void setSite(Site site) {
        this.site = site;
    }

    public Noticia getNoticia() {
        if(noticia == null){
            noticia = new Noticia();
            noticia.setSite(site);
        }
        return noticia;
    }

    public void setNoticia(Noticia noticia) {
        this.noticia = noticia;
    }
   
    public Boolean getShareOnTwitter() {
        return shareOnTwitter;
    }

    public void setShareOnTwitter(Boolean shareOnTwitter) {
        this.shareOnTwitter = shareOnTwitter;
    }
   
    @Transactional
    public void salvar(){
        try {
            if(noticia.getNtcId() != null)
                noticiaBC.update(noticia);
            else
                noticiaBC.insert(noticia);
           
            if (shareOnTwitter == true) {
                try {
                    Twitter twitter = TwitterUtil.getTwitter(TwitterUtil.convert(getSite()));
                    twitter.updateStatus("Notícia Postada: '" + noticia.getNtcTitulo() + "'. Acesse o site e confira.");
                } catch (TwitterException ex) {
                    messageContext.add("Erro ao Enviar para Twitter.", SeverityType.WARN);
                }
                shareOnTwitter = false;
            }
           
            messageContext.add("Noticia salva com sucesso.", SeverityType.INFO);
        } catch (Exception e) {
            messageContext.add("Erro ao salvar Noticia: " + e.getMessage(), SeverityType.ERROR);
        }
    }
   
    @Transactional
    public void excluir(Noticia noticia){
        try {
            noticiaBC.delete(noticia.getNtcId());
            messageContext.add("Noticia removida.", SeverityType.INFO);
        } catch (Exception e) {
            messageContext.add("Erro ao remover Noticia: " + e.getMessage(), SeverityType.ERROR);
        }
    }
   
    public void novaNoticia(){
        this.noticia = new Noticia();
        noticia.setSite(getSite());
    }
}
TOP

Related Classes of br.com.syspartenon.partenon.view.NoticiaMB

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.