Package com.exedosoft.plat.ui.jquery.grid

Source Code of com.exedosoft.plat.ui.jquery.grid.GridList

package com.exedosoft.plat.ui.jquery.grid;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Iterator;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.exedosoft.plat.bo.BOInstance;
import com.exedosoft.plat.bo.DOService;
import com.exedosoft.plat.ui.DOFormModel;
import com.exedosoft.plat.ui.DOGridModel;
import com.exedosoft.plat.ui.DOIModel;
import com.exedosoft.plat.ui.DOPaneModel;
import com.exedosoft.plat.ui.DOViewTemplate;
import com.exedosoft.plat.util.DOGlobals;
import com.exedosoft.plat.util.StringUtil;

/**
* @author aa
*/
public class GridList extends DOViewTemplate {

  private static Log log = LogFactory.getLog(GridList.class);

  public GridList() {
    this.templateFile = "grid/GridList.ftl";
  }

  public Map<String, Object> putData(DOIModel doimodel) {

    DOGridModel gm = (DOGridModel) doimodel;
    if (gm.getService() == null) {
      return null;
    }
    Map<String, Object> data = super.putData(doimodel);
    data.put("data", getListData(gm, data));
    if (gm.getContainerPane() != null) {
      data.put("pmlName", gm.getContainerPane().getName());
    }
    String formName =  "a" + gm.getObjUid();


    if (gm.getContainerPane() != null
        && gm.getContainerPane().getParent() != null) {

      // //自动判断条件面板
      List children = gm.getContainerPane().getParent()
          .retrieveChildren();

      if (children != null && children.size() == 2) {
        DOPaneModel conditionPane = (DOPaneModel) children.get(0);
        DOPaneModel resultModel = (DOPaneModel) children.get(1);
        if (conditionPane != null) {
          if (conditionPane.getDOGridModel() != null) {
            formName = "a"
                + conditionPane.getDOGridModel().getObjUid();
          }
        }

      }
    }
    // //如果配置了查询条件面板(这里的含义是 拥有表单的面板)
    DOPaneModel hpm = null;
    if(gm.getContainerPane()!=null){
      hpm = gm.getContainerPane().getHiddenPane();
    }
    if (hpm != null) {
      if (hpm.getDOGridModel() != null) {
        formName = "a" + hpm.getDOGridModel().getObjUid();
      }
    }
    if(gm.getBottomOutGridFormLinks().size()>0){
      DOFormModel firstFm = (DOFormModel)gm.getBottomOutGridFormLinks().get(0);
      if(firstFm.isHidden()){
        formName = firstFm.getTargetForms();
      }
    }
    data.put("formName",formName);

    return data;
  }

  public static List<BOInstance> getListData(DOGridModel gridModel,
      Map<String, Object> data) {
    List<BOInstance> list;
    int pageNo = 1;
    int pageNum = 0;

    boolean isDirectLink = true;

    if (gridModel.getContainerPane() != null) {
      if (DOGlobals.getInstance().getSessoinContext().getFormInstance() != null
          && !gridModel.getContainerPane().getObjUid()
              .equals(
                  DOGlobals.getInstance().getSessoinContext()
                      .getFormInstance().getValue(
                          "panemodeluid"))) {
        isDirectLink = false;

      }

    }

    if (DOGlobals.getInstance().getSessoinContext().getFormInstance() != null
        && DOGlobals.getInstance().getSessoinContext()
            .getFormInstance().getValue("pageNo") != null) {
      try {
        pageNo = Integer.parseInt(DOGlobals.getInstance()
            .getSessoinContext().getFormInstance().getValue(
                "pageNo"));
      } catch (Exception e) {

      }
    }
    // pageNo = DOGlobals.getInstance().getSessoinContext().splitPageContext
    // .getPageNo(gridModel.getService());
    // log.info("SplitPage Filter Table Get PageNO:::" + pageNo);

    if (gridModel.getRowSize() != null) {
      pageNum = gridModel.getRowSize().intValue();
    }
    if (pageNum <= 0) {

      if ("0".equals(gridModel.getTemplate()) && !isDirectLink) {
        list = new ArrayList();
      } else {
        list = gridModel.getService().invokeSelect();
      }
    } else {
      data.put("rowSize", pageNum);
      int resultSize = gridModel.getService().getResultSize();
      int pageSize = StringUtil.getPageSize(resultSize, pageNum);
      data.put("pageSize", pageSize);
      data.put("resultSize", resultSize);
      data.put("pageNo", pageNo);

      if ("0".equals(gridModel.getTemplate()) && !isDirectLink) {
        list = new ArrayList();
      } else {
        list = gridModel.getService().invokeSelect(pageNo, pageNum);
      }
    }

    // ///处理第二服务(统计用)
    DOService secondService = gridModel.getSecondService();
    if (secondService != null) {
      List secondResult = secondService.invokeSelect();
      if (secondResult.size() > 0) {
        BOInstance statistics = (BOInstance) secondResult.get(0);
        data.put("statistics", statistics.getMap());
        StringBuilder sb = new StringBuilder();
        List<DOFormModel> listFm = gridModel
            .getStatisticOutGridFormLinks();
        if (listFm != null && listFm.size() > 0) {
          for (Iterator<DOFormModel> it = listFm.iterator(); it
              .hasNext();) {
            DOFormModel aFm = it.next();
            aFm.setData(statistics);
            sb.append("&nbsp;&nbsp;&nbsp;&nbsp;").append(
                aFm.getL10n()).append(":").append(
                aFm.getValue()).append(
                "&nbsp;&nbsp;&nbsp;&nbsp;");
          }
        }
        data.put("statistics_details", sb.toString());

      }
    }

    return list;
  }

}
TOP

Related Classes of com.exedosoft.plat.ui.jquery.grid.GridList

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.