Beispiel #1
0
        private void Load(NETreeComposeType conposeType)
        {
            NEData neData = null;

            if (m_cRoot != null)
            {
                foreach (var item in NEConfig.arrTreeComposeData)
                {
                    if (item.rootType == m_cRoot.node.GetType())
                    {
                        if (item == conposeType)
                        {
                            neData = GetCurrentTreeNEData();
                        }
                        break;
                    }
                }
                m_cRoot = null;
            }
            NEUtil.LoadTreeComposeTypes(conposeType, out m_lstNodeType, out m_lstNodeDataType);

            //移除根节点
            List <Type> lst = new List <Type>();

            for (int i = 0; i < m_lstNodeType.Count; i++)
            {
                if (!IsRootType(m_lstNodeType[i]))
                {
                    lst.Add(m_lstNodeType[i]);
                }
            }
            if (m_cCanvas != null)
            {
                m_cCanvas.Dispose();
            }
            m_cCanvas = new NECanvas(lst, CreateNENodeByNENodeType);
            CreateTreeByTreeData(neData);
        }
Beispiel #2
0
 public static void LoadTreeComposeTypes(NETreeComposeType composeType, out List <Type> lstNodeType, out List <Type> lstNodeDataType)
 {
     lstNodeType     = new List <Type>();
     lstNodeDataType = new List <Type>();
     for (int i = 0; i < composeType.lstNodeAttribute.Count; i++)
     {
         var assembly = composeType.lstNodeAttribute[i].Assembly;
         var lstTypes = assembly.GetTypes();
         for (int j = 0; j < lstTypes.Length; j++)
         {
             var arr = lstTypes[j].GetCustomAttributes(composeType.lstNodeAttribute[i], true);
             if (arr.Length > 0)
             {
                 if (!lstNodeType.Contains(lstTypes[j]))
                 {
                     lstNodeType.Add(lstTypes[j]);
                     var attr = arr[0] as NENodeAttribute;
                     lstNodeDataType.Add(attr.nodeDataType);
                 }
             }
         }
     }
 }