예제 #1
0
        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;
                    }
                }
            }
        }
예제 #2
0
        /// <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);
        }