363 lines
8.7 KiB
C++
363 lines
8.7 KiB
C++
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Clipboard Operations
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline bool CSystemGroup::Cut()
|
|
{
|
|
TRACEX(_T("CSystemGroup::Cut\n"));
|
|
return false;
|
|
}
|
|
|
|
inline bool CSystemGroup::Copy()
|
|
{
|
|
TRACEX(_T("CSystemGroup::Copy\n"));
|
|
return false;
|
|
}
|
|
|
|
inline bool CSystemGroup::Paste()
|
|
{
|
|
TRACEX(_T("CSystemGroup::Paste\n"));
|
|
return false;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Operations
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline bool CSystemGroup::Refresh()
|
|
{
|
|
TRACEX(_T("CSystemGroup::Refresh\n"));
|
|
return false;
|
|
}
|
|
|
|
inline bool CSystemGroup::ResetStatus()
|
|
{
|
|
TRACEX(_T("CSystemGroup::ResetStatus\n"));
|
|
return false;
|
|
}
|
|
|
|
inline CString CSystemGroup::GetUITypeName()
|
|
{
|
|
TRACEX(_T("CSystemGroup::GetUITypeName\n"));
|
|
|
|
CString sTypeName;
|
|
sTypeName.LoadString(IDS_STRING_SYSTEM_GROUP);
|
|
|
|
return sTypeName;
|
|
}
|
|
|
|
inline void CSystemGroup::Serialize(CArchive& ar)
|
|
{
|
|
TRACEX(_T("CSystemGroup::Serialize\n"));
|
|
|
|
CHMObject::Serialize(ar);
|
|
|
|
if( ar.IsStoring() )
|
|
{
|
|
// write out the list of child groups
|
|
ar << GetChildCount();
|
|
|
|
for( int i = 0; i < GetChildCount(); i++ )
|
|
{
|
|
GetChild(i)->Serialize(ar);
|
|
}
|
|
|
|
// write out the list of shortcuts
|
|
ar << (int)m_Shortcuts.GetSize();
|
|
|
|
for( i = 0; i < m_Shortcuts.GetSize(); i++ )
|
|
{
|
|
m_Shortcuts[i]->Serialize(ar);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// update the scope items to reflect their correct name
|
|
for(int i = 0; i < m_ScopeItems.GetSize(); i++)
|
|
{
|
|
m_ScopeItems[i]->SetDisplayName(0,m_sName);
|
|
m_ScopeItems[i]->SetItem();
|
|
}
|
|
|
|
int iChildCount = 0;
|
|
ar >> iChildCount;
|
|
|
|
for( i = 0; i < iChildCount; i++ )
|
|
{
|
|
CSystemGroup* pNewGroup = new CSystemGroup;
|
|
pNewGroup->SetScopePane(GetScopePane());
|
|
pNewGroup->SetName(GetUniqueChildName());
|
|
AddChild(pNewGroup);
|
|
pNewGroup->Serialize(ar);
|
|
}
|
|
|
|
int iShortcutCount = 0;
|
|
ar >> iShortcutCount;
|
|
|
|
CHealthmonScopePane* pPane = (CHealthmonScopePane*)GetScopePane();
|
|
CSystemGroup* pASG = pPane->GetAllSystemsGroup();
|
|
for( i = 0; i < iShortcutCount; i++ )
|
|
{
|
|
CString sName;
|
|
CString sSystemName;
|
|
ar >> sName;
|
|
ar >> sSystemName;
|
|
AddShortcut(pASG->GetChild(sName));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
inline void CAllSystemsGroup::Serialize(CArchive& ar)
|
|
{
|
|
TRACEX(_T("CAllSystemsGroup::Serialize\n"));
|
|
|
|
CHMObject::Serialize(ar);
|
|
|
|
if( ar.IsStoring() )
|
|
{
|
|
// write out the list of child groups
|
|
ar << GetChildCount();
|
|
|
|
for( int i = 0; i < GetChildCount(); i++ )
|
|
{
|
|
GetChild(i)->Serialize(ar);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int iChildCount = 0;
|
|
ar >> iChildCount;
|
|
|
|
|
|
for( int i = 0; i < iChildCount; i++ )
|
|
{
|
|
CSystem* pNewSystem = new CSystem;
|
|
pNewSystem->Serialize(ar);
|
|
|
|
//----------------------------------------------
|
|
// v-marfin 62501 - check to see if successful
|
|
/*CString sFailed = pNewSystem->GetSystemName();
|
|
if (sFailed.Right(FAILED_STRING.GetLength()) == FAILED_STRING)
|
|
{
|
|
sFailed = sFailed.Left(sFailed.GetLength() - FAILED_STRING.GetLength());
|
|
pNewSystem->SetSystemName(sFailed);
|
|
delete pNewSystem;
|
|
continue;
|
|
}*/
|
|
BOOL bFailed=FALSE;
|
|
// v-marfin 62501 - check to see if successful
|
|
CString sFailed = pNewSystem->GetSystemName();
|
|
if (sFailed.Right(FAILED_STRING.GetLength()) == FAILED_STRING)
|
|
{
|
|
sFailed = sFailed.Left(sFailed.GetLength() - FAILED_STRING.GetLength());
|
|
pNewSystem->SetSystemName(sFailed);
|
|
bFailed=TRUE;
|
|
|
|
CString sMsg;
|
|
sMsg.Format(IDS_STRING_TRANSPORT_ERROR,sFailed);
|
|
AfxMessageBox(sMsg);
|
|
}
|
|
//----------------------------------------------
|
|
|
|
//----------------------------------------------
|
|
// v-marfin 62501 - check to see if successful.
|
|
// When unable to connect to a system, do not even show
|
|
// its icon in the tree. We have to do this hack in the BETA
|
|
// time frame since there are too many other implications of
|
|
// having the icon appear
|
|
// in the list (i.e. if the user tries to add groups to it, it
|
|
// causes crashes etc.) We should deal with this in the RTM
|
|
// time frame however. So for now, place the code here and
|
|
// at final fix time, see the code which is commented out below
|
|
// and use that instead of this.
|
|
if (bFailed)
|
|
{
|
|
delete pNewSystem;
|
|
continue;
|
|
}
|
|
//----------------------------------------------
|
|
|
|
pNewSystem->SetScopePane(GetScopePane());
|
|
|
|
AddChild(pNewSystem);
|
|
|
|
//----------------------------------------------
|
|
// v-marfin 62501 - check to see if successful.
|
|
// When unable to connect to a system, at least show its
|
|
// icon so the user sees that it is inaccessible. We
|
|
// comment out this code for BETA time frame since there
|
|
// are too many other implications of having the icon appear
|
|
// in the list (i.e. if the user tries to add groups to it, it
|
|
// causes crashes etc.) We should deal with this in the RTM
|
|
// time frame however. So for now, the code to check the
|
|
// success of connecting will be placed just above here.
|
|
/*if (bFailed)
|
|
{
|
|
delete pNewSystem;
|
|
continue;
|
|
}*/
|
|
//----------------------------------------------
|
|
pNewSystem->Connect();
|
|
|
|
CActionPolicy* pPolicy = new CActionPolicy;
|
|
pPolicy->SetSystemName(pNewSystem->GetName());
|
|
pNewSystem->AddChild(pPolicy);
|
|
}
|
|
}
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// State Members
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline void CSystemGroup::TallyChildStates()
|
|
{
|
|
TRACEX(_T("CSystemGroup::TallyChildStates\n"));
|
|
|
|
m_lNormalCount = 0L;
|
|
m_lWarningCount = 0L;
|
|
m_lCriticalCount = 0L;
|
|
m_lUnknownCount = 0L;
|
|
|
|
|
|
for( int i = 0; i < m_Children.GetSize(); i++ )
|
|
{
|
|
switch( m_Children[i]->GetState() )
|
|
{
|
|
case HMS_NORMAL:
|
|
{
|
|
m_lNormalCount++;
|
|
}
|
|
break;
|
|
|
|
case HMS_WARNING:
|
|
{
|
|
m_lWarningCount++;
|
|
}
|
|
break;
|
|
|
|
case HMS_CRITICAL:
|
|
{
|
|
m_lCriticalCount++;
|
|
}
|
|
break;
|
|
|
|
case HMS_UNKNOWN:
|
|
{
|
|
m_lUnknownCount++;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
for( i = 0; i < m_Shortcuts.GetSize(); i++ )
|
|
{
|
|
switch( m_Shortcuts[i]->GetState() )
|
|
{
|
|
case HMS_NORMAL:
|
|
{
|
|
m_lNormalCount++;
|
|
}
|
|
break;
|
|
|
|
case HMS_WARNING:
|
|
{
|
|
m_lWarningCount++;
|
|
}
|
|
break;
|
|
|
|
case HMS_CRITICAL:
|
|
{
|
|
m_lCriticalCount++;
|
|
}
|
|
break;
|
|
|
|
case HMS_UNKNOWN:
|
|
{
|
|
m_lUnknownCount++;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Scope Item Members
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline CScopePaneItem* CSystemGroup::CreateScopeItem()
|
|
{
|
|
TRACEX(_T("CSystemGroup::CreateScopeItem\n"));
|
|
|
|
CSystemGroupScopeItem * pNewItem = new CSystemGroupScopeItem;
|
|
pNewItem->SetObjectPtr(this);
|
|
|
|
return pNewItem;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Scope Item Members
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline CScopePaneItem* CAllSystemsGroup::CreateScopeItem()
|
|
{
|
|
TRACEX(_T("CAllSystemsGroup::CreateScopeItem\n"));
|
|
|
|
CAllSystemsScopeItem * pNewItem = new CAllSystemsScopeItem;
|
|
pNewItem->SetObjectPtr(this);
|
|
|
|
return pNewItem;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// New Child Creation Members
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline void CSystemGroup::CreateNewChildSystemGroup()
|
|
{
|
|
TRACEX(_T("CSystemGroup::CreateNewChildSystemGroup\n"));
|
|
|
|
CString sName = GetUniqueChildName(IDS_STRING_SYSTEMGROUP_FMT);
|
|
|
|
CSystemGroup* pNewGroup = new CSystemGroup;
|
|
pNewGroup->SetName(sName);
|
|
CHMObject::AddChild(pNewGroup);
|
|
|
|
if( pNewGroup->GetScopeItemCount() )
|
|
{
|
|
CScopePaneItem* pItem = pNewGroup->GetScopeItem(0);
|
|
if( pItem )
|
|
{
|
|
pItem->SelectItem();
|
|
pItem->InvokePropertySheet();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// System Child Members
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline CHMObject* CSystemGroup::GetShortcut(const CString& sName)
|
|
{
|
|
TRACEX(_T("CSystemGroup::GetShortcut\n"));
|
|
|
|
for( int i = 0; i < m_Shortcuts.GetSize(); i++ )
|
|
{
|
|
if( m_Shortcuts[i]->GetName().CompareNoCase(sName) == 0 )
|
|
{
|
|
return m_Shortcuts[i];
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
|