/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.plugin.report.manager.web;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.ewcms.common.query.jpa.EntityQueryable;
import com.ewcms.common.query.jpa.QueryFactory;
import com.ewcms.plugin.BaseException;
import com.ewcms.plugin.report.manager.ReportFacable;
import com.ewcms.plugin.report.model.Parameter;
import com.ewcms.security.manage.model.User;
import com.ewcms.web.CrudBaseAction;
import com.ewcms.web.util.JSONUtil;
import com.ewcms.web.util.Struts2Util;
import com.ewcms.web.vo.ComboBoxString;
/**
*
* @author wuzhijun
*
*/
public class ParameterAction extends CrudBaseAction<Parameter, Long>{
private static final long serialVersionUID = 8488899222887176952L;
@Autowired
private ReportFacable reportFac;
@Autowired
private QueryFactory queryFactory;
private String reportType;
private Long reportId;
private String sessionValue;
public Long getReportId() {
return reportId;
}
public void setReportId(Long reportId) {
this.reportId = reportId;
}
public String getReportType() {
return reportType;
}
public void setReportType(String reportType) {
this.reportType = reportType;
}
public String getSessionValue() {
return sessionValue;
}
public void setSessionValue(String sessionValue) {
this.sessionValue = sessionValue;
}
public List<Long> getSelections() {
return super.getOperatorPK();
}
public void setSelections(List<Long> selections) {
super.setOperatorPK(selections);
}
public Parameter getParameterVo(){
return super.getVo();
}
public void setParameterVo(Parameter parameter){
super.setVo(parameter);
}
@Override
protected Long getPK(Parameter vo) {
return vo.getId();
}
@Override
protected Parameter getOperator(Long pk) {
Parameter parameter = reportFac.findParameterById(pk);
if (parameter.getType() == Parameter.Type.SESSION){
setSessionValue(parameter.getDefaultValue());
}
return parameter;
}
@Override
protected void deleteOperator(Long pk) {
}
@Override
protected Long saveOperator(Parameter vo, boolean isUpdate) {
if (getReportId() != null && vo.getId() != null){
try{
if (vo.getType() == Parameter.Type.SESSION){
vo.setDefaultValue(getSessionValue());
}
if (reportType.equals("text"))
return reportFac.updTextReportParameter(getReportId(), vo);
if (reportType.equals("chart"))
return reportFac.updChartReportParameter(getReportId(), vo);
}catch(BaseException e){
}
}
return null;
}
@Override
protected Parameter createEmptyVo() {
return null;
}
private Long parameterId;
public Long getParameterId() {
return parameterId;
}
public void setParameterId(Long parameterId) {
this.parameterId = parameterId;
}
public void sessionInfo(){
EntityQueryable query = queryFactory.createEntityQuery(User.class);
List<Object> resultList = query.queryResult().getResultList();
List<ComboBoxString> comboBoxUsers = new ArrayList<ComboBoxString>();
ComboBoxString comboBoxUser = null;
for (Object object : resultList){
comboBoxUser = new ComboBoxString();
User user = (User)object;
comboBoxUser.setId(user.getUsername());
comboBoxUser.setText(user.getUserInfo().getName());
if (getParameterId() != null){
Boolean isEntity = reportFac.findSessionIsEntityByParameterIdAndUserName(getParameterId(), user.getUsername());
if (isEntity) comboBoxUser.setSelected(true);
}
comboBoxUsers.add(comboBoxUser);
}
Struts2Util.renderJson(JSONUtil.toJSON(comboBoxUsers.toArray(new ComboBoxString[0])));
}
}