📄 directoryview.java
字号:
Directory dir = new Directory();
Vector children = dir.getChildren(leaf.getCode());
int size = children.size();
if (size == 0)
return;
int i = 0;
Iterator ri = children.iterator();
while (ri.hasNext()) {
Leaf childlf = (Leaf) ri.next();
ShowDirectoryAsOptionsWithCode(out, childlf, rootlayer);
}
}
public void ListFunc(HttpServletRequest request, JspWriter out, String target, String func, String tableClass, String tableClassMouseOn) throws Exception {
ListTreeFunc(request, out, rootLeaf, true, target, func, tableClass, tableClassMouseOn);
}
/**
* 树的节点在显示时,使用超链接href='func(deptCode)'
* @param out JspWriter
* @param leaf DeptDb
* @param isLastChild boolean
* @param target String
* @param func String JS中的函数名称
* @param tableClass String
* @param tableClassMouseOn String
* @throws Exception
*/
void ListTreeFunc(HttpServletRequest request, JspWriter out, Leaf leaf,
boolean isLastChild, String target, String func, String tableClass, String tableClassMouseOn) throws Exception {
ShowLeafFunc(request, out, leaf, isLastChild, target, func, tableClass, tableClassMouseOn);
Directory dir = new Directory();
Vector children = dir.getChildren(leaf.getCode());
int size = children.size();
if (size == 0)
return;
int i = 0;
if (size > 0)
out.print("<table id='childoftable" + leaf.getCode() +
"' cellspacing=0 cellpadding=0 width='100%' align=center><tr><td>");
Iterator ri = children.iterator();
// 写跟贴
while (ri.hasNext()) {
i++;
Leaf childlf = (Leaf) ri.next();
boolean isLastChild1 = true;
if (size != i)
isLastChild1 = false;
ListTreeFunc(request, out, childlf, isLastChild1, target, func, tableClass, tableClassMouseOn);
}
if (size > 0)
out.print("</td></tr></table>");
}
void ShowLeafFunc(HttpServletRequest request, JspWriter out, Leaf leaf,
boolean isLastChild, String target, String func, String tableClass, String tableClassMouseOn) throws Exception {
String code = leaf.getCode();
String name = leaf.getName();
int layer = leaf.getLayer();
String description = leaf.getDescription();
if (!isLastChild) {
Leaf brotherleaf = leaf.getBrother("down");
// System.out.println("brother=" + brotherleaf);
// 如果兄弟结点存在
if (brotherleaf != null) {
// 取其所有的孩子结点
Vector r = new Vector();
leaf.getAllChild(r, leaf);
int count = r.size();
if (count>0) {
UprightLineNode uln = new UprightLineNode(layer, count);
// System.out.println(leaf.getCode() + " layer=" + layer +
// " count=" + count);
UprightLineNodes.addElement(uln);
}
}
}
int childcount = leaf.getChildCount();
// System.out.println(code + " childcount=" + childcount);
String tableid = "table" + leaf.getCode();
out.println("<table id=" + tableid + " name=" + tableid + " class='" + tableClass + "' cellspacing=0 cellpadding=0 width='100%' align=center onMouseOver=\"this.className='" + tableClassMouseOn + "'\" onMouseOut=\"this.className='" + tableClass + "'\" border=0>");
out.println(" <tbody><tr>");
out.println(" <td height='13' align=left nowrap>");
// for (int k = 1; k <= layer - 1; k++) {
for (int k = rootLeaf.getLayer(); k <= layer - 1; k++) {
boolean isShowed = false;
Iterator ir = UprightLineNodes.iterator();
while (ir.hasNext()) {
UprightLineNode node = (UprightLineNode) ir.next();
//如果在K层上存在一个竖线结点则画出
if (node.getLayer() == k) {
node.show(out, "images/i_plus-2.gif");
if (node.getCount() == 0) {
UprightLineNodes.remove(node);
//System.out.println("Remove " + node);
}
isShowed = true;
break;
}
}
if (!isShowed)
out.println("<img src='' width=20 height=1>");
}
if (leaf.getCode().equals(rootLeaf.getCode())) { // 如果是根结点
out.println("<img onClick=\"ShowChild(this, '" + tableid + "')\" src='images/i_puls-root.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
} else {
if (isLastChild) { // 是最后一个孩子结点
if (childcount > 0)
out.println("<img onClick=\"ShowChild(this, '" + tableid + "')\" src='images/i_plus2-2.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
else
out.println("<img src='images/i_plus-2-3.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
} else { // 不是最后一个孩子结点
if (childcount > 0)
out.println("<img onClick=\"ShowChild(this, '" + tableid + "')\" src='images/i_plus2-1.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
else
out.println("<img src='images/i_plus-2-2.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
}
}
// 三种类型节点,用同一个Link
out.print(
"<a target='" + target + "' href='#' onClick=\"" + func + "('" + code + "', '" + name + "')\">" + name + "</a>");
out.print(" </td>");
out.println(" </tr></tbody></table>");
}
public void ListFuncWithCheckbox(JspWriter out, String target, String func, String tableClass, String tableClassMouseOn) throws Exception {
ListTreeFuncWithCheckbox(out, rootLeaf, true, target, func, tableClass, tableClassMouseOn);
}
/**
* 树的节点在显示时,使用超链接href='func(deptCode)'
* @param out JspWriter
* @param leaf DeptDb
* @param isLastChild boolean
* @param target String
* @param func String JS中的函数名称
* @param tableClass String
* @param tableClassMouseOn String
* @throws Exception
*/
void ListTreeFuncWithCheckbox(JspWriter out, Leaf leaf,
boolean isLastChild, String target, String func, String tableClass, String tableClassMouseOn) throws Exception {
ShowLeafFuncWithCheckbox(out, leaf, isLastChild, target, func, tableClass, tableClassMouseOn);
Directory dir = new Directory();
Vector children = dir.getChildren(leaf.getCode());
int size = children.size();
if (size == 0)
return;
int i = 0;
if (size > 0)
out.print("<table id='childoftable" + leaf.getCode() +
"' cellspacing=0 cellpadding=0 width='100%' align=center><tr><td>");
Iterator ri = children.iterator();
// 写跟贴
while (ri.hasNext()) {
i++;
Leaf childlf = (Leaf) ri.next();
boolean isLastChild1 = true;
if (size != i)
isLastChild1 = false;
ListTreeFuncWithCheckbox(out, childlf, isLastChild1, target, func, tableClass, tableClassMouseOn);
}
if (size > 0)
out.print("</td></tr></table>");
}
public void ShowLeafFuncWithCheckbox(JspWriter out, Leaf leaf,
boolean isLastChild, String target, String func, String tableClass, String tableClassMouseOn) throws Exception {
String code = leaf.getCode();
String name = leaf.getName();
int layer = leaf.getLayer();
String description = leaf.getDescription();
if (!isLastChild) {
Leaf brotherleaf = leaf.getBrother("down");
// System.out.println("brother=" + brotherleaf);
// 如果兄弟结点存在
if (brotherleaf != null) {
// 取其所有的孩子结点
Vector r = new Vector();
leaf.getAllChild(r, leaf);
int count = r.size();
if (count>0) {
UprightLineNode uln = new UprightLineNode(layer, count);
// System.out.println(leaf.getCode() + " layer=" + layer +
// " count=" + count);
UprightLineNodes.addElement(uln);
}
}
}
int childcount = leaf.getChildCount();
// System.out.println(code + " childcount=" + childcount);
String tableid = "table" + leaf.getCode();
out.println("<table id=" + tableid + " name=" + tableid + " class='" + tableClass + "' cellspacing=0 cellpadding=0 width='100%' align=center onMouseOver=\"this.className='" + tableClassMouseOn + "'\" onMouseOut=\"this.className='" + tableClass + "'\" border=0>");
out.println(" <tbody><tr>");
out.println(" <td height='13' align=left nowrap>");
// for (int k = 1; k <= layer - 1; k++) {
for (int k = rootLeaf.getLayer(); k <= layer - 1; k++) {
boolean isShowed = false;
Iterator ir = UprightLineNodes.iterator();
while (ir.hasNext()) {
UprightLineNode node = (UprightLineNode) ir.next();
//如果在K层上存在一个竖线结点则画出
if (node.getLayer() == k) {
node.show(out, "images/i_plus-2.gif");
if (node.getCount() == 0) {
UprightLineNodes.remove(node);
//System.out.println("Remove " + node);
}
isShowed = true;
break;
}
}
if (!isShowed)
out.println("<img src='' width=20 height=1>");
}
if (leaf.getCode().equals(rootLeaf.getCode())) { // 如果是根结点
out.println("<img onClick=\"ShowChild(this, '" + tableid + "')\" src='images/i_puls-root.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
} else {
if (isLastChild) { // 是最后一个孩子结点
if (childcount > 0)
out.println("<img onClick=\"ShowChild(this, '" + tableid + "')\" src='images/i_plus2-2.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
else
out.println("<img src='images/i_plus-2-3.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
} else { // 不是最后一个孩子结点
if (childcount > 0)
out.println("<img onClick=\"ShowChild(this, '" + tableid + "')\" src='images/i_plus2-1.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
else
out.println("<img src='images/i_plus-2-2.gif' align='absmiddle'><img src='images/folder_01.gif' align='absmiddle'>");
}
}
// checkbox
if (code.equals(Leaf.CODE_ROOT) || leaf.getType()==leaf.TYPE_BOARD)
out.print("<input type='checkbox' name='" + code + "' value='" + name + "'> ");
// 三种类型节点,用同一个Link
out.print(
"<a target='" + target + "' href='#' onClick=\"" + func + "('" + code + "')\">" + name + "</a>");
out.print(" </td>");
out.println(" </tr></tbody></table>");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -