001: package org.contineo.web.communication;
002:
003: import org.apache.commons.logging.Log;
004: import org.apache.commons.logging.LogFactory;
005:
006: import org.contineo.core.communication.SystemMessage;
007: import org.contineo.core.communication.dao.SystemMessageDAO;
008: import org.contineo.core.security.dao.UserDAO;
009:
010: import org.contineo.util.Context;
011:
012: import org.contineo.web.SessionManagement;
013: import org.contineo.web.i18n.Messages;
014:
015: import java.util.Date;
016:
017: import javax.faces.application.Application;
018: import javax.faces.context.FacesContext;
019:
020: /**
021: * A system message editing form
022: *
023: * @author Marco Meschieri - Logical Objects
024: * @version $Id: MessageForm.java,v 1.2 2006/08/31 15:31:18 marco Exp $
025: * @since ###release###
026: */
027: public class MessageForm {
028: protected static Log log = LogFactory.getLog(MessageForm.class);
029: private SystemMessage message = new SystemMessage();
030: private boolean readOnly = true;
031: private boolean confirmation = false;
032:
033: public SystemMessage getMessage() {
034: return message;
035: }
036:
037: public void setMessage(SystemMessage message) {
038: this .message = message;
039: confirmation = message.getConfirmation() != 0;
040: }
041:
042: public String back() {
043: Application application = FacesContext.getCurrentInstance()
044: .getApplication();
045: MessagesRecordsManager manager = ((MessagesRecordsManager) application
046: .createValueBinding("#{messagesRecordsManager}")
047: .getValue(FacesContext.getCurrentInstance()));
048: manager.listMessages();
049:
050: return null;
051: }
052:
053: public String insert() {
054: return null;
055: }
056:
057: public boolean isReadOnly() {
058: return readOnly;
059: }
060:
061: public void setReadOnly(boolean edit) {
062: this .readOnly = edit;
063: }
064:
065: public boolean isConfirmation() {
066: return confirmation;
067: }
068:
069: public void setConfirmation(boolean confirmation) {
070: this .confirmation = confirmation;
071:
072: if (confirmation && (message != null)) {
073: message.setConfirmation(1);
074: } else if (!confirmation && (message != null)) {
075: message.setConfirmation(0);
076: }
077: }
078:
079: public String save() {
080: if (SessionManagement.isValid()) {
081: try {
082: UserDAO udao = (UserDAO) Context.getInstance().getBean(
083: UserDAO.class);
084: String recipient = message.getRecipient();
085:
086: if (udao.existsUser(recipient)) {
087: message.setAuthor(SessionManagement.getUsername());
088: message.setSentDate(String.valueOf(new Date()
089: .getTime()));
090:
091: SystemMessageDAO smdao = (SystemMessageDAO) Context
092: .getInstance().getBean(
093: SystemMessageDAO.class);
094: boolean stored = smdao.store(message);
095:
096: if (!stored) {
097: Messages
098: .addLocalizedError("errors.action.savesysmess");
099: } else {
100: Messages
101: .addLocalizedError("msg.action.savesysmess");
102: }
103: } else {
104: Messages
105: .addLocalizedError("errors.action.usernotexists");
106: }
107: } catch (Exception e) {
108: log.error(e.getMessage(), e);
109: Messages.addLocalizedError("errors.action.savesysmess");
110: }
111: } else {
112: return "login";
113: }
114:
115: return null;
116: }
117: }
|