//合并
 public void combine(PropertyTypesManager srcPropertyTypesManager, ArrayList ids)
 {
     for (int i = 0; i < srcPropertyTypesManager.getElementCount(); i++)
     {
         if (ids == null || !ids.Contains(i))
         {
             continue;
         }
         PropertyTypeElement srcPropertyTypeElement = (PropertyTypeElement)srcPropertyTypesManager.getElement(i);
         //寻找相同的属性类型单元
         PropertyTypeElement localPropertyTypeElement = null;
         for (int j = 0; j < getElementCount(); j++)
         {
             PropertyTypeElement tempPropertyTypeElement = (PropertyTypeElement)getElement(j);
             if (tempPropertyTypeElement.name.Equals(srcPropertyTypeElement.name))
             {
                 localPropertyTypeElement = tempPropertyTypeElement;
                 break;
             }
         }
         //找到相同名称的本地单元
         if (localPropertyTypeElement != null)
         {
             localPropertyTypeElement.combine(srcPropertyTypeElement);
         }
         else//并入本容器
         {
             srcPropertyTypeElement.combineTo(this);
         }
     }
 }
 //合并入
 public void combineTo(PropertyTypesManager destPropertyTypesManager)
 {
     this.parent = destPropertyTypesManager;
     //去除依赖属性
     for (int i = 0; i < propertiesManager.getElementCount(); i++)
     {
         PropertyElement propertyElement = (PropertyElement)propertiesManager.getElement(i);
         propertyElement.propertyTypeElementUsed = null;
     }
     for (int i = 0; i < instancesManager.getElementCount(); i++)
     {
         InstanceElement instanceElement = (InstanceElement)instancesManager.getElement(i);
         instanceElement.propertyValueManager.clearDependProperty();
     }
     destPropertyTypesManager.addElement(this);
 }
 public InstancesManager instancesManager = null;  //实例管理
 public PropertyTypeElement(PropertyTypesManager parentT)
     : base(parentT)
 {
     propertiesManager = new PropertiesManager(this,((PropertyTypesManager)parent).form_main);
     instancesManager = new InstancesManager(this);
 }
 public void releaseRes()
 {
     m_HistoryManager=null;
     textsManager = null;
     mapImagesManager = null;
     mapsManager = null;
     varIntManager = null;
     varStringManager = null;
     triggerFunctionManager = null;
     contextFunctionManager = null;
     executionFunctionManager = null;
     //triggersManager = null;
     propertyTypesManager = null;
 }
        //初始化参数===========================================================
        public void initData(String path)
        {
            path_file = path;
            path_folder = path_file.Substring(0, path_file.LastIndexOf('\\') + 1);

            m_HistoryManager = new UndoManager();
            m_HistoryManager.MaxUndoLevel = 100;
            textsManager = new TextsManager(this);

            mapImagesManager = new MImgsManager(this);
            mapsManager = new MapsManager(this, mapImagesManager);

            varIntManager = new VarsManager(this);
            varStringManager = new VarsManager(this);
            triggerFunctionManager = new FunctionsManager(this);
            contextFunctionManager = new FunctionsManager(this);
            executionFunctionManager = new FunctionsManager(this);
            iDsManager = new VarsManager(this);
            propertyTypesManager = new PropertyTypesManager(this);

            form_MAnimation = new Form_MAnimation(this);
            mapsManager.initAntetype(form_MAnimation.form_MActorList.actorsManager);
            if (Consts.PATH_PROJECT_FILEPATH != null)
            {
                this.Text = Consts.PATH_PROJECT_FILEPATH;
            }
            userDoc.initUserData(path);//读入数据
        }