public DataControlRangeDataCollection(DataSourceId dataSourceIdentifier, IRangeDataBuilder rangeDataBuilder, int controlId) { this.dataSourceIdentifier = dataSourceIdentifier; rangeDataList = rangeDataBuilder.Build(BoudariesFlags.Range); rangeComparer = new ListComparer <List <RangeData> >(); this.controlId = controlId; }
/// <summary> /// Instantiates a DC values compute strategy for a specific data control. The compute /// strategy will use the given DC values builder to build the list. /// </summary> /// <param name="boundControlId"></param> /// <param name="dcValuesBuilder"></param> /// <param name="dcValuesRangeBuilder"></param> /// <param name="rangeDataSourceId"></param> public DataControlValuesComputeStrategy(int boundControlId, DcValuesBuilderBase dcValuesBuilder, IRangeDataBuilder dcValuesRangeBuilder, DataSourceId rangeDataSourceId) { this.dcValuesBuilder = dcValuesBuilder; this.boundControlId = boundControlId; this.dcValuesRangeBuilder = dcValuesRangeBuilder; this.rangeDataSourceId = rangeDataSourceId; }
public DataControlSourceViewDefinition(DataSourceReference dataSourceReference, int keyIndex, int valueFieldIndex, int displayFieldIndex, int boundControlId) { TaskDataSource = dataSourceReference; DbKey = dataSourceReference.DataSourceDefinition.TryGetKey(keyIndex); DbFields = new List <DBField>(); DBField f = dataSourceReference.DataSourceDefinition.Fields[displayFieldIndex]; DbFields.Add(f); if (valueFieldIndex == -1) { valueFieldIndex = displayFieldIndex; } f = dataSourceReference.DataSourceDefinition.Fields[valueFieldIndex]; DbFields.Add(f); BoundControlId = boundControlId; RangeDataBuilder = null; }
/// <summary> /// /// </summary> /// <returns></returns> internal override ReturnResultBase Execute() { IRangeDataBuilder origRangeDataBuilder = null; IFieldView fieldView = TaskViews.Fields[fieldId]; // Initialize the stuff needed to locate the right record if (!fieldView.IsVirtual && !fieldView.IsLink) { // set the range builder, which will pass the data to the gateway origRangeDataBuilder = TaskViews.ViewMain.RangeBuilder; TaskViews.ViewMain.RangeBuilder = new IncrementalLocateRangeDataBuilder(TaskViews.ViewMain.ViewBoundaries, minValue, fieldView); // use the base record computer - no need for extra computing after the fetch recordComputer = base.RecordComputer; } else { // the gateway will not compute it for us - need to use a special record computer RecordComputerBuilder recordComputerBuilder = new IncrementalLocateRecordComputerBuilder(fieldView, minValue) { LocalDataviewManager = LocalDataviewManager, TaskViews = TaskViews }; recordComputer = recordComputerBuilder.Build(); } TaskViews.ViewMain.CurrentCursor = TaskViews.ViewMain.LocateCursor; // try and get a matching record base.Execute(); TaskViews.ViewMain.CurrentCursor = TaskViews.ViewMain.defaultCursor; // restore ViewMain state if (origRangeDataBuilder != null) { TaskViews.ViewMain.RangeBuilder = origRangeDataBuilder; } return(new GatewayResult()); }