private void ExecuteTransfer(SettingSortVM sorter, int index, SettingSide sideToMoveTo) { if (sideToMoveTo == SettingSide.LEFT) { sorter.UpdateValues(sideToMoveTo); _possibleSettingList.Insert(index != -1 ? index : _possibleSettingList.Count, sorter); _settingList.Remove(sorter); } else if (sideToMoveTo == SettingSide.RIGHT) { sorter.UpdateValues(sideToMoveTo); _settingList.Insert(index != -1 ? index : _settingList.Count, sorter); _possibleSettingList.Remove(sorter); } }
//TODO: FIX TRANSFER WITH 3 ITEMS IN LIST -> DRAG TOP TO VERY BOTTOM AND IT TRIES INDEX 3. IF YOU TRY IN BETWEEN IT PUTS IT LAST IN LIST public void ExecuteListTransfer(SettingSortVM sorter, int index, string targetTag) { if (targetTag == "SettingList") { if (sorter.Side != SettingSide.RIGHT) { ExecuteTransfer(sorter, index, SettingSide.RIGHT); } else { _settingList.Remove(sorter); if (index > _settingList.Count) { _settingList.Insert(index - 1, sorter); } else { _settingList.Insert(index, sorter); } } } else if (targetTag == "PossibleSettingList") { if (sorter.Side != SettingSide.LEFT) { ExecuteTransfer(sorter, index, SettingSide.LEFT); } else { _possibleSettingList.Remove(sorter); if (index > _possibleSettingList.Count) { _possibleSettingList.Insert(index - 1, sorter); } else { _possibleSettingList.Insert(index, sorter); } } } }
private void InitialiseSettingList() { for (PartySort currentSort = _sorter; currentSort != null; currentSort = currentSort.EqualSorter) { PartySort freshSorter; if (currentSort.HasCustomSettings()) { freshSorter = currentSort.GetType() .GetConstructor(new[] { typeof(PartySort), typeof(bool), typeof(List <string>) }) ?.Invoke(new object[] { null, currentSort.Descending, currentSort.CustomSettingsList }) as PartySort; } else { freshSorter = currentSort.GetType().GetConstructor(new[] { typeof(PartySort), typeof(bool) }) ?.Invoke(new object[] { null, currentSort.Descending }) as PartySort; } var settingSortVM = new SettingSortVM(freshSorter, TransferSorter, SettingSide.RIGHT, _parent.OpenSubSetting); _settingList.Add(settingSortVM); } }
public void TransferSorter(SettingSortVM sorter, SettingSide side) { ExecuteTransfer(sorter, -1, side.GetOtherSide()); }