private void InitPool()
        {
            if (this.scrollRect.horizontal)
            {
                var columnWidth = this.contentWidth + this.contentSpacing.x;
                var column      = Mathf.RoundToInt(Mathf.Abs(this.viewPortRect.width) / columnWidth);
                this.poolSize = (column + 2 * BOUND_BUFFERS) * (int)this.grouping.y;
            }
            else
            {
                var rowHeight = this.contentHeight + this.contentSpacing.y;
                var row       = Mathf.RoundToInt(Mathf.Abs(this.viewPortRect.height) / rowHeight);
                this.poolSize = (row + 2 * BOUND_BUFFERS) * (int)this.grouping.x;
            }

            for (var i = 0; i < this.poolSize; i++)
            {
                var position = this.usePoolRectToHide ? Vector3.zero : _hidePosition;

                var obj = Instantiate(this.contentPrefab, position, Quaternion.identity) as GameObject;
                ViewModelBehaviour vm = obj.GetComponent <ViewModelBehaviour>();
                vm.RectTransform.SetParent(this.contentRect, true);
                vm.RectTransform.localScale = Vector3.one;

                PoolModule((IModule)vm);
            }
        }
        ViewModelBehaviour GetVMFromPool()
        {
            ViewModelBehaviour vm = vmsPool.Dequeue();

            vm.gameObject.name = "showing";
            return(vm);
        }
        void InitPool()
        {
            if (scrollRect.horizontal)
            {
                float columnWidth = contentWidth + contentSpacing.x;
                int   column      = Mathf.RoundToInt(Mathf.Abs(viewPortRect.width) / columnWidth);
                poolSize = (column + 2 * BOUND_BUFFERS) * (int)grouping.y;
            }
            else
            {
                float rowHeight = contentHeight + contentSpacing.y;
                int   row       = Mathf.RoundToInt(Mathf.Abs(viewPortRect.height) / rowHeight);
                poolSize = (row + 2 * BOUND_BUFFERS) * (int)grouping.x;
            }

            for (int i = 0; i < poolSize; i++)
            {
                GameObject         obj    = Instantiate(contentPrefab, HIDE_POSITION, Quaternion.identity) as GameObject;
                ViewModelBehaviour vm     = obj.GetComponent <ViewModelBehaviour> ();
                IModule            module = (IModule)vm;
                modulesPool.Enqueue(module);
                vm.Recttransform.SetParent(contentRect, true);
                vm.Recttransform.localScale = Vector3.one;
            }
        }
        public ViewModelBehaviour GetIndex(int index)
        {
            ViewModelBehaviour result = null;

            if (listVMs != null && listVMs.Count < index)
            {
                result = listVMs [index];
            }

            return(result);
        }
 void HandleOnAdd(object obj)
 {
     if (vmsPool.Count > 0)
     {
         ViewModelBehaviour vm     = GetVMFromPool();
         IModule            module = GetModuleFromPool();
         listVMs.Add(vm);
         listModules.Add(module);
         module.OriginalData = obj;
     }
     RecalculatePosition(listVMs.Count);
 }
 void HandleOnInsert(int index, object obj)
 {
     if (vmsPool.Count > 0)
     {
         ViewModelBehaviour vm     = GetVMFromPool();
         IModule            module = GetModuleFromPool();
         listVMs.Insert(index, vm);
         listModules.Insert(index, module);
         module.OriginalData = obj;
     }
     RecalculatePosition(index);
 }
 void InitPool()
 {
     for (int i = 0; i < poolSize; i++)
     {
         GameObject         obj = Instantiate(contentPrefab, hidePosition, Quaternion.identity) as GameObject;
         ViewModelBehaviour vm  = obj.GetComponent <ViewModelBehaviour> ();
         vmsPool.Enqueue(vm);
         IModule module = (IModule)vm;
         modulesPool.Enqueue(module);
         vm.Recttransform.SetParent(contentRect);
         vm.Recttransform.localScale = Vector3.one;
     }
 }
Exemple #8
0
 public void Clear()
 {
     this.viewModel    = null;
     this.propertyName = null;
     this.PropertyInfo = null;
 }
 void ReleaseVM(ViewModelBehaviour vm)
 {
     vmsPool.Enqueue(vm);
     vm.Recttransform.localPosition = hidePosition;
     vm.gameObject.name             = "free";
 }
Exemple #10
0
 public void Clear()
 {
     viewModel    = null;
     propertyName = null;
     propertyInfo = null;
 }