📄 staffcfg.java
字号:
package com.dreamtel.rightCtrl.staff;
import com.dreamtel.db.dbresult.DBResultset;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.Vector;
import com.dreamtel.db.conn.*;
import com.dreamtel.rightCtrl.menuright.*;
/**
* Title:menuCfgnew
* Description:读写菜单配置文件(递归),不限制菜单级别
* Copyright: Copyright (c) 2004
* Company:dreamtel
* @author weij
* @modify: weij
* @date: 20040528
* @version 1.1
*/
public class staffCfg
{
private String strPropName="menu.prop";//配置文件明
private dbConnect DBConn=null;//数据库链接
private DBResultset rs=null;//结果集
private menu[] mStru=null;//菜单结构数组
private String defaultLink="/TaglibWebProject/no_link.jsp";//默认链接
private menu tmenu=new menu();//菜单树
private Vector vmenu;//所有的节点信息矢量集合
private String strFilePath="config\\\\menucfg.prop"; //配置文件路径,位于1000/config中
private StringBuffer retMenuscript_buffer=new StringBuffer();//返回页面的SCRIPT语句
private Vector searchtree=null;//查找的分支
private Vector vSQL=null;//返回的sql集合
private String conn_code=null;
public staffCfg(String conn_code)
{
this.conn_code = conn_code;
}
public Vector getVmenu()
{
return this.vmenu;
}
/** @todo 从员工列表中所有数据 ALL_STAFF_RIGHTITEM */
public String LoadAllStaffData()
{
dbConnect dbconn= new dbConnect(conn_code);
try {
dbconn.runProc("EXEC PR_CREATE_STAFF", null);
}
catch (Exception ex) {
ex.printStackTrace();
}
int ret=this.ReadAllStaffData();
if(ret==1)
{
tmenu.setStrName("没有员工信息"); //初始化根
retMenuscript_buffer.append("foldersTree = gFld(\"<font color='red' size='2.5pt'>");
retMenuscript_buffer.append(tmenu.getStrName());
retMenuscript_buffer.append("</font>\", \"\")\n");
}
else
{
vmenu = new Vector();
vmenu = new Vector();
for (int i = 0; i < mStru.length; i++) { //初始化矢量集合
if (mStru[i].getStrLink() == null || mStru[i].getStrLink().equals(""))
mStru[i].setStrLink(defaultLink);
vmenu.add(mStru[i]);
}
String strtmp = "所有员工列表";
tmenu.setStrName(strtmp); //初始化根
retMenuscript_buffer.append("foldersTree = gFld(\"<font size='2.5pt'>");
retMenuscript_buffer.append(tmenu.getStrName());
retMenuscript_buffer.append("</font>\", \"\")\n");
//System.out.println("初始化树");
initMenu(tmenu, "0", vmenu); //初始化菜单树
viewMenuAll(tmenu.sub); //遍历菜单树,生成返回的脚本
}
return retMenuscript_buffer.toString();
}
/**
* 读取所有数据权限
* @return int 成功为1,不成功为0
*/
public int ReadAllStaffData()
{
int ret=0;
String sql="select * from ALL_STAFF_RIGHTITEM order by INTID";
dbConnect dbconn0 = new dbConnect(conn_code);
try{
rs=dbconn0.runQuery(sql);
int iRow=rs.getRowSize();
if(iRow==0) return ret=1;
int i=0;
mStru=new menu[iRow];
while(rs.moveNext()){
mStru[i]=new menu();
mStru[i].setStrName(rs.fieldByName("STRNAME"));
mStru[i].setStrID(rs.fieldByName("INTID"));
mStru[i].setStrGrade(rs.fieldByName("GRADE"));
mStru[i].setStrParentId(rs.fieldByName("PARENT_ID"));
mStru[i].setStrLink("");
mStru[i].setStrType(rs.fieldByName("INTKEY"));
mStru[i].setStrMem(rs.fieldByName("STRMEM"));
i++;
}
}
catch(Exception e)
{
e.printStackTrace();
}
return ret;
}
/**
* 菜单遍历(无权限判断)
* 递归程序
* @menusub 子节点的集合
*/
public void viewMenuAll(Vector menusub)
{
menu temp=null;//获得节点信息的临时变量
for(int i=0;i<menusub.size();i++)
{
temp = (menu)menusub.elementAt(i);//获得一个节点
if(temp.sub!=null)//判断是否又子节点,如果有则递归
{
if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
{
retMenuscript_buffer.append("id_");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("=insFld(foldersTree, gFld(\"");
retMenuscript_buffer.append(temp.getStrName());
retMenuscript_buffer.append("\",\"javascript:parent.basefrm.basefrm.initValue(");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrMem());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrTpye());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrGrade());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append("\\\")");
retMenuscript_buffer.append("\"))\n");;
}
else
{
retMenuscript_buffer.append("id_");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("=insFld(id_");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append(", gFld(\"");
retMenuscript_buffer.append(temp.getStrName());
retMenuscript_buffer.append("\",\"javascript:parent.basefrm.basefrm.initValue(");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrMem());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrTpye());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrGrade());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append("\\\")");
retMenuscript_buffer.append("\"))\n"); //去掉注释即调试用
}
viewMenuAll(temp.sub);
}
else//无子节点
{
if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
{
retMenuscript_buffer.append("id_");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("=insFld(foldersTree, gFld(\"");
retMenuscript_buffer.append(temp.getStrName());
retMenuscript_buffer.append("\",\"javascript:parent.basefrm.basefrm.initValue(");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrMem());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrTpye());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrGrade());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append("\\\")");
retMenuscript_buffer.append("\"))\n");;
/*
retMenuscript_buffer.append("id_");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("=insDoc(foldersTree, gLnk(\"S\",\"");
retMenuscript_buffer.append(temp.getStrName());
retMenuscript_buffer.append("\",\"javascript:parent.basefrm.initValue(");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrMem());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrTpye());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrGrade());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append("\\\\\\')");
retMenuscript_buffer.append("\"))\n"); */
}
else{
if (!temp.getStrMem().equalsIgnoreCase("44") &&
!temp.getStrMem().equalsIgnoreCase("11") &&
!temp.getStrMem().equalsIgnoreCase("22") &&
!temp.getStrMem().equalsIgnoreCase("99")
) {
retMenuscript_buffer.append("id_");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("=insFld(id_");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append(", gFld(\"");
retMenuscript_buffer.append(temp.getStrName());
retMenuscript_buffer.append(
"\",\"javascript:parent.basefrm.basefrm.initValue(");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrMem());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrTpye());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrGrade());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("\\\",");
retMenuscript_buffer.append("\\\"");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append("\\\")");
retMenuscript_buffer.append("\"))\n"); //去掉注释即调试用
}
else {
retMenuscript_buffer.append("id_");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("=insDoc(id_");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append(", gLnk(\"S\",\"");
retMenuscript_buffer.append(temp.getStrName());
retMenuscript_buffer.append(
"\",\"javascript:parent.basefrm.initValue(");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrMem());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrTpye());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrGrade());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrID());
retMenuscript_buffer.append("\\\\\\',");
retMenuscript_buffer.append("\\\\\\'");
retMenuscript_buffer.append(temp.getStrParentId());
retMenuscript_buffer.append("\\\\\\')");
retMenuscript_buffer.append("\"))\n");
}
}
}
}
}
/**
* 读取员工权限
* @return String
*/
public String LoadStaffData()
{
createAllRightItem(conn_code);
int ret=this.ReadStaffData();
if(ret==1)
{
tmenu.setStrName("没有员工信息"); //初始化根
retMenuscript_buffer.append("foldersTree = gFld(\"<font color='red' size='2.5pt'>" + //根节点的SCRIPT
tmenu.getStrName() + "</font>\", \"\")\n");
}
else
{
vmenu = new Vector();
for (int i = 0; i < mStru.length; i++) { //初始化矢量集合
if (mStru[i].getStrLink() == null || mStru[i].getStrLink().equals(""))
mStru[i].setStrLink(defaultLink);
vmenu.add(mStru[i]);
}
String strtmp="所有员工列表";
tmenu.setStrName(strtmp); //初始化根
retMenuscript_buffer.append("foldersTree = gFld(\"<font size='2.5pt'>" + //根节点的SCRIPT
tmenu.getStrName() + "</font>\", \"\")\n");
//System.out.println("初始化树");
initMenu(tmenu, "0", vmenu); //初始化菜单树
viewMenuAll(tmenu.sub); //遍历菜单树,生成返回的脚本
}
return retMenuscript_buffer.toString();
}
/**
* 查找分支树
* @ id 分支的根的id
*/
public void searchTree(Vector menusub,String id)
{
menu temp=null;//获得节点信息的临时变量
for(int i=0;i<menusub.size();i++)
{
if(searchtree!=null)
{
return;
}
temp = (menu)menusub.elementAt(i);//获得一个节点
if(temp.getStrID().equals(id))//判断该节点是否为所查找的节点
{
searchtree=new Vector();
searchtree.add(temp);
return;
}
if(temp.sub!=null)//判断是否又子节点,如果有则递归
{
searchTree(temp.sub,id);//递归调用
}
}
}
/**
* 判断某一节点是否有子节点
* @id 节点id
*/
public boolean isHaveLeaf(String id)
{
menu tmp=null;
for(int i=0;i<vmenu.size();i++)
{
tmp=(menu)vmenu.elementAt(i);
if(tmp.getStrParentId().equals(id))
{
return true;
}
}
return false;
}
/**
* 初始化menu
* 递归算法,为树型菜单初始化,为其添加叶子
* @menuIn 被初始化的节点
* @parent_id 被初始化的节点的id
* @vmenuIn 未被初始化的节点
*/
public void initMenu(menu menuIn,String id,Vector vmenuIn)
{
menu temp=null;//获得节点信息的临时变量
for(int i=0;i<vmenuIn.size();i++)
{
temp=(menu)vmenuIn.elementAt(i);//获得一个未被初始化的节点
if(menuIn.sub==null) //如果该节点的叶子未初始化
{
menuIn.initSub();
}
if(temp.getStrParentId().equals(id))//如果获得的未被初始化的节点是叶子节点
{
menuIn.sub.add(temp);//添加叶子节点
vmenuIn.remove(i); //去掉处理过的节点
if(isHaveLeaf(temp.getStrID()))//判断节点是否有叶子节点
{
initMenu(temp,temp.getStrID(),vmenuIn);//递归,初始化其叶子
}
i--;//去掉节点后,计数器-1
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -