/// <summary> /// Note: this method actually changes the collections /// </summary> /// <param name="adapter"></param> /// <returns></returns> public ChildGroupPack Remove(ComponentAdapter adapter) { _pack = ChildGroupPack.Read(_groupAdapter); //Debug.Log(string.Format("Reorder: grp:{0}, item:{1}", groupIndex, itemIndex)); // get old group index var oldGroupIndex = _pack.GetGroupHostingAdapterIndex(adapter); // remove adapter from old group _pack.Groups[oldGroupIndex].Remove(adapter); return _pack; }
/// <summary> /// Note: this method actually changes the collections /// </summary> /// <param name="adapter"></param> /// <param name="groupIndex"></param> /// <param name="itemIndex"></param> /// <returns></returns> public ChildGroupPack Reorder(ComponentAdapter adapter, int groupIndex, int itemIndex) { _pack = ChildGroupPack.Read(_groupAdapter); //Debug.Log(string.Format("Reorder: grp:{0}, item:{1}", groupIndex, itemIndex)); // get old group index var oldGroupIndex = _pack.GetGroupHostingAdapterIndex(adapter); // remove adapter from old group _pack.Groups[oldGroupIndex].Remove(adapter); // add adapter to a new group _pack.Groups[groupIndex].Insert(adapter, itemIndex); return _pack; // (ChildGroupPack)_pack.Clone(); ////Debug.Log("_groupDescriptors.Count: " + _groupDescriptors.Count); ////Debug.Log("groupIndex: " + groupIndex); //ChildGroupDescriptor groupDescriptor = _groupDescriptors[groupIndex]; ////Debug.Log("groupDescriptor: " + groupDescriptor); //List<ComponentAdapter> adaptersCollection = groupDescriptor.GetChildAdaptersCollection(_containerAdapter); ////var targetContainer = groupDescriptor.GetTargetContainer((Container)_containerAdapter.Component); ////Debug.Log("adaptersCollection: " + adaptersCollection); //if (null == adaptersCollection) // return; ///** // * 1. Find the old collection containing the adapter and remove the adapter // * */ //var oldCollection = GetGroupContainingAdapter(adapter); ////Debug.Log("Old collection: " + collection); //oldCollection.Remove(adapter); ///** // * 2. Insert it into a new collection at given index // * */ //if (oldCollection == adaptersCollection) // itemIndex = Math.Max(itemIndex, 0); ////Debug.Log(string.Format("Inserting to : [{0}] at index {1}", adaptersCollection, itemIndex)); //adaptersCollection.Insert(itemIndex, adapter); ////Debug.Log("targetContainer: " + targetContainer); ////Debug.Log("newItemIndex: " + itemIndex); ////Debug.Log("childAdapters[newItemIndex]: " + adaptersCollection[itemIndex]); //if (Application.isPlaying) // Flush(); ////var comp = adaptersCollection[itemIndex].Component; ////if (null != targetContainer && null != comp) //// targetContainer.AddContentChildAt(itemIndex, comp); //// if (_depthMode) //// { //// ContainerAdapter.SetChildDepth(index, adapter); //// } //// else //// { //// ContainerAdapter.Reorder(index, adapter); //// } }