public void GetInfo(object item, ItemInfo info) { ILayer layer = Adapters.As <ILayer>(item); if (layer != null) { info.Label = layer.Name; info.HasCheck = true; info.SetCheckState(GetCheckState(layer)); } else { IReference <IGameObject> reference = Adapters.As <IReference <IGameObject> >(item); if (reference != null) { IListable listable = reference.As <IListable>(); listable.GetInfo(info); //INameable nameable = Adapters.As<INameable>(reference.Target); //if (nameable != null && !string.IsNullOrEmpty(nameable.Name)) // info.Label = nameable.Name; info.IsLeaf = true; IVisible iVisible = GetIVisible(item); if (iVisible != null) { info.HasCheck = true; info.Checked = iVisible.Visible; } } } }
/// <summary> /// Inserts a reference to the specified child into the Owner /// in the List specified by the ChildInfo property</summary> /// <param name="child">Child to be inserted</param> public bool AddChild(object child) { DomNode childNode = child.As <DomNode>(); bool isGobRef = child.Is <IGameObject>() && childNode.GetRoot().Is <IGame>() && m_childInfo.Type == Schema.gameObjectReferenceType.Type; bool isResRef = ResourceReference.CanReference(m_childInfo.Type, child.As <IResource>()); DomNode refNode = null; if (isGobRef) { GameObjectReference gobRef = GameObjectReference.Create(childNode); refNode = gobRef.Cast <DomNode>(); } else if (isResRef) { IReference <IResource> resReference = ResourceReference.Create(m_childInfo.Type, child.As <IResource>()); refNode = resReference.As <DomNode>(); } if (m_childInfo.IsList) { m_owner.GetChildList(m_childInfo).Add(refNode); } else { m_owner.SetChild(m_childInfo, refNode); } return(true); }