/// <summary> /// Move Display Field Down. /// </summary> /// <param name="field">Selected field.</param> /// /param> public void MoveDisplayFieldDown(SelectedFieldViewModel field) { var orderedFields = SelectedDisplayFields.OrderBy(f => f.Order).ToArray(); var index = Array.IndexOf(orderedFields, field); if (index < 0) return; if (index < orderedFields.Length - 1) { if (index < orderedFields.Length - 2) field.Model.Order = (orderedFields[index + 1].Order + orderedFields[index + 2].Order) / 2.0; else field.Model.Order = orderedFields[index + 1].Order + 1.0; } UpdateCanMoveFields(); OrderedSelectedFields.View.Refresh(); }
/// <summary> /// Select A field from the field list. /// </summary> /// <param name="field">Selected field.</param> public void UnselectDisplayField( SelectedFieldViewModel field) { string newstr= string.Empty; ParentModel.Model.HeaderDisplayFields = string.Empty; if (!string.IsNullOrEmpty(SelectedFields)) foreach (var str in SelectedFields.Split(',')) { if (str != field.FullPath && !string.IsNullOrEmpty(str)) { newstr += str + ","; var lfieldViewModel = SelectedDisplayFields.FirstOrDefault(f => f.FullPath == str); if (string.IsNullOrEmpty(ParentModel.Model.HeaderDisplayFields)) { if (lfieldViewModel != null) { this.ParentModel.Model.HeaderDisplayFields = lfieldViewModel.DisplayName; } } else if (lfieldViewModel != null) { this.ParentModel.Model.HeaderDisplayFields += ", " + lfieldViewModel.DisplayName; } } } SelectedFields = newstr; UpdateCanMoveFields(); var vm = FindNode(field.FullPath); if (vm != null) vm.IsSelected = false; }
/// <summary> /// Move Display Field Up. /// </summary> /// <param name="field">Selected field.</param> public void MoveDisplayFieldUp(SelectedFieldViewModel field) { var orderedFields = SelectedDisplayFields.OrderBy(f => f.Order).ToArray(); var index = Array.IndexOf(orderedFields, field); if (index <= 0) return; var order = orderedFields[index - 1].Order; if (index - 2 >= 0) order += orderedFields[index - 2].Order; field.Model.Order = order / 2.0; UpdateCanMoveFields(); OrderedSelectedFields.View.Refresh(); }
/// <summary> /// Select A field from the field list. /// </summary> /// <param name="fieldViewModel">Selected field.</param> public void SelectDisplayField(ISelectorFieldViewModel fieldViewModel) { var path = fieldViewModel.SystemName; if (SelectedFields.Contains(path + ",")) { return; } var maxOrder = 0.0; if (!string.IsNullOrEmpty(SelectedFields)) maxOrder = SelectedFields.Split(',').Length; SelectedFields += path + ","; if (string.IsNullOrEmpty(ParentModel.Model.HeaderDisplayFields)) ParentModel.Model.HeaderDisplayFields = fieldViewModel.Name; else ParentModel.Model.HeaderDisplayFields += ", " + fieldViewModel.Name; var field = new CrossRefFieldEdit(); field.FieldName = fieldViewModel.Name; field.FullPath = fieldViewModel.SystemName; field.Order = maxOrder + 1.0; field.FieldGuid = fieldViewModel.Model.Guid; var vm = new SelectedFieldViewModel(); vm.Initialize(field, this); SelectedDisplayFields.Add(vm); UpdateCanMoveFields(); }