/* * Copyright (C) 2010---2014 星星(wuweixing)<349446658@qq.com> * * This file is part of Wabacus * * Wabacus is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.wabacus.system.fileupload; import java.io.PrintWriter; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.wabacus.config.Config; import com.wabacus.config.component.IComponentConfigBean; import com.wabacus.config.component.container.page.PageBean; import com.wabacus.exception.WabacusRuntimeException; import com.wabacus.system.buttons.DataImportButton; public class DataImportReportUpload extends AbsFileUpload { private DataImportButton dataImportButtonObj; public DataImportReportUpload(HttpServletRequest request) { super(request); } public void showUploadForm(PrintWriter out) { String pageid=getRequestString("PAGEID",""); String comid=getRequestString("COMPONENTID",""); String buttonname=getRequestString("DATAIMPORT_BUTTONNAME",""); this.dataImportButtonObj=getDataImportButtonObj(pageid,comid,buttonname); out.print("<input type='hidden' name='PAGEID' value='"+pageid+"'/>"); out.print("<input type='hidden' name='COMPONENTID' value='"+comid+"'/>"); out.print("<input type='hidden' name='DATAIMPORT_BUTTONNAME' value='"+buttonname+"'/>"); boolean flag=true; if(this.dataImportButtonObj.getDataimportInterceptorObj()!=null) { interceptorObj=this.dataImportButtonObj.getDataimportInterceptorObj(); Map<String,String> mFormFieldValues=(Map<String,String>)request.getAttribute("WX_FILE_UPLOAD_FIELDVALUES"); request.setAttribute("LST_DATAIMPORT_CONFIGBEANS",this.dataImportButtonObj.getLstDataImportItems()); flag=interceptorObj.beforeDisplayFileUploadInterface(request,mFormFieldValues,out); } if(flag) { out.print(showDataImportFileUpload(this.dataImportButtonObj.getLstDataImportFileNames())); } } public String doFileUpload(List lstFieldItems,PrintWriter out) { String pageid=mFormFieldValues.get("PAGEID"); String comid=mFormFieldValues.get("COMPONENTID"); String buttonname=mFormFieldValues.get("DATAIMPORT_BUTTONNAME"); this.dataImportButtonObj=getDataImportButtonObj(pageid,comid,buttonname); this.interceptorObj=this.dataImportButtonObj.getDataimportInterceptorObj(); return uploadDataImportFiles(lstFieldItems,this.dataImportButtonObj.getLstDataImportItems(),this.dataImportButtonObj.isDataImportAsyn(),out); } private DataImportButton getDataImportButtonObj(String pageid,String comid,String buttonname) { PageBean pbean=Config.getInstance().getPageBean(pageid); if(pbean==null) { throw new WabacusRuntimeException("页面ID:"+pageid+"不存在"); } IComponentConfigBean ccbeanTmp=null; if(comid.equals(pageid)) { ccbeanTmp=pbean; }else { ccbeanTmp=pbean.getChildComponentBean(comid,true); if(ccbeanTmp==null) { throw new WabacusRuntimeException("ID为"+pageid+"的页面下不存在ID为"+comid+"的子组件"); } } DataImportButton buttonObj=(DataImportButton)ccbeanTmp.getButtonsBean().getButtonByName(buttonname); if(buttonObj==null) { throw new WabacusRuntimeException("组件"+ccbeanTmp.getPath()+"下不存在name为"+buttonname+"的数据导入按钮"); } return buttonObj; } public void promptSuccess(PrintWriter out,boolean isArtDialog) { String message=""; if(this.dataImportButtonObj.isDataImportAsyn()) {//异步导入 message="数据文件上传成功"; }else { message="数据文件导入成功!"; } String parentRef=null; if(isArtDialog) { out.println("artDialog.open.origin.wx_success('"+message+"');"); out.println("art.dialog.close();"); parentRef="artDialog.open.origin"; }else { out.println("parent.wx_success('"+message+"');"); out.println("parent.closePopupWin();"); parentRef="parent"; } IComponentConfigBean ccbean=this.dataImportButtonObj.getCcbean(); if(!this.dataImportButtonObj.isDataImportAsyn()) { out.println(parentRef+".refreshComponentDisplay('"+ccbean.getPageBean().getId()+"','"+ccbean.getId()+"',true);"); } } }