TaskModificationView.java 2.27 KB
package fi.codecrew.moya.web.cdiview.actionlog;

import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;

import fi.codecrew.moya.beans.ActionLogBeanLocal;
import fi.codecrew.moya.enums.ActionLogMessageState;
import fi.codecrew.moya.enums.apps.ContentPermission;
import fi.codecrew.moya.model.ActionLogMessage;
import fi.codecrew.moya.model.ActionLogMessageResponse;
import fi.codecrew.moya.web.cdiview.GenericCDIView;

@Named
@ConversationScoped
public class TaskModificationView extends GenericCDIView {
	/**
	 * 
	 */
	private static final long serialVersionUID = 938879097893244897L;
	private Integer id;
	private ActionLogMessage message;
	private List<ActionLogMessageResponse> responses;
	private String responseMessage;
	private ActionLogMessageState responseStateChange;

	@EJB
	private transient ActionLogBeanLocal logbean;

	public void initView() {
		if (super.requirePermissions(ContentPermission.MANAGE_ACTIONLOG) && message == null) {
			super.beginConversation();
			message = logbean.find(id);
		}
	}

	public String createResponse() {
		if (responseStateChange == null || responseStateChange == message.getState())
			logbean.addActionLogMessageResponse(message, responseMessage, null);
		else {
			logbean.addActionLogMessageResponse(message, responseMessage, responseStateChange);
			if (responseStateChange != message.getState()) {
				this.message = logbean.find(id);
			}
		}
		responseMessage = "";
		responseStateChange = null;
		return null;
	}

	public List<ActionLogMessageResponse> getResponses() {
		responses = logbean.getActionLogMessageResponses(message);
		return responses;
	}

	public ActionLogMessage getMessage() {
		return message;
	}

	public Integer getId() {
		return id;
	}

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

	public String getResponseMessage() {
		return responseMessage;
	}

	public void setResponseMessage(String responseMessage) {
		this.responseMessage = responseMessage;
	}

	public ActionLogMessageState getResponseStateChange() {
		return responseStateChange;
	}

	public void setResponseStateChange(ActionLogMessageState responseStateChange) {
		this.responseStateChange = responseStateChange;
	}

}