121 lines
2.1 KiB
C++
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();
|
|
}
|
|
}
|
|
}
|