package pt.estgp.estgweb.domain.views;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
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;
import javax.servlet.http.HttpServletRequest;
/**
* @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, ICanLoad
{
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 =
true;
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
;
private long bigImageId
;
private long smallImageId
;
private boolean courseUnitInternal
;
private CourseUnitView courseUnitView
;
public AnnouncementView
()
{
courseUnitView =
new CourseUnitView
();
}
public AnnouncementView
(Announcement announcement
)
{
super(announcement
);
init
(announcement
);
}
public void init
(Announcement announcement
)
{
this.
announcement = announcement
;
this.
title = announcement.
getTitle();
this.
text = announcement.
getText();
this.
bigImage = announcement.
getBigImage();
this.
smallImage= announcement.
getSmallImage();
if(announcement.
getBigImage() !=
null)
this.
bigImageId = announcement.
getBigImage().
getId();
if(announcement.
getSmallImage() !=
null)
this.
smallImageId = announcement.
getSmallImage().
getId();
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();
if(announcement
instanceof CourseUnitAnnouncementImpl
)
{
courseUnitView =
new CourseUnitView
(((CourseUnitAnnouncement
)announcement
).
getCourseUnit());
courseUnitInternal =
((CourseUnitAnnouncement
)announcement
).
isCourseUnitInternal();
}
}
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
);
if(announcement
instanceof CourseUnitAnnouncement
&& courseUnitView
!=
null && courseUnitView.
getId() > 0
)
{
((CourseUnitAnnouncement
)announcement
).
setCourseUnit(DaoFactory.
getCourseUnitDaoImpl().
load(courseUnitView.
getId()));
((CourseUnitAnnouncement
)announcement
).
setCourseUnitInternal(courseUnitInternal
);
}
}
public boolean isCourseUnitInternal
()
{
return courseUnitInternal
;
}
public void setCourseUnitInternal
(boolean courseUnitInternal
)
{
this.
courseUnitInternal = courseUnitInternal
;
}
public CourseUnitView getCourseUnitView
()
{
return courseUnitView
;
}
public void setCourseUnitView
(CourseUnitView courseUnitView
)
{
this.
courseUnitView = courseUnitView
;
}
public long getBigImageId
()
{
return bigImageId
;
}
public long getSmallImageId
()
{
return smallImageId
;
}
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 1.5.0/docs/api/java/lang/String.html">String getUrl
(HttpServletRequest request
) {
if(url
!=
null && url.
startsWith("/"))
return request.
getContextPath() + url
;
else
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(getInternalUrlPath
() !=
null)
return false;
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,
boolean transaction
)
{
return announcement.
isOwnedBy(u,transaction
);
}
public boolean isOwnedBy
(GenericUser u
)
{
return announcement.
isOwnedBy(u,
false);
}
public List
<String
> getTargetRolesList
()
{
return getTargetRoles
();
}
public boolean isValid
()
{
return isStatus
();
}
public boolean canLoad
(GenericUserImpl u
)
{
return ((AnnouncementImpl
)announcement
).
canLoad(u
);
}
public boolean canLoadInOpenTransaction
(GenericUserImpl u
)
{
return ((AnnouncementImpl
)announcement
).
canLoadInOpenTransaction(u
);
}
public 1.5.0/docs/api/java/lang/String.html">String getOwnerUsername
()
{
if (owner
instanceof User
)
return ((User
) owner
).
getUsername();
else
return null;
}
}