コード例 #1
0
void CCheckBoxTreeView::AddDeviceTreeNode(std::string szDeviceID,  WTreeNode* parentNode)
{

    WTreeNode* pNode;
    OBJECT objDevice = GetEntity(szDeviceID);
    if(objDevice != INVALID_VALUE)
    {
        MAPNODE node = GetEntityMainAttribNode(objDevice);
        if(node != INVALID_VALUE)
        {
            string szName = "";

            FindNodeValue(node, "sv_name", szName);

            pNode=makeTreeFile(szName, szDeviceID, Tree_DEVICE, parentNode, false, true, 
               "/Images/cbb-4server.gif", "/Images/cbb-4server.gif");   

            if(bDevice ==true) //树的最后一层是设备
            {
                pNode->expandIcon_->hide();
            }
            else
            {
                if(pNode!=NULL)
                    connect(pNode,SIGNAL(addmonitor()),this, SLOT(ListMonitorInDevice()));			
            }

            //			if(szDeviceID=="1.11")  pTestNode= pNode;
        }
        CloseEntity(objDevice);
    }
}
コード例 #2
0
void CSVSortList::enumDevice(string &szGroupIndex)
{
    list<string> lsDeviceID;
    list<string>::iterator lsItem;
    OBJECT objGroup;

    base_param device;

    if(IsSVSEID(szGroupIndex))
    {
        objGroup = GetSVSE(szGroupIndex, m_szIDCUser, m_szIDCPwd);
        if(objGroup != INVALID_VALUE)
        {
            GetSubEntitysIDBySE(objGroup, lsDeviceID);
            CloseSVSE(objGroup);
        }
    }
    else
    {
        objGroup = GetGroup(szGroupIndex, m_szIDCUser, m_szIDCPwd);
        if(objGroup != INVALID_VALUE)
        {
            GetSubEntitysIDByGroup(objGroup, lsDeviceID);
            CloseGroup(objGroup);
        }
    }

    int nIndex = 0;
    for(lsItem = lsDeviceID.begin(); lsItem != lsDeviceID.end(); lsItem ++)
    {
        string szID = (*lsItem).c_str();
        bool bHasRight = true;
        if(m_pSVUser)
            bHasRight = m_pSVUser->haveGroupRight(szID, Tree_DEVICE);
        if(bHasRight)
        {
            OBJECT objDevice = GetEntity(szID, m_szIDCUser, m_szIDCPwd);
            if(objDevice != INVALID_VALUE)
            {
                MAPNODE node = GetEntityMainAttribNode(objDevice);
                if(node != INVALID_VALUE)
                {
                    string szName (""), szIndex ("");
                    FindNodeValue(node, "sv_name", szName);
                    FindNodeValue(node, "sv_index", szIndex);
                    if(szIndex.empty())
                        nIndex = FindIndexByID(szID);
                    else
                        nIndex = atoi(szIndex.c_str());
                    device.szIndex = szID;
                    device.szName = szName;
                    m_sortList[nIndex] = device;
                }
                CloseEntity(objDevice);
            }
        }
    }
}
コード例 #3
0
//测试用的函数
std::string CCheckBoxTreeView::MyAddNode(std::string name, std::string id, std::string type, std::string index)
{
	std::string strTmp = "";	
	
	OBJECT root;	
	if(type == "1")
		root = CreateGroup();
	else
		root = CreateEntity();
	
	if (root != INVALID_VALUE)
	{
		MAPNODE attr;
		if(type == "1")
			attr = GetGroupMainAttribNode(root);
		else
			attr = GetEntityMainAttribNode(root);


		bool bState = false;
		if(attr != INVALID_VALUE)
		{
			if(AddNodeAttrib(attr, "sv_id", id))
			{
				if(AddNodeAttrib(attr, "sv_type", type))
				{
					bState = AddNodeAttrib(attr, "sv_name", name);
				}
			}
		}
		
		if(bState)
		{
			if(type == "1")
				strTmp = AddNewGroup(root, index);
			else
				strTmp = AddNewEntity(root, index);
		}

		if(type == "1")
			CloseGroup(root);
		else
			CloseEntity(root);			
	}

	return strTmp;
}
コード例 #4
0
void CSVSortList::enumMonitor(string &szDeviceIndex)
{
    OBJECT objDevice = GetEntity(szDeviceIndex,  m_szIDCUser, m_szIDCPwd);
    if(objDevice != INVALID_VALUE)
    {
        list<string> lsMonitorID;
        list<string>::iterator lstItem;
        if (GetSubMonitorsIDByEntity(objDevice, lsMonitorID))
        {
            string szDeviceName ("");
            MAPNODE mainnode = GetEntityMainAttribNode(objDevice);
            if(mainnode != INVALID_VALUE)
                FindNodeValue(mainnode, "sv_name", szDeviceName);
            
            int nIndex = 0;
            base_param monitor;
            for(lstItem = lsMonitorID.begin(); lstItem != lsMonitorID.end(); lstItem ++)
            {
                string szMonitorId = (*lstItem).c_str();
                OBJECT objMonitor = GetMonitor(szMonitorId, m_szIDCUser, m_szIDCPwd);
                if(objMonitor != INVALID_VALUE)
                {
                    MAPNODE node = GetMonitorMainAttribNode(objMonitor);
                    if(node != INVALID_VALUE)
                    {
                        string szName (""), szIndex ("");
                        FindNodeValue(node, "sv_name", szName);
                        FindNodeValue(node, "sv_index", szIndex);
                        if(szIndex.empty())
                            nIndex = FindIndexByID(szMonitorId);
                        else
                            nIndex = atoi(szIndex.c_str());

                        monitor.szIndex = szMonitorId;
                        monitor.szName = szDeviceName + ":" + szName;
                        m_sortList[nIndex] = monitor;
                    }
                    CloseMonitor(objMonitor);
                }
            }
        }
        CloseEntity(objDevice);
    }
}
コード例 #5
0
//根据monitorid获取父设备的名称
string  GetDeviceTitle(string strId)
{
	string strTmp = "";
	string strParentId = FindParentID(strId);

	//设备名称
	OBJECT objDevice = GetEntity(strParentId);
    if(objDevice != INVALID_VALUE)
    {
        MAPNODE devicenode = GetEntityMainAttribNode(objDevice);
        if(devicenode != INVALID_VALUE)
        {
			FindNodeValue(devicenode, "sv_name", strTmp);
		}
		
		CloseEntity(objDevice);
	}

	return strTmp;
}
コード例 #6
0
void CSVSortList::saveDevice(map<int, string, less<int> > &lsDis)
{
    map<int, string, less<int> >::iterator lsDisItem;
    for(lsDisItem = lsDis.begin(); lsDisItem != lsDis.end(); lsDisItem ++)
    {
        string szDeviceID = lsDisItem->second;
        OBJECT objDevice = GetEntity(szDeviceID,  m_szIDCUser, m_szIDCPwd);
        if(objDevice != INVALID_VALUE)
        {
            char szIndex[8] = {0};
            sprintf(szIndex, "%d", lsDisItem->first);
            MAPNODE mainnode = GetEntityMainAttribNode(objDevice);
            if(mainnode != INVALID_VALUE)
                AddNodeAttrib(mainnode, "sv_index", szIndex);

            SubmitEntity(objDevice);
            CloseEntity(objDevice);
        }
    }
}
コード例 #7
0
bool CSVWholeview::enumGroups(const string &szGroupID, WTable *pTable)
{
    bool bShowGroup = false;
	bool gShowGroup = true;//jansion
	bool mShowGroup = true; //jansion
	pTable->setStyleClass("widthauto");
    if(!szGroupID.empty())
    {     
        OBJECT objGroup = GetGroup(szGroupID);
        if(objGroup != INVALID_VALUE)
        { 
			//PrintDebugString("In ------------------------------------\n");
            string szIndex(""), szName(""), szShowIndex(""), szContext("");
            string szShow(""), szHide(""), szSubTable("");
            string szShowText(""), szHideText("");
            bool bHasRight = true;
            int nIndex = 0, nRow = 0; 
            MAPNODE node = INVALID_VALUE;
            list<string> lsGroupID;
            list<string> lsDeviceID;
            list<string>::iterator lstItem;
			//list<string>::iterator bcompItem;

            if(GetSubGroupsIDByGroup(objGroup, lsGroupID))
            {
				
                map<int, base_param, less<int> > sortList;
                map<int, base_param, less<int> >::iterator lsItem;
				map<int, base_param, less<int> >::iterator bcompItem;

				//bool gShow = false;

                base_param group;
                OBJECT objSubGroup = INVALID_VALUE;
                for(lstItem = lsGroupID.begin(); lstItem != lsGroupID.end(); lstItem ++)
                {
					//PrintDebugString("In --------------- for ---------------------\n");
                    szIndex =(*lstItem);
                    bHasRight = true;
                    if(m_pSVUser)
                        bHasRight = m_pSVUser->haveGroupRight(szIndex, Tree_GROUP);
                    if(bHasRight)
                    {
                        objSubGroup = GetGroup(szIndex, m_szIDCUser, m_szIDCPwd);
                        if(objGroup != INVALID_VALUE)
                        {
                            node = GetGroupMainAttribNode(objSubGroup);
                            if(node != INVALID_VALUE)
                            { 
                                FindNodeValue(node, "sv_name", szName);
                                FindNodeValue(node, "sv_index", szShowIndex);
                                if(szShowIndex.empty())
                                    nIndex = FindIndexByID(szIndex);
                                else
                                    nIndex = atoi(szShowIndex.c_str());
                                group.szIndex = szIndex;
                                group.szName = szName;

                                lsItem = sortList.find(nIndex);
                                while(lsItem != sortList.end())
                                {
                                    nIndex ++;
                                    lsItem = sortList.find(nIndex);
                                }
                                sortList[nIndex] = group;
                            }							
							else
							{
								gShowGroup = false;
							}
                            CloseGroup(objSubGroup);
                        }
                    }
					else
					{
						gShowGroup =false;
					}
                }

				//if (lsGroupID.empty())
				//	PrintDebugString("In group is ====== false\n");

                for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                {					
					//PrintDebugString("In emnuGroup " + lsItem->second.szName + "\n");

					//bool gShow = false;

                    nRow = pTable->numRows();
                    //WImage *pShow = new WImage("../Images/foldopen.gif", pTable->elementAt(nRow, 0));
                    //WImage *pHide = new WImage("../Images/foldclose.gif", pTable->elementAt(nRow, 0));
					//if(!enumGroups(lsItem->second.szIndex, pSub))
					//{
                    WImage *pShow = new WImage("/Images/cb1-unwrap.gif", pTable->elementAt(nRow, 0));
                    WImage *pHide = new WImage("/Images/cb1-fold.gif", pTable->elementAt(nRow, 0));
					//}


					new WText("&nbsp;",pTable->elementAt(nRow, 0));

                    //new WImage("../Images/group.gif", pTable->elementAt(nRow, 1));
					new WImage("/Images/cbb-3group.gif", pTable->elementAt(nRow, 1));
					new WText("&nbsp;",pTable->elementAt(nRow, 1));

                    WText *pName = new WText(lsItem->second.szName, pTable->elementAt(nRow, 2));
                    if(pName)
                    {
                        szContext = "onclick='parent.document.frames(\"left\").location.replace(\"/fcgi-bin/menu.exe?cmd=treeview.exe?groupid=" + lsItem->second.szIndex 
                            + "\");' style='color:#669;cursor:pointer;' onmouseover='this.style.textDecoration=\"underline\"'"
                            + "onmouseout='this.style.textDecoration=\"none\"'";
                        sprintf(pName->contextmenu_, szContext.c_str());
                    }
                    WTable * pSub = new WTable(pTable->elementAt(nRow + 1, 2));
                    if(pSub)
                    {          
                        if(pShow && pHide)
                        {
                            szShow = pHide->formName();
                            szHide = pShow->formName();
                            szSubTable = pSub->formName();

                            szShowText = "onclick='showsubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='display:none;cursor:pointer'";
                            szHideText = "onclick='hidesubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='cursor:pointer'";
                            sprintf(pShow->contextmenu_, szShowText.c_str());
                            sprintf(pHide->contextmenu_, szHideText.c_str());            
                        }

                        if(!enumGroups(lsItem->second.szIndex, pSub))
						{
							//gShow = true;
							//pTable->deleteRow(nRow);
							pShow->hide();
							pHide->hide();
						}
                        else
						{
                            //bShowGroup = true;
							//pShow->hide();
							//pHide->hide();
						}
                    }

                }

				if (sortList.empty())
					gShowGroup = false;

            }
			else
			{
				gShowGroup = false;
			}
            if(GetSubEntitysIDByGroup(objGroup, lsDeviceID))
            {
                map<int, base_param, less<int> > sortList;
                map<int, base_param, less<int> >::iterator lsItem;
                base_param device;
                OBJECT objDevice = INVALID_VALUE;
                for(lstItem = lsDeviceID.begin(); lstItem != lsDeviceID.end(); lstItem ++)
                {
                    szIndex =(*lstItem);
                    bHasRight = true;
                    if(m_pSVUser)
                        bHasRight = m_pSVUser->haveGroupRight(szIndex, Tree_DEVICE);
                    if(bHasRight)
                    {
                        objDevice = GetEntity(szIndex, m_szIDCUser, m_szIDCPwd);
                        if(objDevice != INVALID_VALUE)
                        {
                            node = GetEntityMainAttribNode(objDevice);
                            if(node != INVALID_VALUE)
                            {
                                FindNodeValue(node, "sv_name", szName);
                                FindNodeValue(node, "sv_index", szShowIndex);
                                if(szShowIndex.empty())
                                    nIndex = FindIndexByID(szIndex);
                                else
                                    nIndex =  atoi(szShowIndex.c_str());
                                device.szIndex = szIndex;
                                device.szName = szName;

                                lsItem = sortList.find(nIndex);
                                while(lsItem != sortList.end())
                                {
                                    nIndex ++;
                                    lsItem = sortList.find(nIndex);
                                }
                                sortList[nIndex] = device;
                            }
							else
							{
								mShowGroup = false;
							}
                            CloseEntity(objDevice);
                        }
                    }
                }
                for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                {
					//PrintDebugString("In emnuGroup " + lsItem->second.szName + "------------------------\n");
                    nRow = pTable->numRows();
                    //new WImage("../Images/device.gif", pTable->elementAt(nRow, 1));
					new WImage("/Images/cbb-4server.gif", pTable->elementAt(nRow, 1));
					new WText("&nbsp;",pTable->elementAt(nRow, 1));

                    WText *pName = new WText(lsItem->second.szName, pTable->elementAt(nRow, 2));
                    if(pName)
                    {
                        szContext = "onclick='parent.document.frames(\"left\").location.replace(\"/fcgi-bin/menu.exe?cmd=treeview.exe?deviceid=" + lsItem->second.szIndex 
                            + "\");' style='color:#669;cursor:pointer;' onmouseover='this.style.textDecoration=\"underline\"'"
                            + "onmouseout='this.style.textDecoration=\"none\"'";
                        sprintf(pName->contextmenu_, szContext.c_str());
                    }
                    if(!enumMonitors(lsItem->second.szIndex, lsItem->second.szName, pTable->elementAt(nRow, 2)))
					{
						bShowGroup = false;
						//bShowGroup = true;
                        //pTable->deleteRow(nRow);
					}
                    else
                        bShowGroup = true;
                }

				//84200891
				if (sortList.empty())
				{
					mShowGroup = false;
				}

            }
			else
			{
				mShowGroup = false;
			}
            CloseGroup(objGroup);
        }
		else
		{
			mShowGroup = false;
			gShowGroup = false;
		}
    }
	else
	{
		mShowGroup = false;
		gShowGroup = false;
	}

	bool bbShowGroup;
	bbShowGroup = gShowGroup || mShowGroup;
    return bbShowGroup;
}
コード例 #8
0
void CSVWholeview::enumSVSE()
{
    if(!m_pContent)
        return;

    PAIRLIST selist;
    string szRootname("");
    int nRow = 0;

    WTable *pTable = m_pContent;
    if(GetIniFileInt("solover","solover",1,"general.ini") == 1)
    {       
        sv_pair svpair;
        svpair.name = "1";
        OBJECT objSE = GetSVSE("1");//, m_szIDCUser, m_szIDCPwd);
        if(objSE != INVALID_VALUE)
        {
            svpair.value = GetSVSELabel(objSE);
            CloseSVSE(objSE);
        }        
        selist.push_back(svpair);
    }
    else
    {
        GetAllSVSEInfo(selist);
        szRootname = GetIniFileString("segroup","name","","general.ini");
        if(szRootname.empty())
            szRootname = "SiteView ECC 7.0";        
        nRow = m_pContent->numRows();
        //WImage *pShow = new WImage("../Images/foldopen.gif", m_pContent->elementAt(nRow, 0));
        //WImage *pHide = new WImage("../Images/foldclose.gif", m_pContent->elementAt(nRow, 0));
        WImage *pShow = new WImage("/Images/cb1-unwrap.gif", m_pContent->elementAt(nRow, 0));
        WImage *pHide = new WImage("/Images/cb1-fold.gif", m_pContent->elementAt(nRow, 0));

		new WText("&nbsp;",m_pContent->elementAt(nRow, 0));

        //new WImage("../Images/home.gif", m_pContent->elementAt(nRow, 1));
		new WImage("/Images/cbb-2main.gif", m_pContent->elementAt(nRow, 1));

		new WText("&nbsp;",m_pContent->elementAt(nRow, 1));

        WText *pName = new WText(szRootname, m_pContent->elementAt(nRow, 2));
        if(pName)
        {
            sprintf(pName->contextmenu_, "style='color:#669;cursor:pointer;' onmouseover='" \
                "this.style.textDecoration=\"underline\"' " \
                "onmouseout='this.style.textDecoration=\"none\"'");
        }
        pTable = new WTable(m_pContent->elementAt(nRow + 1, 2));
		pTable->setStyleClass("widthauto");
        if(!pTable)
            return;
        else
        {
            if(pShow && pHide)
            {
                string szShow = "", szHide = "", szSubTable = "";
                szShow = pHide->formName();
                szHide = pShow->formName();
                szSubTable = pTable->formName();

                string szShowText = "onclick='showsubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='display:none;cursor:pointer'";
                string szHideText = "onclick='hidesubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='cursor:pointer'";
                sprintf(pShow->contextmenu_, szShowText.c_str());
                sprintf(pHide->contextmenu_, szHideText.c_str());            
            }
        }
    }

    PAIRLIST::iterator iSe;
    
    bool bHasRight = true;

    int  nChildCount = 0, nIndex = 0;

    OBJECT objSE = INVALID_VALUE;
    OBJECT objGroup = INVALID_VALUE;
    MAPNODE node = INVALID_VALUE;

    string szSEID(""), szSubGroupID(""), szEntityID("");
    string szName(""), szIndex("");
    string szContext(""), szShow(""), szHide(""), szSubTable("");
    string szShowText(""), szHideText("");

    list<string> lsGroupID;
    list<string> lsDeviceID;
    list<string>::iterator lstItem;

    for(iSe= selist.begin(); iSe!=selist.end(); iSe++)
    {
        szSEID = (*iSe).name;
        bHasRight = true;
        if(m_pSVUser)
            bHasRight = m_pSVUser->haveGroupRight(szSEID, Tree_SE);
        if(bHasRight)
        {
            nRow = pTable->numRows();
            //WImage *pShow = new WImage("../Images/foldopen.gif", pTable->elementAt(nRow, 0));
            //WImage *pHide = new WImage("../Images/foldclose.gif", pTable->elementAt(nRow, 0));
            WImage *pShow = new WImage("/Images/cb1-unwrap.gif", pTable->elementAt(nRow, 0));
            WImage *pHide = new WImage("/Images/cb1-fold.gif", pTable->elementAt(nRow, 0));
           
			new WText("&nbsp;",pTable->elementAt(nRow, 0));

			new WImage("/Images/cbb-2main.gif", pTable->elementAt(nRow, 1));

			new WText("&nbsp;",pTable->elementAt(nRow, 1));

            WText *pName = new WText((*iSe).value, pTable->elementAt(nRow, 2));
            if(pName)
            {
                szContext = "onclick='parent.document.frames(\"left\").location.replace(\"/fcgi-bin/menu.exe?cmd=treeview.exe?svseid=" + szSEID 
                    + "\");' style='color:#669;cursor:pointer;' onmouseover='this.style.textDecoration=\"underline\"'"
                    + "onmouseout='this.style.textDecoration=\"none\"'";
                sprintf(pName->contextmenu_, szContext.c_str());
            }
            WTable *pSubTable = new WTable(pTable->elementAt(nRow + 1, 2));
			pSubTable->setStyleClass("widthauto");
            if(!pSubTable)
                return;
            else
            {
                if(pShow && pHide)
                {                    
                    szShow = pHide->formName();
                    szHide = pShow->formName();
                    szSubTable = pSubTable->formName();

                    szShowText = "onclick='showsubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='display:none;cursor:pointer'";
                    szHideText = "onclick='hidesubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='cursor:pointer'";
                    sprintf(pShow->contextmenu_, szShowText.c_str());
                    sprintf(pHide->contextmenu_, szHideText.c_str());            
                }
            }
            
            objSE = GetSVSE(szSEID);
            if(objSE != INVALID_VALUE)
            {
                lsGroupID.clear();
                if(GetSubGroupsIDBySE(objSE, lsGroupID))
			    {
                    map<int, base_param, less<int> > sortList;
                    map<int, base_param, less<int> >::iterator lsItem;
					map<int, base_param, less<int> >::iterator compItem;

                    base_param group;

                    for(lstItem = lsGroupID.begin(); lstItem != lsGroupID.end(); lstItem ++)
                    {
                        szSubGroupID =(*lstItem);
                        bHasRight = true;
                        if(m_pSVUser)
                            bHasRight = m_pSVUser->haveGroupRight(szSubGroupID, Tree_GROUP);
                        if(bHasRight)
                        {
                            objGroup = GetGroup(szSubGroupID, m_szIDCUser, m_szIDCPwd);
                            if(objGroup != INVALID_VALUE)
                            {
                                node = GetGroupMainAttribNode(objGroup);
                                if(node != INVALID_VALUE)
                                {
                                    FindNodeValue(node, "sv_name", szName);
                                    FindNodeValue(node, "sv_index", szIndex);

                                    if(szIndex.empty())
                                        nIndex = FindIndexByID(szSubGroupID);
                                    else
                                        nIndex = atoi(szIndex.c_str());

                                    group.szIndex = szSubGroupID;
                                    group.szName = szName;

                                    lsItem = sortList.find(nIndex);
                                    while(lsItem != sortList.end())
                                    {
                                        nIndex ++;
                                        lsItem = sortList.find(nIndex);
                                    }
                                    sortList[nIndex] = group;
                                }
                                CloseGroup(objGroup);
                            }
                        }
                    }
                    nChildCount += static_cast<int>(sortList.size());

                    for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                    {
						//PrintDebugString("In first setting ---------" + lsItem->second.szName + "\n");
						//bool bbbb = false;
                        nRow = pSubTable->numRows();
					    WImage *pShow = new WImage("/Images/cb1-unwrap.gif", pSubTable->elementAt(nRow, 0));
					    WImage *pHide = new WImage("/Images/cb1-fold.gif", pSubTable->elementAt(nRow, 0));

						new WText("&nbsp;",pSubTable->elementAt(nRow, 0));

						new WImage("/Images/cbb-3group.gif", pSubTable->elementAt(nRow, 1));

						new WText("&nbsp;",pSubTable->elementAt(nRow, 1));

                        WText *pName = new WText(lsItem->second.szName, pSubTable->elementAt(nRow, 2));
                        if(pName)
                        {
                            string szContext = "onclick='parent.document.frames(\"left\").location.replace(\"/fcgi-bin/menu.exe?cmd=treeview.exe?groupid=" + lsItem->second.szIndex 
                                + "\");' style='color:#669;cursor:pointer;' onmouseover='this.style.textDecoration=\"underline\"'"
                                + "onmouseout='this.style.textDecoration=\"none\"'";
                            sprintf(pName->contextmenu_, szContext.c_str());
                        }
                        WTable * pSub = new WTable(pSubTable->elementAt(nRow + 1, 2));
                        if(pSub)
                        {                        
                            if(pShow && pHide)
                            {
                                szShow = pHide->formName();
                                szHide = pShow->formName();
                                szSubTable = pSub->formName();

                                string szShowText = "onclick='showsubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='display:none;cursor:pointer'";
                                string szHideText = "onclick='hidesubtable(\"" + szShow + "\", \"" + szHide + "\", \"" + szSubTable + "\")' " + "style='cursor:pointer'";
                                sprintf(pShow->contextmenu_, szShowText.c_str());
                                sprintf(pHide->contextmenu_, szHideText.c_str());            
                            }
                            if(!enumGroups(lsItem->second.szIndex, pSub))
							{
								//bbbb = true;
                                //pSubTable->deleteRow(nRow);
								pShow->hide();
								pHide->hide();

							}
                        }
                    }

                }
                lsDeviceID.clear();
                if(GetSubEntitysIDBySE(objSE, lsDeviceID))
                {
                    map<int, base_param, less<int> > sortList;
                    map<int, base_param, less<int> >::iterator lsItem;
                    base_param device;
                    for(lstItem = lsDeviceID.begin(); lstItem != lsDeviceID.end(); lstItem ++)
                    {
                        szEntityID =(*lstItem);
                        bHasRight = true;
                        if(m_pSVUser)
                            bHasRight = m_pSVUser->haveGroupRight(szEntityID, Tree_DEVICE);
                        if(bHasRight)
                        {
                            OBJECT objDevice = GetEntity(szEntityID, m_szIDCUser, m_szIDCPwd);
                            if(objDevice != INVALID_VALUE)
                            {
                                MAPNODE node = GetEntityMainAttribNode(objDevice);
                                if(node != INVALID_VALUE)
                                {
                                    FindNodeValue(node, "sv_name", szName);
                                    FindNodeValue(node, "sv_index", szIndex);
                                    if(szIndex.empty())
                                        nIndex = FindIndexByID(szEntityID);
                                    else
                                        nIndex = atoi(szIndex.c_str());

                                    device.szIndex = szEntityID;
                                    device.szName = szName;

                                    lsItem = sortList.find(nIndex);
                                    while(lsItem != sortList.end())
                                    {
                                        nIndex ++;
                                        lsItem = sortList.find(nIndex);
                                    }
                                    sortList[nIndex] = device;
                                }
                                CloseEntity(objDevice);
                            }
                        }
                    }
                    nChildCount += static_cast<int>(sortList.size());
                    for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                    {
                        nRow = pSubTable->numRows();

						new WText("&nbsp;",pSubTable->elementAt(nRow , 0));

						new WImage("/Images/cbb-4server.gif", pSubTable->elementAt(nRow, 1));

						new WText("&nbsp;",pSubTable->elementAt(nRow , 1));

                        WText *pName = new WText(lsItem->second.szName, pSubTable->elementAt(nRow, 2));
                        if(pName)
                        {
                            szContext = "onclick='parent.document.frames(\"left\").location.replace(\"/fcgi-bin/menu.exe?cmd=treeview.exe?deviceid=" + lsItem->second.szIndex 
                                + "\");' style='color:#669;cursor:pointer;' onmouseover='this.style.textDecoration=\"underline\"'"
                                + "onmouseout='this.style.textDecoration=\"none\"'";
                            sprintf(pName->contextmenu_, szContext.c_str());
                        }
                        if(!enumMonitors(lsItem->second.szIndex, lsItem->second.szName, pSubTable->elementAt(nRow, 2)))
						{
							//pSubTable->deleteRow(nRow);
						}

                    }
                }
                CloseSVSE(objSE);

                if(nChildCount <= 0)
                {
                    new WText(m_szNoChild, pSubTable->elementAt(nRow, 2));
                }
            }
        }
    }
}
コード例 #9
0
void CHZDLReport::GetData(string deviceName, string & sIP, bool & useCPU, bool & useMemory, float & CPUUtl, float & MemoryUtl)
{
	list<string> getMonList;
	list<string>::iterator getMonItem;
	string MonitorID;

	OBJECT tmpObjMonitor = NULL;
	OBJECT tmpObjTempMonitor = NULL;
	MAPNODE tmpMonitorNode = NULL;
	MAPNODE tmpMonitorTempNode = NULL;
	MAPNODE tempParamNode = NULL;
	LISTITEM ParamItem;
	bool bFind;
	string tmpMonitorTempName;

	useCPU = false;
	useMemory = false;
	CPUUtl = 0;
	MemoryUtl = 0;

	bFind = GetSubMonitorsIDByEntity(GetEntity(deviceName), getMonList);
	if (!bFind) return;

	MAPNODE tmpEntityNode = NULL;
	tmpEntityNode = GetEntityMainAttribNode(GetEntity(deviceName));
	string v;
	bFind = FindNodeValue(tmpEntityNode, "_MachineName", v);
	if (bFind)
	{
		sIP = v;
	}

	getMonItem = getMonList.begin();
	
	while ( (getMonItem != getMonList.end()) && ( (!useCPU) || (!useMemory) ) )
	{
		MonitorID = *getMonItem;
		tmpObjMonitor = GetMonitor(MonitorID);
		if (tmpObjMonitor != INVALID_VALUE)
		{
			tmpMonitorNode = GetMonitorMainAttribNode(tmpObjMonitor);
			string TypeID;
			bFind = FindNodeValue(tmpMonitorNode, "sv_monitortype", TypeID);
			int iType = atoi(TypeID.c_str());
			tmpObjTempMonitor = GetMonitorTemplet(iType);
			if(tmpObjTempMonitor!=INVALID_VALUE)
			{
				tmpMonitorTempNode = GetMTMainAttribNode(tmpObjTempMonitor);	
				bFind = FindNodeValue(tmpMonitorTempNode, "sv_name", tmpMonitorTempName);

				if (!useCPU)
				{
					string stmp1 = "CPU";
					string stmp2 = "Cpu";
					string stmp3 = "cpu";
					if ( findString(tmpMonitorTempName, stmp1) || findString(tmpMonitorTempName, stmp2) || findString(tmpMonitorTempName, stmp3) )
					{
						bFind = FindMTReturnFirst(tmpObjTempMonitor, ParamItem);
						bool findPrimary = false;
						while( ((tempParamNode=::FindNext(ParamItem)) != INVALID_VALUE) && !findPrimary )
						{ 
							string szPrimary;
							FindNodeValue(tempParamNode, "sv_primary",szPrimary);
							if(strcmp(szPrimary.c_str(), "1") == 0)
							{
								findPrimary = true;
								string tmpFieldName;
								FindNodeValue(tempParamNode, "sv_name", tmpFieldName);
								CPUUtl = CalcAverage(MonitorID, tmpFieldName);
							}
						}
						useCPU = true;
					}
				} 
				if (!useMemory)
				{
					string stmp = "Memory";
					if ( findString(tmpMonitorTempName, stmp) )
					{
						bFind = FindMTReturnFirst(tmpObjTempMonitor, ParamItem);
						bool findPrimary = false;
						while( ((tempParamNode=::FindNext(ParamItem)) != INVALID_VALUE) && !findPrimary )
						{ 
							string szPrimary;
							FindNodeValue(tempParamNode, "sv_primary",szPrimary);
							if(strcmp(szPrimary.c_str(), "1") == 0)
							{
								findPrimary = true;
								string tmpFieldName;
								FindNodeValue(tempParamNode, "sv_name", tmpFieldName);
								MemoryUtl = CalcAverage(MonitorID, tmpFieldName);
							}
						}
						useMemory = true;
					}
				}
			}	
		}
		getMonItem++;
	}
}
コード例 #10
0
bool CCheckBoxTreeView::InitTree(std::string strFirstNode_, bool bDevice_ ,bool bCheck_ ,bool bMain_ ,std::string strUser_, 
                                 std::string szSEID)
{
    vector<string >::iterator iSelItor;
	m_pOldSelNode =NULL;

    if(treeroot)
        delete treeroot;

    if (m_menutable)
    {
        while ( m_menutable->numRows() > 1)
        {
            m_menutable->deleteRow(m_menutable->numRows() - 1);
        }
    }
    strFirstNode=strFirstNode_;
    bDevice=bDevice_;
    bCheck=bCheck_;
    bMain=bMain_;
    strUser=strUser_;
    pTreeSelNode =NULL;
    if (bDevice_)  //增加权限table cell
    {
        if(pRightTbl==NULL)
        {
            InitRightCell();
        }
        Scrolltable->resize(WLength(100,WLength::Percentage), 450);
        this->setStyleClass("margin_top");
    }else {
        this->setStyleClass("margin_top");
        Scrolltable->setStyleClass("widthauto");
    }

    int nAdmin = GetIniFileInt(strUser, "nAdmin", -1, "user.ini");
    if(nAdmin==-1)
        bAdmin = false;
    else 
		bAdmin= true;

    if(!bAdmin)
    {
        std::string groupright= GetIniFileString(strUser, "groupright", "", "user.ini");
        ParserToken(pUserSelGroupList,groupright.c_str(),",");
        vector<string>::iterator  result1; 
        for( result1=pUserSelGroupList.begin();result1!=pUserSelGroupList.end();result1++)
            PushGroup(result1->c_str(),pUserTreeGroupList);
    }

    WTreeNode *FistNode;

    {
        OBJECT root = GetSVSE(szSEID);
        list<string> lsGroupID;
        list<string>::iterator lstItem;
        WTreeNode *tmpNode = NULL;

        if(treeroot!=NULL)
        {
            FistNode= makeTreeFile(GetSVSELabel(root), szSEID, Tree_SE, treeroot, false, false,
                 "/Images/cbb-2main.gif", "/Images/cbb-2main.gif");  
        }else{
            FistNode= makeTreeMap(GetSVSELabel(root), szSEID, Tree_SE, m_menutable, false, false,
                "/Images/cbb-2main.gif", "/Images/cbb-2main.gif");  
            treeroot= FistNode;
        }

        if (root != INVALID_VALUE)
        {
            //第一层组
            if(GetSubGroupsIDBySE(root, lsGroupID))
            {
                map<int, base_param, less<int> > sortList;
                map<int, base_param, less<int> >::iterator lsItem;
                base_param group;
                for(lstItem = lsGroupID.begin(); lstItem != lsGroupID.end(); lstItem ++)
                {
                    string szSubGroupID = (*lstItem).c_str();
                    bool bSelTree = true;// 是否增加组或者设备到树上
                    if(!bAdmin)
                    {
                        iSelItor = find(pUserTreeGroupList.begin(),pUserTreeGroupList.end(),szSubGroupID);
                        if(iSelItor == pUserTreeGroupList.end())
                            bSelTree= false;
					}
                    if(bSelTree)
                    {
                        OBJECT objGroup = GetGroup(szSubGroupID);
                        if(objGroup != INVALID_VALUE)
                        {
                            MAPNODE node = GetGroupMainAttribNode(objGroup);
                            if(node != INVALID_VALUE)
                            {
                                string szName = "", szIndex = "";
                                FindNodeValue(node, "sv_index", szIndex);
                                if(szIndex.empty())
                                    szIndex = findIndexByRealID(szSubGroupID);
                                group.szIndex = szSubGroupID;
                                group.szName = szName;
                                int nIndex = atoi(szIndex.c_str());
                                lsItem = sortList.find(nIndex);
                                while(lsItem != sortList.end())
                                {
                                    nIndex ++;
                                    lsItem = sortList.find(nIndex);
                                }
                                sortList[nIndex] = group;
                            }
                            CloseGroup(objGroup);
                        }
                    }
                }
                for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                {
                    bool bTreehaveCheck=true;
                    if(bCheck_)
                        bTreehaveCheck =true;
                    else
                    {
                        iSelItor =find(pUserSelGroupList.begin(),pUserSelGroupList.end(), lsItem->second.szIndex);
                        if(iSelItor ==pUserSelGroupList.end())
                            bTreehaveCheck= false;
                    }
                    tmpNode=AddGroupTreeNode(lsItem->second.szIndex, FistNode, bTreehaveCheck);
                    if(tmpNode!=NULL)
                        EnumGroup(lsItem->second.szIndex, tmpNode, bTreehaveCheck);
                }
            }

            if(GetSubEntitysIDBySE(root, lsGroupID))
            {
                map<int, base_param, less<int> > sortList;
                map<int, base_param, less<int> >::iterator lsItem;
                base_param device;
                for(lstItem = lsGroupID.begin(); lstItem != lsGroupID.end(); lstItem ++)
                {
                    string szEntityID = (*lstItem).c_str();
                    bool bSelTree =true;// 是否增加组或者设备到树上
                    if(!bAdmin)
                    {
                        iSelItor =find(pUserTreeGroupList.begin(),pUserTreeGroupList.end(),szEntityID);
                        if(iSelItor ==pUserTreeGroupList.end())
                            bSelTree= false;
                    }
                    if(bSelTree)
                    {
                        OBJECT objDevice = GetEntity(szEntityID);
                        if(objDevice != INVALID_VALUE)
                        {
                            MAPNODE node = GetEntityMainAttribNode(objDevice);
                            if(node != INVALID_VALUE)
                            {
                                string szName = "", szIndex = "";
                                //FindNodeValue(node, "sv_name", szName);
                                FindNodeValue(node, "sv_index", szIndex);
                                if(szIndex.empty())
                                    szIndex = findIndexByRealID(szEntityID);
                                device.szIndex = szEntityID;
                                device.szName = szName;
                                int nIndex = atoi(szIndex.c_str());
                                lsItem = sortList.find(nIndex);
                                while(lsItem != sortList.end())
                                {
                                    //nMax ++;
                                    nIndex ++;
                                    lsItem = sortList.find(nIndex);
                                }
                                sortList[nIndex] = device;
                            }
                            CloseEntity(objDevice);
                        }
                        //AddDeviceTreeNode(szEntityID, parentNode );      
                    }
                } 
                for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                    AddDeviceTreeNode(lsItem->second.szIndex, FistNode); 
            }
            CloseSVSE(root);
        }
    }
	
	makeTreeFile("无依靠", "-2", Tree_MONITOR, FistNode, false,	 false, "/Images/cbb-6application.gif","/Images/cbb-6application.gif");

    return true;
}
コード例 #11
0
void CCheckBoxTreeView::EnumGroup(std::string szIndex, WTreeNode* parentNode, bool bhaveCheck )
{
    list<string> lsGroupID;
    list<string> lsEntityID;
    list<string>::iterator lstItem;
    WTreeNode *tmpNode;
    vector<string >::iterator iSelItor;

    if(!szIndex.empty())
    {
        OBJECT group = GetGroup(szIndex);
        if(group != INVALID_VALUE)
        {
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // 删除每一个设备
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // 删除每一个子组
            if(GetSubGroupsIDByGroup(group, lsGroupID))
            {
                map<int, base_param, less<int> > sortList;
                map<int, base_param, less<int> >::iterator lsItem;
                base_param group;
                for(lstItem = lsGroupID.begin(); lstItem != lsGroupID.end(); lstItem ++)
                {
                    string szSubGroupID = (*lstItem).c_str();
                    bool bSelTree =true;// 是否增加组或者设备到树上
                    if(!bAdmin)
                    {
                        iSelItor =find(pUserTreeGroupList.begin(),pUserTreeGroupList.end(),szSubGroupID);
                        if(iSelItor ==pUserTreeGroupList.end())
                            bSelTree= false;
                    }
                    if(bSelTree)
                    {
                        OBJECT objGroup = GetGroup(szSubGroupID);
                        if(objGroup != INVALID_VALUE)
                        {
                            MAPNODE node = GetGroupMainAttribNode(objGroup);
                            if(node != INVALID_VALUE)
                            {
                                string szName = "", szIndex = "";
                                //FindNodeValue(node, "sv_name", szName);
                                FindNodeValue(node, "sv_index", szIndex);
                                if(szIndex.empty())
                                    szIndex = findIndexByRealID(szSubGroupID);
                                group.szIndex = szSubGroupID;
                                group.szName = szName;
                                int nIndex = atoi(szIndex.c_str());
                                lsItem = sortList.find(nIndex);
                                while(lsItem != sortList.end())
                                {
                                    nIndex ++;
                                    lsItem = sortList.find(nIndex);
                                }
                                sortList[nIndex] = group;
                            }
                            CloseGroup(objGroup);
                        }
                    }
                }
                for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                {

                    bool bTreehaveCheck=true;
                    if(bhaveCheck)
                        bTreehaveCheck =true;
                    else
                    {
                        iSelItor =find(pUserSelGroupList.begin(),pUserSelGroupList.end(), lsItem->second.szIndex);
                        if(iSelItor ==pUserSelGroupList.end())
                            bTreehaveCheck= false;
                    }

                    tmpNode=AddGroupTreeNode(lsItem->second.szIndex, parentNode, bTreehaveCheck);
                    if(tmpNode!=NULL)
                        EnumGroup(lsItem->second.szIndex, tmpNode, bTreehaveCheck);
                }
               
            }

            if(GetSubEntitysIDByGroup(group, lsEntityID))            
            {
                map<int, base_param, less<int> > sortList;
                map<int, base_param, less<int> >::iterator lsItem;
                base_param device;
                for(lstItem = lsEntityID.begin(); lstItem != lsEntityID.end(); lstItem ++)
                {
                    string szEntityID = (*lstItem).c_str();
                    bool bSelTree =true;// 是否增加组或者设备到树上
                    if(!bAdmin)
                    {
                        iSelItor =find(pUserTreeGroupList.begin(),pUserTreeGroupList.end(),szEntityID);
                        if(iSelItor ==pUserTreeGroupList.end())
                            bSelTree= false;
                    }
                    if(bSelTree)
                    {
                        OBJECT objDevice = GetEntity(szEntityID);
                        if(objDevice != INVALID_VALUE)
                        {
                            MAPNODE node = GetEntityMainAttribNode(objDevice);
                            if(node != INVALID_VALUE)
                            {
                                string szName = "", szIndex = "";
                                //FindNodeValue(node, "sv_name", szName);
                                FindNodeValue(node, "sv_index", szIndex);
                                if(szIndex.empty())
                                    szIndex = findIndexByRealID(szEntityID);
                                device.szIndex = szEntityID;
                                device.szName = szName;
                                int nIndex = atoi(szIndex.c_str());
                                lsItem = sortList.find(nIndex);
                                while(lsItem != sortList.end())
                                {
                                    //nMax ++;
                                    nIndex ++;
                                    lsItem = sortList.find(nIndex);
                                }
                                sortList[nIndex] = device;
                            }
                            CloseEntity(objDevice);
                        }
                        //AddDeviceTreeNode(szEntityID, parentNode );      
                    }
                } 
                for(lsItem = sortList.begin(); lsItem != sortList.end(); lsItem ++)
                    AddDeviceTreeNode(lsItem->second.szIndex, parentNode);           
            }

            CloseGroup(group);

        }        
    }
}