package org.xdams.page.command;
import it.highwaytech.db.QueryResult;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.ui.ModelMap;
import org.xdams.conf.master.ConfBean;
import org.xdams.manager.conf.MultiEditingManager;
import org.xdams.page.view.bean.ViewBean;
import org.xdams.user.bean.UserBean;
import org.xdams.utility.XMLCleaner;
import org.xdams.utility.request.MyRequest;
import org.xdams.workflow.bean.WorkFlowBean;
import org.xdams.xml.builder.XMLBuilder;
import org.xdams.xmlengine.connection.manager.ConnectionManager;
import org.xdams.xw.XWConnection;
public class InfoTabCommand {
private Map<String, String[]> parameterMap = null;
private ModelMap modelMap = null;
public InfoTabCommand(Map<String, String[]> parameterMap, ModelMap modelMap) throws Exception {
this.parameterMap = parameterMap;
this.modelMap = modelMap;
}
public void execute() throws Exception {
XWConnection xwconn = null;
ConnectionManager connectionManager = new ConnectionManager();
ConfBean confBean = null;
ViewBean viewBean = null;
// String physDoc = MyRequest.getParameter("physDoc", parameterMap);
// String selid = MyRequest.getParameter("selid", parameterMap);
// String totSelid = MyRequest.getParameter("totSelid", parameterMap);
// String pos = MyRequest.getParameter("pos", parameterMap);
// HttpSession httpSession = aReq.getSession(false);
// questa lista pu� essere presa da un file di configurazione
List<String> confControl = new ArrayList<String>();
confControl.add("presentation");
confControl.add("titleManager");
confControl.add("valoriControllati");
confControl.add("media");
try {
UserBean userBean = (UserBean) modelMap.get("userBean");
confBean = (ConfBean) modelMap.get("confBean");
WorkFlowBean workFlowBean = (WorkFlowBean) modelMap.get("workFlowBean");
viewBean = new ViewBean();
xwconn = connectionManager.getConnection(workFlowBean.getArchive());
XMLBuilder theXMLDoc = null;
String idCode = MyRequest.getParameter("idCode", parameterMap);
String queryFix = MyRequest.getParameter("queryFix", parameterMap);
String physDoc = MyRequest.getParameter("physDoc", parameterMap);
queryFix = "" + queryFix + "=\"" + idCode + "\"";
if (!physDoc.equals("")) {
viewBean.setPhysDoc(Integer.parseInt(physDoc));
} else {
int docNumber = xwconn.getNumDocFromQRElement(xwconn.getQRfromPhrase(queryFix), 0);
viewBean.setPhysDoc(docNumber);
}
viewBean.setDocXml(XMLCleaner.clearXwXML(xwconn.getSingleXMLFromNumDoc(viewBean.getPhysDoc()), true));
theXMLDoc = new XMLBuilder(viewBean.getDocXml(), "ISO-8859-1");
viewBean.setXmlBuilder(theXMLDoc);
viewBean.setHierPath(xwconn.getHierPath(viewBean.getPhysDoc()));
MultiEditingManager editingManager = new MultiEditingManager(parameterMap, confBean, userBean, workFlowBean);
editingManager.setTheXML(viewBean.getXmlBuilder());
confBean = editingManager.rewriteMultipleConf(confControl);
} catch (Exception e) {
e.printStackTrace();
throw new Exception(e.toString());
} finally {
modelMap.put("viewBean", viewBean);
connectionManager.closeConnection(xwconn);
}
}
}