Package org.xdams.managing.command

Source Code of org.xdams.managing.command.MultiModRenumberCommand

package org.xdams.managing.command;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.ui.ModelMap;
import org.xdams.conf.master.ConfBean;
import org.xdams.manager.conf.MultiEditingManager;
import org.xdams.page.view.bean.ManagingBean;
import org.xdams.user.bean.UserBean;
import org.xdams.utility.RenumberUtils;
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 MultiModRenumberCommand {

  private Map<String, String[]> parameterMap = null;

  private ModelMap modelMap = null;

  public MultiModRenumberCommand(Map<String, String[]> parameterMap, ModelMap modelMap) throws Exception {
    this.parameterMap = parameterMap;
    this.modelMap = modelMap;
  }

  public ManagingBean execute() throws Exception {
    XWConnection xwconn = null;
    ConnectionManager connectionManager = new ConnectionManager();
    ConfBean confBean = null;
    ManagingBean managingBean = null;
    String physDoc =  MyRequest.getParameter("physDoc", parameterMap);//myRequest.getParameter("physDoc");
    String makeAction = MyRequest.getParameter("makeAction", parameterMap);//myRequest.getParameter("makeAction");
    String codiceId = MyRequest.getParameter("codiceId", parameterMap);//myRequest.getParameter("codiceId");
    String numZeri = MyRequest.getParameter("numZeri", parameterMap);//myRequest.getParameter("numZeri");
    String theValue = MyRequest.getParameter("theValue", parameterMap);//myRequest.getParameter("theValue");
    String applyTo = MyRequest.getParameter("applyTo", parameterMap);//myRequest.getParameter("applyTo");
    String selid = MyRequest.getParameter("selid", parameterMap);//myRequest.getParameter("selid");
    boolean countBlock = false;
    try {
      if (MyRequest.getParameter("countBlock", parameterMap).equals("on")) {
        countBlock = true;
      }
    } catch (Exception e) {
      // TODO: handle exception
    }
    HttpSession httpSession = null; //aReq.getSession(false);
    List<String> confControl = new ArrayList<String>();
    confControl.add("titleManager");
    confControl.add("docEdit");
    try {

      managingBean = new ManagingBean();
      UserBean userBean = (UserBean) modelMap.get("userBean");
      confBean = (ConfBean) modelMap.get("confBean");
      WorkFlowBean workFlowBean = (WorkFlowBean) modelMap.get("workFlowBean");
      httpSession = workFlowBean.getRequest().getSession(false);
      xwconn = connectionManager.getConnection(workFlowBean.getArchive());

      MultiEditingManager editingManager = new MultiEditingManager(parameterMap, confBean, userBean, workFlowBean);
      editingManager.setTheXML(new XMLBuilder(xwconn.getSingleXMLFromNumDoc(Integer.parseInt(physDoc)), "ISO-8859-1"));
      confBean = editingManager.rewriteMultipleConf(confControl);
      managingBean.setSelid(selid);
      if (!physDoc.equals("") && makeAction.equals("true")) { // DO
        managingBean.setPhysDoc(Integer.parseInt(physDoc));
        ArrayList elementiNum = new ArrayList();
        if (applyTo.equals("selected") || applyTo.equals("prevSibling") || applyTo.equals("nextSibling")) {
          if (applyTo.equals("nextSibling")) {
            int theBrother = managingBean.getPhysDoc();
            RenumberUtils.Renumber rn = RenumberUtils.getSiblingRenumber(theValue, 1);
            while (theBrother > 0) {
              theBrother = xwconn.getNumDocNextBrother(theBrother);
              if (theBrother > 0) {
                Object[] value = new Object[2];
                value[0] = new Integer(theBrother);
                value[1] = rn.renumber();
                elementiNum.add(value);
              }
            }
          } else if (applyTo.equals("prevSibling")) {
            int theBrother = managingBean.getPhysDoc();
            RenumberUtils.Renumber rn = RenumberUtils.getSiblingRenumber(theValue, -1, Integer.parseInt(numZeri));
            while (theBrother > 0) {
              theBrother = xwconn.getNumDocPreviousBrother(theBrother);
              if (theBrother > 0) {
                Object[] value = new Object[2];
                value[0] = new Integer(theBrother);
                value[1] = rn.renumber();
                // elementiNum.add(new Integer(theBrother));
                elementiNum.add(value);
              }
            }
          } else {// DA SELEZIONE MULTIPLA
            RenumberUtils.Renumber rn = RenumberUtils.getSiblingRenumber(theValue, 1, Integer.parseInt(numZeri));
            ArrayList elementiNumTemp = ((ManagingBean) httpSession.getAttribute(workFlowBean.getManagingBeanName())).getListPhysDoc();
            for (int i = 0; i < elementiNumTemp.size(); i++) {
              Object[] value = new Object[2];
              value[0] = (Integer) (elementiNumTemp.get(i));
              value[1] = rn.renumber();
              elementiNum.add(value);
            }
          }
        } else {
          it.highwaytech.db.QueryResult qr = null;
          if (applyTo.equals("selid")) {
            qr = xwconn.getQRFromSelId(selid);
            RenumberUtils.Renumber rn = RenumberUtils.getSiblingRenumber(theValue, 1, Integer.parseInt(numZeri));

            for (int z = 0; z < qr.elements; z++) {
              int theNumber = xwconn.getNumDocFromQRElement(qr, z);
              Object[] value = new Object[2];
              value[0] = new Integer(theNumber);
              value[1] = rn.renumber();

              elementiNum.add(value);
            }
          } else if (applyTo.equals("sons")) {
            qr = xwconn.getSonsFromNumDoc(managingBean.getPhysDoc());
            RenumberUtils.Renumber rn = RenumberUtils.getSonsRenumber(theValue, Integer.parseInt(numZeri));

            for (int z = 0; z < qr.elements; z++) {
              int theNumber = xwconn.getNumDocFromQRElement(qr, z);
              Object[] value = new Object[2];
              value[0] = new Integer(theNumber);
              value[1] = rn.renumber();

              elementiNum.add(value);
            }
          } else if (applyTo.equals("hier")) {
            RenumberUtils.Renumber rn = RenumberUtils.getHierRenumber(theValue, Integer.parseInt(numZeri));

            qr = xwconn.getQRFromHier(managingBean.getPhysDoc(), true);
            for (int i = 0; i < qr.elements; i++) {
              int theNumber = xwconn.getNumDocFromQRElement(qr, i);
              int tmpLevel = (xwconn.getHierPath(theNumber)).depth();
              System.out.println("MultiModRenumberCommand.execute() " + tmpLevel);
              Object[] value = new Object[2];
              value[0] = new Integer(theNumber);
              value[1] = rn.renumber(tmpLevel, countBlock);
              elementiNum.add(value);
            }
          }
        }
        managingBean.setNumElementi(elementiNum.size());
        managingBean.setTitle((xwconn.getTitle(xwconn.connection, xwconn.getTheDb(), Integer.parseInt(physDoc))).getTitle());
        managingBean.setDispatchView("multiModResult");
        int totElementi = elementiNum.size();
        int processati = 0;
        int errori = 0;
        // HashMap laMappa = new HashMap();
        for (int i = 0; i < totElementi; i++) {
          int docCorrente = 0;
          try {
            docCorrente = ((Integer) (((Object[]) elementiNum.get(i))[0])).intValue();
          } catch (Exception e) {
            docCorrente = (Integer.parseInt((String) elementiNum.get(i)));
          }
          try {
             String docXML = xwconn.getSingleXMLFromNumDoc(docCorrente);
            XMLBuilder xmlBuilder = new XMLBuilder(docXML, "ISO-8859-1");
            String codiceGenerato = ((String) (((Object[]) elementiNum.get(i))[1]));
            xmlBuilder.insertValueAt(codiceId, codiceGenerato);
            xwconn.executeUpdateByDocNumber(xmlBuilder.getXML("ISO-8859-1"), docCorrente);
            processati++;
          } catch (Exception e) {
            managingBean.addErrorMsg(e.getMessage());
            errori++;
          }
        }
        managingBean.setDocSuccessi(processati);
        managingBean.setDocErrori(errori);
      }
      modelMap.put("confBean", confBean);
      modelMap.put("managingBean", managingBean);
    } catch (Exception e) {
      e.printStackTrace();
      modelMap.put("confBean", confBean);
      modelMap.put("managingBean", managingBean);
      throw new Exception(e.toString());
    } finally {
      connectionManager.closeConnection(xwconn);
    }
    return managingBean;
  }
}
TOP

Related Classes of org.xdams.managing.command.MultiModRenumberCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.