/******************************************************************************
Function Name  :  SetConfigurationData
Input(s)       :  BYTE* pSrcBuffer, UINT unBuffSize
Output         :  HRESULT
Functionality  :  Returns the configuration data
Member of      :  CTSExecutorChildFrame
Friend of      :  -
Author(s)      :  Venkatanarayana Makam
Date Created   :  07/04/2011
Modifications  :
Code Tag       :  CS040
******************************************************************************/
HRESULT CTSExecutorChildFrame::SetConfigurationData(BYTE* pSrcBuffer, UINT unBuffSize)
{
    if(unBuffSize != 0)
    {
        vInitialise();
        WINDOWPLACEMENT wndPlacement;
        COPY_DATA_2(&wndPlacement, pSrcBuffer,sizeof(WINDOWPLACEMENT));
        SetWindowPlacement(&wndPlacement);
        INT nCxCur, nCxMin;
        COPY_DATA_2(&nCxCur, pSrcBuffer, sizeof(INT));
        COPY_DATA_2(&nCxMin, pSrcBuffer, sizeof(INT));
        m_omSplitterWnd.SetColumnInfo(0, nCxCur, nCxMin);
        m_omSplitterWnd.RecalcLayout();
        unBuffSize = unBuffSize - sizeof(WINDOWPLACEMENT) - (2*sizeof(INT));
        m_ouTSExecutor.SetConfigurationData(pSrcBuffer, unBuffSize);
        m_odTreeView->GetTreeCtrl().SetCheck(m_hParentTreeItem, m_ouTSExecutor.m_bTestSuiteStatus);
        //Parse The Tree Control;
        INT nCount;
        m_ouTSExecutor.GetTestSetupCount(nCount);

        for(int i = 0; i < nCount; i++)
        {
            bParseTestSetup(i);
        }
    }
    //New File or when Initialising
    else
    {
        vInitialise();
        SetWindowPlacement(&m_sTSDefPlacement);
    }

    return S_OK;
}
HRESULT CTSExecutorChildFrame::SetConfigurationData(xmlNodePtr pXmlNode)
{
    int nRetValue = S_OK;
    //Test Suite Window Position
    WINDOWPLACEMENT wndPlacement;
    wndPlacement = m_sTSDefPlacement;

    if( nullptr != pXmlNode )
    {
        vInitialise();
        xmlNodePtr pTempNode = nullptr;
        xmlXPathObjectPtr pObjectPtr = nullptr;

        pObjectPtr = xmlUtils::pGetChildNodes(pXmlNode, (xmlChar*)"Window_Position");
        if( nullptr != pObjectPtr)
        {
            pTempNode = pObjectPtr->nodesetval->nodeTab[0];
            if( S_FALSE == xmlUtils::ParseWindowsPlacement(pTempNode, wndPlacement) )
            {
                wndPlacement = m_sTSDefPlacement;
            }
            xmlXPathFreeObject(pObjectPtr);
            pObjectPtr = nullptr;
        }

        //Splitter Position
        pObjectPtr = xmlUtils::pGetChildNodes(pXmlNode, (xmlChar*)"Splitter_Window");
        int nCxCur = 0;
        int nCxMin = 0;
        if( nullptr != pObjectPtr)
        {
            pTempNode = pObjectPtr->nodesetval->nodeTab[0];
            if ( S_OK == xmlUtils::ParseSplitterWindow(pTempNode, nCxCur, nCxMin) )
            {
                m_omSplitterWnd.SetColumnInfo(0, nCxCur, nCxMin);
                //Arun
                m_omSplitterWnd.RecalcLayout();
            }
        }

        //Test Suite Executor ConfigData
        m_ouTSExecutor.SetConfigurationData(pXmlNode);

        m_odTreeView->GetTreeCtrl().SetCheck(m_hParentTreeItem, m_ouTSExecutor.m_bTestSuiteStatus);

        CString omStrName;
        m_ouTSExecutor.GetTestsuiteName(omStrName);
        m_odTreeView->GetTreeCtrl().SetItemText(m_hParentTreeItem, omStrName);

        //Parse The Tree Control;
        INT nCount;
        m_ouTSExecutor.GetTestSetupCount(nCount);
        for(int i = 0; i < nCount; i++)
        {
            bParseTestSetup(i);
        }

    }
    if( nullptr == pXmlNode )
    {
        vInitialise();
    }
    SetWindowPlacement(&wndPlacement);

    return S_OK;
}
/******************************************************************************
Function Name  :  UpdateTestSetup
Input(s)       :  
Output         :  HRESULT
Functionality  :   
Member of      :  CTestSetupEntity
Friend of      :  -
Author(s)      :  Venkatanarayana Makam
Date Created   :  28/04/2011
Modifications  :  
Code Tag       :
******************************************************************************/
HRESULT CTestSetupEntity::UpdateTestSetup()
{
    CString omStrFile = m_omstrCurrentTSFile;
    vInitialise();
    return LoadFile(omStrFile);
}