internal TaskViewsCollection BuildViewsCollection(Task task) { TaskViewsCollection taskViews = new TaskViewsCollection(); this.task = task; taskViews.Task = task; taskViews.Fields.AddRange(FieldsBuilder.Build(task)); taskViews.SetVirtualView(CreateVirtualView()); taskViews.SetRemoveView(CreateRemoteView()); CreateRealRecordViews(taskViews); CreateRecordCursors(taskViews); taskViews.MapRecordFields(); taskViews.SetRecordsComputer(BuildRecordComputer(taskViews)); taskViews.SetLocateExpressionRecordComputer(BuildLocateExpressionRecordComputer(taskViews)); if (taskViews.ViewMain == null) { LocalDataviewManager.PositionCache.IncludesFirst = true; LocalDataviewManager.PositionCache.IncludesLast = true; } return(taskViews); }