Files
envi-code/SourceCode/Code2026/tg_shs/shs_subgeLib/TWSelectItem.cpp
T
2026-09-28 15:28:50 +08:00

121 lines
2.1 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : TWSelectItem Àà
// = Version : ver2.0
// = Author : wlw
// = CreateDate : 2002-09-09
// = Description: TWSelectItem ¶¨Òå
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#include "StdAfx.h"
#include "TWSelectItem.h"
TWSelectItem::~TWSelectItem()
{
}
CString TWSelectItem::GetSelString()const
{
return GetAt(m_data);
}
void TWSelectItem::operator <<(CArchive &ar)
{
TWDictItem::operator << (ar);
long len;
ar >> len;
Clear();
for (long i = 0; i < len; i++)
{
ar >> (*this)[i];
}
ar>>m_data;
}
void TWSelectItem::operator >>(CArchive &ar)
{
TWDictItem::operator >>(ar);
ar << GetLength();
for (MoveToFirst(); !IsOut(); MoveToNext())
{
ar << GetCurData();
}
ar<<m_data;
}
void TWSelectItem::CopyData(const TWDictItem&src)
{
if (GetType() != src.GetType())
{
return;
}
const TWSelectItem& si = (const TWSelectItem&)src;
if (!si.IsValidIndex(si.m_data))
{
return;
}
CString sData = *(si.GetAt(si.m_data));
for (MoveToFirst(); !IsOut(); MoveToNext())
{
if (sData == *GetCurData())
{
m_data = GetCur();
break;
}
}
}
int TWSelectItem::GetType()const
{
return TYPE_WSelectItem;
}
void TWSelectItem::saveToJson(WValue & v)
{
TWDictItem::saveToJson(v);
v.AddMember(StringRef(_T("data")), WValue(m_data), getJsonAllocator());
WValue arr;
arr.SetArray();
for (MoveToFirst(); !IsOut(); MoveToNext())
{
CString &s(GetCurData());
arr.PushBack(StringRef((LPCTSTR)s), getJsonAllocator());
}
v.AddMember(StringRef(_T("datas")), arr, getJsonAllocator());
}
void TWSelectItem::loadByJson(const WValue &v)
{
TWDictItem::loadByJson(v);
MCIt it = v.FindMember(_T("data"));
if (it != v.MemberEnd())
m_data = it->value.GetInt();
Clear();
it = v.FindMember(_T("datas"));
if (it != v.MemberEnd() && it->value.IsArray())
{
CArr ar = it->value.GetArray();
for (size_t i = 0; i < ar.Size(); ++i)
{
(*this)[i] = ar[i].GetString();
}
}
}