⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orgtreeoutput.java

📁 java实现的可配置的工作流引擎,采用jsp+javabean实现
💻 JAVA
字号:
package com.hongsoft.res.util;

import java.util.List;

import com.hongsoft.res.formbean.OrgTreeFormBean;

/**
 * <p>Title: 将OrgTreeFormBean转换为tree的HTMLE字符专用类</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author zgk
 * @version 1.0
 */

public class OrgTreeOutput {
  public static void main(String[] args) {
  }

  private static String IMG_SRC_LINKEDCLOSE = "<IMG SRC='/agile/images/linkedClose.gif' name=\"imEx\" BORDER=0>";
  private static String IMG_SRC_BLANK = "<IMG SRC='/agile/images/blank.gif' BORDER=0>\n";
  private static String IMG_SRC_PAGE = "<IMG SRC='/agile/images/page.gif' name=\"imEx\" BORDER=0>";
  private static String BASE_URL = "/agile/res/orgBean.jsp?cmdName=orgCmd&cmdType=load&returnView=facade&orgID=";

  /**
   * 功能:将orgTreeFormBean转换为树形的HTML字符串,前<br>
   * 参数:<br>
   * 作者:庄国坤<br>
   * 时间:2003-11-12 16:36:31<br>
   * 测试:<br>
   */
  public static String getAllTreeHtml(OrgTreeFormBean orgTreeFormBean) throws Exception {
    StringBuffer retSB = new StringBuffer();
    retSB.append("<div id='").append(orgTreeFormBean.getOrgID()).append(
	"Parent' class='parent'>\n");

    retSB.append("<a href=\"#\" onClick=\"expandIt('K").append(getNextNodeOrgID(orgTreeFormBean)).append(
	"'); return false\">").append(IMG_SRC_LINKEDCLOSE).append("</a>\n");

    retSB
	.append("<a href='").append(BASE_URL)
	.append(orgTreeFormBean.getOrgID())
	.append("' target='mainFrame'>")
	.append(orgTreeFormBean.getName())
	.append("</a> <br>\n"); //从此处开始计算DIV,递归是从DIV开始的
    //层次结构是与IMG来区分的
    retSB = getTreeHtml(orgTreeFormBean, retSB, new String());
    retSB.append("</div>");
    return retSB.toString();
  }

  /**
   * 功能:递归将orgTreeFormBean子节点信息转换为树形的HTML字符串<br>
   * 参数:<br>
   * 作者:庄国坤<br>
   * 时间:2003-11-12 16:35:28<br>
   * 测试:<br>
   */
  private static StringBuffer getTreeHtml(OrgTreeFormBean orgTreeFormBean, StringBuffer retSB, String imgSB) throws
      Exception {
    String childID = getNextNodeOrgID(orgTreeFormBean);
    if (childID.equals("-1")) { //没有子节点
      return retSB;
    }
    retSB.append("<div id='K")
	.append(childID)
	.append("Child' class='child'>\n");
    imgSB = imgSB + IMG_SRC_BLANK;

    List listChildReen = orgTreeFormBean.getChildrenTree();
    String parentID = String.valueOf(orgTreeFormBean.getOrgID()); //父节点ID
    for (int i = 0; i < listChildReen.size(); i++) {
      OrgTreeFormBean childOrgTreeFormBean = (OrgTreeFormBean) listChildReen.get(i);
      retSB.append(imgSB);
      childID = getNextNodeOrgID(childOrgTreeFormBean);
      if (!childID.equals("-1")) { //探测是否有子节点
	retSB.append("<a href=\"#\" onClick=\"expandIt('K")
	    .append(childID)
	    .append("'); return false\">").append(IMG_SRC_LINKEDCLOSE).append("</a>\n");
	retSB.append("<a href='").append(BASE_URL)
	    .append(childOrgTreeFormBean.getOrgID()).append("&parentID=").append(parentID)
	    .append("' target='mainFrame' >");
      } else {
	retSB.append("<a href='").append(BASE_URL)
	    .append(childOrgTreeFormBean.getOrgID()).append("&parentID=").append(parentID)
	    .append("' target='mainFrame' >").append(IMG_SRC_PAGE);
      }
      retSB.append(childOrgTreeFormBean.getName())
	  .append("</a><br>\n");
      retSB = getTreeHtml(childOrgTreeFormBean, retSB, imgSB); //开始递归
    }
    retSB.append("</div>\n");
    return retSB;
  }

  /**
   * 功能:返回当前节点的第一个子节点的ORGID,如果没有子节点,则返回-1,调用者根据此来判断是否有子节点<br>
   * 参数:orgTreeFormBean:OrgTreeFormBean,当前节点<br>
   * 作者:庄国坤<br>
   * 时间:2003-11-12 11:38:45<br>
   * 测试:<br>
   */
  private static String getNextNodeOrgID(OrgTreeFormBean orgTreeFormBean) throws Exception {
    List listChild = orgTreeFormBean.getChildrenTree();
    if (listChild == null || listChild.size() == 0) {
      return "-1"; //调用者根据是否为-1来判断是否存在子节点
    }
    OrgTreeFormBean childOrgTreeFormBean = (OrgTreeFormBean) listChild.get(0);
    return String.valueOf(childOrgTreeFormBean.getOrgID());
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -