void CollectComponentChildren(PackageItem item, List<DisplayListItem> list)
{
if (!item.decoded)
LoadComponent(item);
if (item.displayList == null)
{
LoadComponentChildren(item);
TranslateComponent(item);
}
int cnt = item.displayList.Length;
for (int i = 0; i < cnt; i++)
{
DisplayListItem di = item.displayList[i];
if (di.packageItem != null && di.packageItem.type == PackageItemType.Component)
CollectComponentChildren(di.packageItem, list);
else if (di.type == "list") //也要收集列表的item
{
XMLList.Enumerator et = di.desc.GetEnumerator("item");
string defaultItem = null;
di.listItemCount = 0;
while (et.MoveNext())
{
XML ix = et.Current;
string url = ix.GetAttribute("url");
if (string.IsNullOrEmpty(url))
{
if (defaultItem == null)
defaultItem = di.desc.GetAttribute("defaultItem");
url = defaultItem;
if (string.IsNullOrEmpty(url))
continue;
}
PackageItem pi = UIPackage.GetItemByURL(url);
if (pi != null)
{
if (pi.type == PackageItemType.Component)
CollectComponentChildren(pi, list);
list.Add(new DisplayListItem(pi, null));
di.listItemCount++;
}
}
}
list.Add(di);
}
}