📄 mymenucfg.java
字号:
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
}
}
}
/**
* 菜单遍历
* 递归程序
* @menusub 子节点的集合
*/
public void viewMenu(Vector menusub)
{
menu temp=null;//获得节点信息的临时变量
for(int i=0;i<menusub.size();i++)
{
temp = (menu)menusub.elementAt(i);//获得一个节点
// System.out.println("right="+temp.getStrID());
// operInfo.setRights(conn_code);
// if(operInfo.haveRight(temp.getStrID())==false)//判断该节点的权限
// {
// System.out.println(temp.getStrName()+"无权限");
// continue;
// }
if(temp.sub!=null)//判断是否又子节点,如果有则递归
{
if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
{
retMenuscript_buffer.append("id_"+temp.getStrID()+
"=insFld(foldersTree, gFld(\""+temp.getStrName()+"\",\"javascript:parent.op()\"))\n");
}
else
{
retMenuscript_buffer.append("id_"+temp.getStrID()+
"=insFld(id_"+temp.getStrParentId()+", gFld(\""+temp.getStrName()+"\",\"javascript:parent.op()\"))\n");
}
viewMenu(temp.sub);//递归调用
}
else//无子节点
{
if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
{
retMenuscript_buffer.append("id_"+temp.getStrID()+
"=insDoc(foldersTree, gLnk(\"R\",\""+temp.getStrName()+"\",\""+temp.getStrLink()+"\"))\n");
}
else
{
retMenuscript_buffer.append("id_"+temp.getStrID()+
"=insDoc(id_"+temp.getStrParentId()+", gLnk(\"R\",\""+temp.getStrName()+"\",\""+temp.getStrLink()+"\"))\n");
}
}
}
}
/**
* 菜单遍历(无权限判断)
* 递归程序
* @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_"+temp.getStrID()+
"=insFld(foldersTree, gFld(\""+temp.getStrName()+
"\",\"javascript:parent.basefrm.initValue1("+
"\\\""+temp.getStrName()+"\\\","+"\\\""+
"\\\","+"\\\""+temp.getStrGrade()+
"\\\","+"\\\""+temp.getStrID()+
"\\\","+"\\\""+temp.getStrParentId()+"\\\")"+"\"))\n");
}
else
{
retMenuscript_buffer.append("id_"+temp.getStrID()+
"=insFld(id_"+temp.getStrParentId()+", gFld(\""+temp.getStrName()+
"\",\"javascript:parent.basefrm.initValue1("+
"\\\""+temp.getStrName()+"\\\","+"\\\""+
"\\\","+"\\\""+temp.getStrGrade()+
"\\\","+"\\\""+temp.getStrID()+
"\\\","+"\\\""+temp.getStrParentId()+"\\\")"+"\"))\n"); //去掉注释即调试用
}
viewMenuAll(temp.sub);
}
else//无子节点
{
if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
{
retMenuscript_buffer.append("id_"+temp.getStrID()+
"=insDoc(foldersTree, gLnk(\"S\",\""+temp.getStrName()+
"\",\"javascript:parent.basefrm.initValue1("+
"\\\\\\'"+temp.getStrName()+"\\\\\\',"+"\\\\\\'"+
temp.getStrLink()+"\\\\\\',"+"\\\\\\'"+temp.getStrGrade()+
"\\\\\\',"+"\\\\\\'"+temp.getStrID()+
"\\\\\\',"+"\\\\\\'"+temp.getStrParentId()+"\\\\\\')"+"\"))\n");
}
else
{
retMenuscript_buffer.append("id_"+temp.getStrID()+
"=insDoc(id_"+temp.getStrParentId()+", gLnk(\"S\",\""+temp.getStrName()+
"\",\"javascript:parent.basefrm.initValue1("+
"\\\\\\'"+temp.getStrName()+"\\\\\\',"+"\\\\\\'"+
temp.getStrLink()+"\\\\\\',"+"\\\\\\'"+temp.getStrGrade()+
"\\\\\\',"+"\\\\\\'"+temp.getStrID()+
"\\\\\\',"+"\\\\\\'"+temp.getStrParentId()+"\\\\\\')"+"\"))\n");
}
}
}
}
/**
* 写入菜单配置文件
*/
public void WriteProp(String code, String operid)
{
// this.ReadData();//数据库读取菜单信息
// System.out.println("write prop operis="+operid);
this.ReadMyMenuData(operid);
Properties m_MenuProps = new Properties();//菜单配置属性
if(mStru==null) return;
if(mStru.length==0) return;
for(int i=0;i<mStru.length;i++)//设置 m_MenuProps
{
m_MenuProps.setProperty("Menu"+"_title"+String.valueOf(i+1),convertStr(mStru[i].getStrName()));
m_MenuProps.setProperty("Menu"+"_right"+String.valueOf(i+1),convertStr(mStru[i].getStrID()));
m_MenuProps.setProperty("Menu"+"_grade"+String.valueOf(i+1),convertStr(mStru[i].getStrGrade()));
//m_MenuProps.setProperty("Menu"+"_grade_id"+String.valueOf(i+1),convertStr(mStru[i].getStrGradeId()));
m_MenuProps.setProperty("Menu"+"_parent_id"+String.valueOf(i+1),convertStr(mStru[i].getStrParentId()));
m_MenuProps.setProperty("Menu"+"_link"+String.valueOf(i+1),convertStr(mStru[i].getStrLink()));
}
m_MenuProps.setProperty("MenuCount",String.valueOf(mStru.length));
try{//写入文件
FileOutputStream out =new FileOutputStream(new File(strFilePath+code+operid+".prop"));
// System.out.println("写菜单配置文件:"+strFilePath+operid+".prop");
m_MenuProps.store(out,"menucfg.prop");
out.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public int ReadAllMenuData(String operid)
{
int ret=0;
String sql="select * from MYMENU_RIGHTITEM order by GRADE,INTID ";
DBConn=new dbConnect(conn_code);
try{
rs=DBConn.runQuery(sql,1000);
if(rs==null) return ret=1;
int iRow=rs.getRowSize();
// System.out.println("fdfdsfd ireo="+iRow);
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(rs.fieldByName("MENU_LINK"));
mStru[i].setStrType(rs.fieldByName("STRKEY"));
i++;
}
}
catch(Exception e)
{
e.printStackTrace();
return ret=1;
}
return ret;
}
public int ReadMyMenuData(String operid)
{
int ret=0;
String sql="select * from JH_MYMENU_RIGHTITEM where CUST_STAFF_ID="+operid+"order by GRADE,INTID ";
DBConn=new dbConnect(conn_code);
try{
rs=DBConn.runQuery(sql);
if(rs==null) return ret=1;
int iRow=rs.getRowSize();
// System.out.println("fdfdsfd ireo="+iRow);
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(rs.fieldByName("MENU_LINK"));
mStru[i].setStrType(rs.fieldByName("STRKEY"));
i++;
}
}
catch(Exception e)
{
e.printStackTrace();
return ret=1;
}
return ret;
}
/**
* method-name ReadData
* return menu[]
* 在数据库读取菜单数据存放在变量mStru中
*/
public menu[] ReadData()
{
String sql="select * from CC_RIGHTITEM order by GRADE,INTID";
DBConn=new dbConnect(conn_code);
try{
rs=DBConn.runQuery(sql);
int iRow=rs.getRowSize();
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(rs.fieldByName("MENU_LINK"));
mStru[i].setStrType(rs.fieldByName("STRKEY"));
i++;
}
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
return mStru;
}
/**
* 字符串处理,返回处理过后的字符串
* @str 未处理的字符串
* return String
*/
private String convertStr(String str)
{
if(str==null)
str="";
return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -