Subversion Repositories bacoAlunos

Rev

Rev 163 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain.views;

import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.enums.AnnouncementStyleEnum;
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.web.utils.DatesUtils;

import java.util.List;
import java.util.Date;
import java.io.Serializable;

import org.apache.log4j.Logger;
import jomm.utils.StringsUtils;

/**
 * @author Jorge Machado
 * @date 2/Mar/2008
 * @time 19:34:49
 * @see pt.estgp.estgweb.domain.views
 */

public class AnnouncementView extends DomainObjectView implements IOwned, IContextTimerObject, ITargetRoles, IInternal, IValid
{

    private static 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(AnnouncementView.class);

    public static final int TEXT_SUMMARY_SIZE = ConfigProperties.getIntProperty("announcements.text.summary.size");
    public static final int TEXT_SUMMARY_SIZE_SMALL = ConfigProperties.getIntProperty("announcements.text.summary.size.small");

    private Announcement announcement;
    private long id;
    private 1.5.0/docs/api/java/lang/String.html">String title;
    private 1.5.0/docs/api/java/lang/String.html">String text;
    private 1.5.0/docs/api/java/lang/String.html">String choosedOwnerRole;
    private List<String> targetRoles;
    private 1.5.0/docs/api/java/awt/Image.html">Image bigImage;
    private 1.5.0/docs/api/java/awt/Image.html">Image smallImage;
    private 1.5.0/docs/api/java/lang/String.html">String url;
    private 1.5.0/docs/api/java/lang/String.html">String type;
    private 5+0%2Fdocs%2Fapi+Date">Date updateDate;
    private 5+0%2Fdocs%2Fapi+Date">Date saveDate;
    private 5+0%2Fdocs%2Fapi+Date">Date startDate;
    private 5+0%2Fdocs%2Fapi+Date">Date expireDate;
    private 1.5.0/docs/api/java/lang/Integer.html">Integer counter;
    private boolean status;
    private boolean internal;
    private GenericUser owner;
    private 1.5.0/docs/api/java/lang/String.html">String style;
    private 1.5.0/docs/api/java/lang/String.html">String internalUrlServer;
    private 1.5.0/docs/api/java/lang/String.html">String internalUrlPath;
    private boolean internalUrlInclude;

    public AnnouncementView()
    {}

    public AnnouncementView(Announcement announcement)
    {

        super(announcement);
        this.announcement = announcement;
        this.title = announcement.getTitle();
        this.text = announcement.getText();
        this.bigImage = announcement.getBigImage();
        this.smallImage= announcement.getSmallImage();
        this.url =announcement.getUrl();
        this.type =announcement.getType();
        this.targetRoles = RoleManager.getRolesFromSerial(announcement.getTargetRoles());
        this.status=announcement.isStatus();
        this.id = announcement.getId();
        this.counter =announcement.getCounter();
        this.startDate = announcement.getStartDate();
        this.expireDate = announcement.getExpireDate();
        this.choosedOwnerRole = announcement.getChoosedOwnerRole();
        this.owner = announcement.getOwner();
        this.internalUrlServer = announcement.getInternalUrlServer();
        this.internalUrlPath = announcement.getInternalUrlPath();
        this.style = announcement.getStyle();
        this.internalUrlInclude = announcement.isInternalUrlInclude();
        this.internal = announcement.isInternal();
        this.updateDate = announcement.getUpdateDate();
        this.saveDate = announcement.getSaveDate();
    }

    public void persistViewInObject(Announcement announcement)
    {
        announcement.setTitle(title);
        announcement.setText(text);
        announcement.setTargetRoles(RoleManager.getSerialRoles(targetRoles));
        announcement.setBigImage(bigImage);
        announcement.setSmallImage(smallImage);
        announcement.setUrl(url);
        announcement.setType(type);
        announcement.setStartDate(startDate);
        announcement.setExpireDate(expireDate);
        announcement.setStatus(status);
        announcement.setCounter(counter);
        announcement.setChoosedOwnerRole(choosedOwnerRole);
        announcement.setInternalUrlServer(internalUrlServer);
        announcement.setInternalUrlPath(internalUrlPath);
        announcement.setStyle(style);
        announcement.setInternalUrlInclude(internalUrlInclude);
        announcement.setInternal(internal);
    }


    public 5+0%2Fdocs%2Fapi+Date">Date getUpdateDate()
    {
        return updateDate;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getFormatedUpdateDate()
    {
        return DatesUtils.getStringFromDate(updateDate);
    }

    public boolean isInternal() {
        return internal;
    }

    public void setInternal(boolean internal) {
        this.internal = internal;
    }

    public boolean isInternalUrlInclude() {
        return internalUrlInclude;
    }

    public void setInternalUrlInclude(boolean internalUrlInclude) {
        this.internalUrlInclude = internalUrlInclude;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getStyle() {
        return style;
    }

    public AnnouncementStyleEnum getStyleEnum()
    {
        return AnnouncementStyleEnum.parse(style);
    }

    public void setStyle(1.5.0/docs/api/java/lang/String.html">String style) {
        this.style = style;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getInternalUrlPath() {
        return internalUrlPath;
    }

    public void setInternalUrlPath(1.5.0/docs/api/java/lang/String.html">String internalUrlPath) {
        this.internalUrlPath = internalUrlPath;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getInternalUrlServer() {
        return internalUrlServer;
    }

    public void setInternalUrlServer(1.5.0/docs/api/java/lang/String.html">String internalUrlServer) {
        this.internalUrlServer = internalUrlServer;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getChoosedOwnerRole() {
        return choosedOwnerRole;
    }

    public void setChoosedOwnerRole(1.5.0/docs/api/java/lang/String.html">String choosedOwnerRole) {
        this.choosedOwnerRole = choosedOwnerRole;
    }

    public 5+0%2Fdocs%2Fapi+Date">Date getExpireDate() {
        return expireDate;
    }

    public void setExpireDate(5+0%2Fdocs%2Fapi+Date">Date expireDate) {
        this.expireDate = expireDate;
    }

    public 5+0%2Fdocs%2Fapi+Date">Date getStartDate() {
        return startDate;
    }

    public void setStartDate(5+0%2Fdocs%2Fapi+Date">Date startDate) {
        this.startDate = startDate;
    }

    public long getId()
    {
        return id;
    }

    public void setId(long id)
    {
        this.id = id;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getTitle() {
        return title;
    }

    public void setTitle(1.5.0/docs/api/java/lang/String.html">String title)
    {
        this.title = title;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getText() {
        return text;
    }

    public void setText(1.5.0/docs/api/java/lang/String.html">String text)
    {
        this.text = text;
    }

    public List<String> getTargetRoles()
    {
        return targetRoles;
    }

    public void setTargetRoles(List<String> targetRoles)
    {
        this.targetRoles = targetRoles;
    }

    public 1.5.0/docs/api/java/lang/Class.html">Class getReferenceClass()
    {
        return AnnouncementImpl.class;
    }

    public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable()
    {
        return id;
    }

    public 1.5.0/docs/api/java/awt/Image.html">Image getBigImage() {
        return bigImage;
    }

    public void setBigImage(1.5.0/docs/api/java/awt/Image.html">Image bigImage) {
        this.bigImage = bigImage;
    }

    public 1.5.0/docs/api/java/awt/Image.html">Image getSmallImage() {
        return smallImage;
    }

    public void setSmallImage(1.5.0/docs/api/java/awt/Image.html">Image smallImage) {
        this.smallImage = smallImage;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getUrl() {
        return url;
    }

    public void setUrl(1.5.0/docs/api/java/lang/String.html">String url) {
        this.url = url;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getType() {
        return type;
    }

    public void setType(1.5.0/docs/api/java/lang/String.html">String type) {
        this.type = type;
    }


    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }


    public long getOwnerID() {
        return getOwner().getId();
    }

    public 1.5.0/docs/api/java/lang/Integer.html">Integer getCounter() {
        return counter;
    }

    public void setCounter(1.5.0/docs/api/java/lang/Integer.html">Integer counter) {
        this.counter = counter;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getTextSummary()
    {
        return StringsUtils.getFragment(getText(),TEXT_SUMMARY_SIZE);
    }

    public 1.5.0/docs/api/java/lang/String.html">String getTextSummarySmall()
    {
        return StringsUtils.getFragment(getText(),TEXT_SUMMARY_SIZE_SMALL);
    }

    public 1.5.0/docs/api/java/lang/String.html">String getFormatedText()
    {
        return StringsUtils.getFormatedText(text);
    }

    public 1.5.0/docs/api/java/lang/Boolean.html">Boolean getHaveAllText()
    {
        if(getType().equals("top.flash.news"))
        {
            return getText().length() > TEXT_SUMMARY_SIZE;
        }
        else
        {
            return getText().length() > TEXT_SUMMARY_SIZE_SMALL;
        }
    }

    public GenericUser getOwner()
    {
        return owner;
    }

    /**
     * Not implemented
     * @return null
     */

    public List<String> getOwnerRoles()
    {
        logger.warn("Invoke not implemented method in class:" + getClass().getName());
        return null;
    }

    public boolean isOwnedBy(GenericUser u)
    {
        return announcement.isOwnedBy(u);
    }

    public List<String> getTargetRolesList()
    {
        return getTargetRoles();
    }

    public boolean isValid()
    {
        return isStatus();
    }
}