Пример #1
0
 private void RemoveModelInternal(ModelChangeInfo deletedModel)
 {
     sortedModels.Remove(deletedModel.model);
     models.Remove(deletedModel.model.Index);
     deletedModel.PerformCallback();
     deletedModel.model.Destroy();
 }
Пример #2
0
 private void AddModelInternal(ModelChangeInfo createdModel)
 {
     if (nextModelIndex == ModelReference.InvalidModelIndex)
     {
         ++nextModelIndex;
     }
     createdModel.model.Index.UpdateIndex(nextModelIndex);
     models.Add(nextModelIndex, createdModel.model);
     sortedModels.Add(createdModel.model, null);
     ++nextModelIndex;
     createdModel.PerformCallback();
 }
Пример #3
0
        public void RemoveModel(Model model, onModelChanged callback, object context)
        {
            ModelChangeInfo changeInfo = new ModelChangeInfo(model, callback, context);

            if (IsUpdating)
            {
                UpdateOperationChange(changeInfo, ref updateChanges.deletedModelsFromUpdate);
            }
            else
            {
                RemoveModelInternal(changeInfo);
            }
        }
Пример #4
0
        public ModelReference AddModel(Model model, onModelChanged callback, object context)
        {
            ModelChangeInfo changeInfo = new ModelChangeInfo(model, callback, context);

            if (IsUpdating)
            {
                UpdateOperationChange(changeInfo, ref updateChanges.createdModelsFromUpdate);
            }
            else
            {
                AddModelInternal(changeInfo);
            }
            return(model.Index);
        }
Пример #5
0
        public void ReorderModel(Model model, int newUpdatingOrder, onModelChanged callback, object context)
        {
            model.UpdatingOrder = newUpdatingOrder;
            ModelChangeInfo changeInfo = new ModelChangeInfo(model, callback, context);

            if (IsUpdating)
            {
                UpdateOperationChange(changeInfo, ref updateChanges.reorderedModelsFromUpdate);
            }
            else
            {
                ReorderModelInternal(changeInfo);
            }
        }
Пример #6
0
        // Internal update change operation
        private void UpdateOperationChange(ModelChangeInfo modelInfo, ref List <ModelChangeInfo> list)
        {
            // Do not do updating operations outside of update cycles
            if (!updateChanges.IsUpdating)
            {
                return;
            }

            if (list == null)
            {
                list = new List <ModelChangeInfo>();
            }
            list.Add(modelInfo);
        }
Пример #7
0
 private void ReorderModelInternal(ModelChangeInfo sortedModel)
 {
     sortedModels.Remove(sortedModel.model);
     sortedModels.Add(sortedModel.model, null);
     sortedModel.PerformCallback();
 }