示例#1
0
        /// <summary>
        /// <summary>
        /// build cursor for locate operations - override the defined range direction
        /// </summary>
        /// <param name="view"></param>
        /// <param name="direction"></param>
        /// <returns></returns>
        internal RuntimeCursor Build(RuntimeReadOnlyView view, Order direction)
        {
            RuntimeCursor runtimeCursor = Build(view);

            runtimeCursor.CursorDefinition.Direction = direction;
            return(runtimeCursor);
        }
 public LocallyComputedDcValuesBuilder(RuntimeReadOnlyView view)
 {
     this.view    = view;
     displayField = view.DataSourceViewDefinition.DbFields[0];
     if (view.DataSourceViewDefinition.DbFields.Count > 1)
     {
         valueField = view.DataSourceViewDefinition.DbFields[1];
     }
     else
     {
         valueField = displayField;
     }
 }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Field"></param>
        /// <param name="indexInView"></param>
        /// <returns></returns>
        private FieldBoundaries GetFieldBoundary(IFieldView Field, int indexInView)
        {
            FieldBoundaries     boundary        = new FieldBoundaries();
            RuntimeReadOnlyView runtimeRealView = RuntimeViewBase as RuntimeReadOnlyView;

            boundary.IndexInView      = indexInView;
            boundary.IsLink           = Field.IsLink;
            boundary.StorageAttribute = Field.StorageAttribute;

            if (runtimeRealView != null)
            {
                boundary.DBField = runtimeRealView.GetDbField(boundary.IndexInView);
            }

            return(boundary);
        }
示例#4
0
        internal override GatewayResult CreateDataControlViews(List <IDataSourceViewDefinition> dataControlViewsDefinitions)
        {
            GatewayResult result = new GatewayResult();

            foreach (var viewDefinition in dataControlViewsDefinitions)
            {
                RuntimeReadOnlyView dcView = TaskViewsBuilder.CreateDataControlSourceView(viewDefinition);

                //[MH 9-APR] This is the point where we should determine whether the linked variable is vector or not.

                result = this.TaskViews.AddDataControlView(dcView, new LocallyComputedDcValuesBuilder(dcView));

                if (!result.Success)
                {
                    break;
                }
            }

            return(result);
        }
示例#5
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        internal override ReturnResultBase Execute()
        {
            LocalDataviewManager localDataViewManager = Task.DataviewManager.LocalDataviewManager;

            RuntimeReadOnlyView dataControlView = localDataViewManager.TaskViews.GetDataControlViewByBoundControlId(control.getDitIdx());

            DataSourceId dataSourceId = dataControlView.DataSourceViewDefinition.TaskDataSource.DataSourceDefinition.Id;

            DataControlRangeDataCollection rangeData = new DataControlRangeDataCollection(dataSourceId, dataControlView.RangeBuilder, control.getDitIdx());

            //remove old DataControlRangeDataCollection entry from map.
            localDataViewManager.rangeToDcValuesMap.Remove(rangeData);

            //build new DC values for control
            LocallyComputedDcValuesBuilder dcValuesBuilder = new LocallyComputedDcValuesBuilder(dataControlView);
            var dataControlValues = dcValuesBuilder.Build();

            localDataViewManager.DataviewSynchronizer.ApplyDCValuesAndRefreshControl(dataControlValues, rangeData, control);

            return(new ReturnResult());
        }
示例#6
0
        /// <summary>
        /// build cursor
        /// </summary>
        /// <param name="link"></param>
        /// <returns></returns>
        internal RuntimeCursor Build(RuntimeReadOnlyView view)
        {
            CursorDefinition cursorDefinition = BuildCursorDefinition();

            return(Build(cursorDefinition));
        }
示例#7
0
 public CursorBuilder(RuntimeReadOnlyView view)
 {
     this.view = view;
 }