<summary>
System cache, storing global variables
</summary>
public static Class Caches
{
#region Menu
private static list<feature> M_menu = null;
Public static list<feature> allmenu
{
Get
{
if (M_menu. IsNull () | | M_menu. Count.equals (0))
{
M_menu = new list<feature> ();
Lock (M_menu)
{
if (M_menu. IsNull () | | M_menu. Count.equals (0))
{
ilist<sysmenu> menulist = Nhbhelper.getcurrentsession (). Createcriteria (typeof (Sysmenu))
. List<sysmenu> ();
greatmenu (null, M_menu, 0,cbf.wms.common.net.converthelper.ilisttolist<sysmenu> (menuList));
}
}
}
return m_menu;
}
}
private static void Greatmenu (object parent, list<feature> table, int level, list<sysmenu> List)
{
Feature Feat=null;
List<sysmenu> tmpmenulist;
Tmpmenulist = list. FindAll (
Delegate (Sysmenu menu)
{return menu. Parentcode ==parent; }
);
List. FindAll (s = S.parentcode ==parent);
foreach (Sysmenu mdl in Tmpmenulist)
{
if (parent = = mdl. Parentcode)
{
feat = new Feature ();
Feat. level = level;
Feat. Id = mdl. Id;
Feat. Name = mdl. Name;
Feat. State = mdl. State;
Feat. URL = mdl. iconic;
if (!mdl. Parentcode.isnull ())
{
Feat. Parent = mdl. Parentcode.id;
}
Feat. Pic = ".. /icons/folder.png ";
Table. ADD (feat);
greatmenu (MDL, table, level + 1, list);
}
}
}
public static void Clearmenu ()
{
M_menu = null;
}
#endregion
}
Recursive menu Simple Application