public void ApplyChanges() { var newGridColumns = new List <GridFieldMetadata>(); for (var i = 1; i <= CurrentColumns.Count(); i++) { var thisOne = CurrentColumns.ElementAt(i - 1); string overWriteRecordType = null; string aliasedFieldName = null; string fieldName = thisOne.FieldName; if (thisOne.FieldName != null && thisOne.FieldName.Contains(".")) { //any fields in related witll be of form //lookupfield|recordtype.fieldname //so we need to capture their detail form the grid field metadata var splitPaths = thisOne.FieldName.Split('.'); fieldName = splitPaths[splitPaths.Length - 1]; var lastPath = splitPaths[splitPaths.Length - 2]; var splitlookupType = lastPath.Split('|'); if (splitlookupType.Count() < 2) { throw new Exception("There was an error determining tyo eof the field named " + thisOne.FieldName); } overWriteRecordType = splitlookupType[1]; //change alias to lookupfield_recordtype.fieldname as | is not a vlaid character aliasedFieldName = splitlookupType[0] + "_" + splitlookupType[1] + "." + fieldName; } newGridColumns.Add(new GridFieldMetadata(new ViewField(fieldName, i, Convert.ToInt32(thisOne.Width))) { AltRecordType = overWriteRecordType, AliasedFieldName = aliasedFieldName, OverrideLabel = thisOne.FieldLabel }); } ApplySelections(newGridColumns); }
public void RemoveCurrentField(string fieldName) { if (CurrentColumns.Count == 1 && CurrentColumns.First().FieldName == fieldName) { ApplicationController.UserMessage("There Must Be At Least One View Column"); } else { //if removed field active for the current selected link then add it as an option if ((!fieldName.Contains(".") && SelectedLink.Key == RecordType) || (fieldName.Contains(".") && fieldName.Split('.')[0] == SelectedLink.Key)) { var selectedResults = CurrentColumns.Where(c => c.FieldName == fieldName).ToArray(); foreach (var result in selectedResults) { CurrentColumns.Remove(result); foreach (var item in SelectableColumns) { if (item.FieldLabel != null && item.FieldLabel.CompareTo(result.FieldLabel) > 0) { SelectableColumns.Insert(SelectableColumns.IndexOf(item), result); break; } } if (!SelectableColumns.Contains(result)) { SelectableColumns.Add(result); } } } } }
public void RemoveCurrentField(string fieldName) { if (CurrentColumns.Count == 1 && CurrentColumns.First().FieldName == fieldName) { ApplicationController.UserMessage("The Must Be At Least One View Column"); } else { var selectedResults = CurrentColumns.Where(c => c.FieldName == fieldName).ToArray(); foreach (var result in selectedResults) { CurrentColumns.Remove(result); foreach (var item in SelectableColumns) { if (item.FieldLabel != null && item.FieldLabel.CompareTo(result.FieldLabel) > 0) { SelectableColumns.Insert(SelectableColumns.IndexOf(item), result); break; } } if (!SelectableColumns.Contains(result)) { SelectableColumns.Add(result); } } } }
private IEnumerable <SelectableColumn> GetSelectableColumnsFor(string thisType) { var keyPrefix = ""; var labelPrefix = ""; if (SelectedLink != null && SelectedLink.Key.Contains("|")) { keyPrefix = SelectedLink.Key + "."; labelPrefix = SelectedLink.Value + " > "; } return(RecordService .GetFields(thisType) .Select(f => new SelectableColumn(keyPrefix + f, labelPrefix + RecordService.GetFieldLabel(f, thisType), 200, RemoveCurrentField, AddCurrentField, ApplicationController)) .Where(sc => !CurrentColumns.Any(c => c.FieldName == sc.FieldName)) .OrderBy(sc => sc.FieldLabel) .ToArray()); }
public void RefreshIsFirstColumn() { if (CurrentColumns != null) { foreach (var column in CurrentColumns.ToArray().Skip(1)) { if (column.IsFirstColumn) { column.IsFirstColumn = false; } } if (CurrentColumns.Any()) { CurrentColumns.First().IsFirstColumn = true; } } }
public void AddCurrentItem(SelectableColumn draggedItem, SelectableColumn target = null, bool isAfter = true) { DoOnMainThread(() => { SelectableColumns.Remove(draggedItem); CurrentColumns.Remove(draggedItem); if (target != null && CurrentColumns.Contains(target)) { CurrentColumns.Insert(CurrentColumns.IndexOf(target) + (isAfter ? 1 : 0), draggedItem); } else { CurrentColumns.Add(draggedItem); } RefreshIsFirstColumn(); }); }