Esempio n. 1
0
        /// <summary>
        /// Checks if provided custom attribute appies to the selected points or series.
        /// </summary>
        /// <param name="attrInfo">Custom attribute information.</param>
        /// <param name="obj">Selected series or points.</param>
        /// <returns>True if custom attribute applies.</returns>
        private bool IsApplicableCustomProperty(CustomPropertyInfo attrInfo, object obj)
        {
            CustomProperties customProperties = obj as CustomProperties;

            if (customProperties != null)
            {
                obj = customProperties.DataPointCustomProperties;
            }

            // Check if custom attribute applies to the series or points
            if ((IsDataPoint(obj) && attrInfo.AppliesToDataPoint) ||
                (!IsDataPoint(obj) && attrInfo.AppliesToSeries))
            {
                // Check if attribute do not apply to 3D or 2D chart types
                if ((Is3DChartType(obj) && attrInfo.AppliesTo3D) ||
                    (!Is3DChartType(obj) && attrInfo.AppliesTo2D))
                {
                    // Check if custom attribute applies to the chart types selected
                    SeriesChartType[] chartTypes = GetSelectedChartTypes(obj);
                    foreach (SeriesChartType chartType in chartTypes)
                    {
                        foreach (SeriesChartType attrChartType in attrInfo.AppliesToChartType)
                        {
                            if (attrChartType == chartType)
                            {
                                return(true);
                            }
                        }
                    }
                }
            }

            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// Служебный метод для задания значения динамического свойства. Только для внутреннего использования.
        /// </summary>
        /// <param name="propertyName">Наименование динамического свойства.</param>
        /// <param name="value">Новое значение динамического свойства.</param>
        /// <exception cref="System.Exception">
        /// Неправильный тип устанавливаемого значения.
        /// or
        /// or
        /// Неправильный тип устанавливаемого значения.
        /// </exception>
        internal void SetPropertyValueInternal(string propertyName, object value)
        {
            object customPropertyValue;

            if (!_customPropertyValues.TryGetValue(propertyName, out customPropertyValue))
            {
                //Не удалось найти значение указанного свойства среди значений динамических свойств
                //Проверим, есть ли вообще такое динамическое свойство
                PropertyInfo property = GetCustomProperty(propertyName);
                if (property != null)
                {
                    //динамическое свойство есть, но значение ещё не присваивалось, установим новое значение
                    _customPropertyValues[propertyName] = value;
                    RaisePropertyChanged(propertyName);
                }
                else
                {
                    //динамического свойства нет, попробуем найти и получить значение из реального свойства
                    property = GetRealProperties().FirstOrDefault(prop => prop.Name == propertyName);
                    if (property != null)
                    {
                        if (ValidateValueType(value, property.PropertyType))
                        {
                            if (property.GetValue(this, null) != value)
                            {
                                property.SetValue(this, value, null);
                                RaisePropertyChanged(propertyName);
                            }
                        }
                        else
                        {
                            throw new Exception("Неправильный тип устанавливаемого значения.");
                        }
                    }
                    else
                    {
                        throw new Exception(String.Format("Не найдено свойство \"{0}\". ", propertyName));
                    }
                }
            }
            else
            {
                //Удалось найти значение указанного свойства среди значений динамических свойств
                CustomPropertyInfo propertyInfo = GetCustomProperty(propertyName);
                if (ValidateValueType(value, propertyInfo.PropertyType))
                {
                    if (customPropertyValue != value)
                    {
                        _customPropertyValues[propertyName] = value;
                        RaisePropertyChanged(propertyName);
                    }
                }
                else
                {
                    throw new Exception("Неправильный тип устанавливаемого значения.");
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Добавить динамическое свойство.
        /// </summary>
        /// <param name="propertyName">Наименование динамического свойства.</param>
        /// <param name="propertyType">Тип динамического свойства.</param>
        /// <param name="attributes">Список атрибутов динамического свойства.</param>
        public void AddProperty(string propertyName, Type propertyType, List <Attribute> attributes = null)
        {
            var property = GetCustomProperty(propertyName);

            if (property == null)
            {
                CustomPropertyInfo propertyInfo = new CustomPropertyInfo(propertyName, propertyType, _targetType, attributes);
                CustomProperties.Add(propertyInfo);
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Property descriptor constructor.
 /// </summary>
 /// <param name="componentType">Component type.</param>
 /// <param name="name">Property name.</param>
 /// <param name="propertyType">Property type.</param>
 /// <param name="attributes">Property attributes.</param>
 /// <param name="customAttributeInfo">Custom attribute information.</param>
 internal CustomAttributesPropertyDescriptor(
     Type componentType,
     string name,
     Type propertyType,
     Attribute[] attributes,
     CustomPropertyInfo customAttributeInfo)
     : base(componentType, name, propertyType, attributes)
 {
     this._name = name;
     this._customAttributeInfo = customAttributeInfo;
 }
        public void SetUp()
        {
            _declaringType  = CustomTypeObjectMother.Create();
            _type           = ReflectionObjectMother.GetSomeType();
            _valueParameter = CustomParameterInfoObjectMother.Create(type: _type);
            var indexParameterType = ReflectionObjectMother.GetSomeOtherType();

            _indexParameter = CustomParameterInfoObjectMother.Create(type: indexParameterType);
            _getMethod      = CustomMethodInfoObjectMother.Create(attributes: MethodAttributes.Public, parameters: new[] { _indexParameter }, returnParameter: _valueParameter);
            _setMethod      = CustomMethodInfoObjectMother.Create(attributes: MethodAttributes.Public, parameters: new[] { _indexParameter, _valueParameter });

            _readOnlyProperty  = CustomPropertyInfoObjectMother.Create(getMethod: _getMethod);
            _writeOnlyProperty = CustomPropertyInfoObjectMother.Create(setMethod: _setMethod);
        }
Esempio n. 6
0
        /// <summary>
        /// Gets array of properties for the dynamic property.
        /// </summary>
        /// <param name="attrInfo">Custom attribute information.</param>
        /// <returns>Array of properties.</returns>
        private Attribute[] GetPropertyAttributes(CustomPropertyInfo attrInfo)
        {
            // Create default value attribute
            DefaultValueAttribute defaultValueAttribute = null;

            if (attrInfo.DefaultValue.GetType() == attrInfo.ValueType)
            {
                defaultValueAttribute = new DefaultValueAttribute(attrInfo.DefaultValue);
            }
            else if (attrInfo.DefaultValue is string)
            {
                defaultValueAttribute = new DefaultValueAttribute(attrInfo.ValueType, (string)attrInfo.DefaultValue);
            }
            else
            {
                throw (new InvalidOperationException(SR.ExceptionCustomAttributeDefaultValueTypeInvalid));
            }
            // Add all properties into the list
            ArrayList propList = new ArrayList();

            propList.Add(new NotifyParentPropertyAttribute(true));
            propList.Add(new RefreshPropertiesAttribute(RefreshProperties.All));
            propList.Add(new DescriptionAttribute(attrInfo.Description));
            propList.Add(defaultValueAttribute);

            if (attrInfo.Name.Equals(CustomPropertyName.ErrorBarType, StringComparison.Ordinal))
            {
                propList.Add(new TypeConverterAttribute(typeof(ErrorBarTypeConverter)));
            }

            // Convert list to array
            int index = 0;

            Attribute[] propAttributes = new Attribute[propList.Count];
            foreach (Attribute attr in propList)
            {
                propAttributes[index++] = attr;
            }
            return(propAttributes);
        }
Esempio n. 7
0
        public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
        {
            var gridView = context as BindableRadGridView;

            switch (customPropertyInfo.Name)
            {
            case "SortDescriptors":
            {
                var sortDescriptorProxies = new List <SortDescriptorProxy>();

                foreach (ColumnSortDescriptor descriptor in gridView.SortDescriptors)
                {
                    sortDescriptorProxies.Add(new SortDescriptorProxy()
                        {
                            ColumnUniqueName = descriptor.Column.UniqueName,
                            SortDirection    = descriptor.SortDirection,
                        });
                }

                return(sortDescriptorProxies);
            }

            case "GroupDescriptors":
            {
                var groupDescriptorProxies = new List <GroupDescriptorProxy>();

                foreach (ColumnGroupDescriptor descriotor in gridView.GroupDescriptors)
                {
                    groupDescriptorProxies.Add(new GroupDescriptorProxy()
                        {
                            ColumnUniqueName = descriotor.Column.UniqueName,
                            SortDirection    = descriotor.SortDirection,
                        });
                }

                return(groupDescriptorProxies);
            }

            case "FilterDescriptors":
            {
                var filterSettings = new List <FilterSetting>();

                foreach (IColumnFilterDescriptor columnFilter in gridView.FilterDescriptors)
                {
                    var columnFilterSetting = new FilterSetting();

                    columnFilterSetting.ColumnUniqueName = columnFilter.Column.UniqueName;

                    columnFilterSetting.SelectedDistinctValues.AddRange(columnFilter.DistinctFilter.DistinctValues);

                    if (columnFilter.FieldFilter.Filter1.IsActive)
                    {
                        columnFilterSetting.Filter1                 = new FilterDescriptorProxy();
                        columnFilterSetting.Filter1.Operator        = columnFilter.FieldFilter.Filter1.Operator;
                        columnFilterSetting.Filter1.Value           = columnFilter.FieldFilter.Filter1.Value;
                        columnFilterSetting.Filter1.IsCaseSensitive = columnFilter.FieldFilter.Filter1.IsCaseSensitive;
                    }

                    columnFilterSetting.FieldFilterLogicalOperator = columnFilter.FieldFilter.LogicalOperator;

                    if (columnFilter.FieldFilter.Filter2.IsActive)
                    {
                        columnFilterSetting.Filter2                 = new FilterDescriptorProxy();
                        columnFilterSetting.Filter2.Operator        = columnFilter.FieldFilter.Filter2.Operator;
                        columnFilterSetting.Filter2.Value           = columnFilter.FieldFilter.Filter2.Value;
                        columnFilterSetting.Filter2.IsCaseSensitive = columnFilter.FieldFilter.Filter2.IsCaseSensitive;
                    }

                    filterSettings.Add(columnFilterSetting);
                }

                return(filterSettings);
            }
            }

            return(null);
        }
      public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
      {
         var gridView = context as BindableRadGridView;

         switch (customPropertyInfo.Name)
         {
            case "SortDescriptors":
               {
                  var sortDescriptorProxies = new List<SortDescriptorProxy>();

                  foreach (ColumnSortDescriptor descriptor in gridView.SortDescriptors)
                  {
                     sortDescriptorProxies.Add(new SortDescriptorProxy()
                     {
                        ColumnUniqueName = descriptor.Column.UniqueName,
                        SortDirection = descriptor.SortDirection,
                     });
                  }

                  return sortDescriptorProxies;
               }

            case "GroupDescriptors":
               {
                  var groupDescriptorProxies = new List<GroupDescriptorProxy>();

                  foreach (ColumnGroupDescriptor descriotor in gridView.GroupDescriptors)
                  {
                     groupDescriptorProxies.Add(new GroupDescriptorProxy()
                     {
                        ColumnUniqueName = descriotor.Column.UniqueName,
                        SortDirection = descriotor.SortDirection,
                     });
                  }

                  return groupDescriptorProxies;
               }

            case "FilterDescriptors":
               {
                  var filterSettings = new List<FilterSetting>();

                  foreach (IColumnFilterDescriptor columnFilter in gridView.FilterDescriptors)
                  {
                     var columnFilterSetting = new FilterSetting();

                     columnFilterSetting.ColumnUniqueName = columnFilter.Column.UniqueName;

                     columnFilterSetting.SelectedDistinctValues.AddRange(columnFilter.DistinctFilter.DistinctValues);

                     if (columnFilter.FieldFilter.Filter1.IsActive)
                     {
                        columnFilterSetting.Filter1 = new FilterDescriptorProxy();
                        columnFilterSetting.Filter1.Operator = columnFilter.FieldFilter.Filter1.Operator;
                        columnFilterSetting.Filter1.Value = columnFilter.FieldFilter.Filter1.Value;
                        columnFilterSetting.Filter1.IsCaseSensitive = columnFilter.FieldFilter.Filter1.IsCaseSensitive;
                     }

                     columnFilterSetting.FieldFilterLogicalOperator = columnFilter.FieldFilter.LogicalOperator;

                     if (columnFilter.FieldFilter.Filter2.IsActive)
                     {
                        columnFilterSetting.Filter2 = new FilterDescriptorProxy();
                        columnFilterSetting.Filter2.Operator = columnFilter.FieldFilter.Filter2.Operator;
                        columnFilterSetting.Filter2.Value = columnFilter.FieldFilter.Filter2.Value;
                        columnFilterSetting.Filter2.IsCaseSensitive = columnFilter.FieldFilter.Filter2.IsCaseSensitive;
                     }

                     filterSettings.Add(columnFilterSetting);
                  }

                  return filterSettings;
               }
         }

         return null;
      }
 public object InitializeValue(CustomPropertyInfo customPropertyInfo, object context)
 {
    return null;
 }
      public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value)
      {
         var gridView = context as RadGridView;

         switch (customPropertyInfo.Name)
         {
            case "SortDescriptors":
               {
                  gridView.SortDescriptors.SuspendNotifications();

                  gridView.SortDescriptors.Clear();

                  var sortDescriptoProxies = value as List<SortDescriptorProxy>;

                  foreach (SortDescriptorProxy proxy in sortDescriptoProxies)
                  {
                     var column = gridView.Columns[proxy.ColumnUniqueName];
                     gridView.SortDescriptors.Add(new ColumnSortDescriptor() { Column = column, SortDirection = proxy.SortDirection });
                  }

                  gridView.SortDescriptors.ResumeNotifications();
               }
               break;

            case "GroupDescriptors":
               {
                  gridView.GroupDescriptors.SuspendNotifications();

                  gridView.GroupDescriptors.Clear();

                  var groupDescriptorProxies = value as List<GroupDescriptorProxy>;

                  foreach (GroupDescriptorProxy proxy in groupDescriptorProxies)
                  {
                     var column = gridView.Columns[proxy.ColumnUniqueName];
                     gridView.GroupDescriptors.Add(new ColumnGroupDescriptor() { Column = column, SortDirection = proxy.SortDirection });
                  }

                  gridView.GroupDescriptors.ResumeNotifications();
               }
               break;

            case "FilterDescriptors":
               {
                  gridView.FilterDescriptors.SuspendNotifications();

                  foreach (var c in gridView.Columns)
                  {
                     if (c.ColumnFilterDescriptor.IsActive)
                     {
                        c.ClearFilters();
                     }
                  }

                  var filterSettings = value as List<FilterSetting>;

                  foreach (FilterSetting setting in filterSettings)
                  {
                     var column = gridView.Columns[setting.ColumnUniqueName];

                     var columnFilter = column.ColumnFilterDescriptor;

                     foreach (object distinctValue in setting.SelectedDistinctValues)
                     {
                        columnFilter.DistinctFilter.AddDistinctValue(distinctValue);
                     }

                     if (setting.Filter1 != null)
                     {
                        columnFilter.FieldFilter.Filter1.Operator = setting.Filter1.Operator;
                        columnFilter.FieldFilter.Filter1.Value = setting.Filter1.Value;
                        columnFilter.FieldFilter.Filter1.IsCaseSensitive = setting.Filter1.IsCaseSensitive;
                     }

                     columnFilter.FieldFilter.LogicalOperator = setting.FieldFilterLogicalOperator;

                     if (setting.Filter2 != null)
                     {
                        columnFilter.FieldFilter.Filter2.Operator = setting.Filter2.Operator;
                        columnFilter.FieldFilter.Filter2.Value = setting.Filter2.Value;
                        columnFilter.FieldFilter.Filter2.IsCaseSensitive = setting.Filter2.IsCaseSensitive;
                     }
                  }

                  gridView.FilterDescriptors.ResumeNotifications();
               }
               break;
         }
      }
Esempio n. 11
0
        public static IEnumerable <CustomPropertyInfo> GetToolProperty(Type tool, Object instance = null, bool mustBrowsable = true)
        {
            Object newinstance;

            if (instance == null)
            {
                instance    = PluginProvider.GetObjectInstance(tool);
                newinstance = instance;
            }
            else
            {
                newinstance = PluginProvider.GetObjectInstance(tool);
            }
            var propertys =
                tool.GetProperties().Where(
                    d => d.CanRead && d.CanWrite && AttributeHelper.IsEditableType(d.PropertyType)).ToArray();

            foreach (var propertyInfo in propertys.OrderBy(GetOrder))
            {
                var name = propertyInfo.Name;
                if (name == "ObjectID" || name == "Enabled" || name == "ColumnSelector")
                {
                    continue;
                }

                var property = new CustomPropertyInfo();

                string typeName     = null;
                var    defaultValue = GetDefaultValue(propertyInfo, newinstance, out typeName);
                var    currentValue = GetDefaultValue(propertyInfo, instance, out typeName);
                property.CurrentValue = currentValue;
                property.DefaultValue = defaultValue;
                var desc = GlobalHelper.Get("no_desc");
                // var fi =type.GetField(propertyInfo.Name);
                var browseable =
                    (BrowsableAttribute[])propertyInfo.GetCustomAttributes(typeof(BrowsableAttribute), false);
                if (browseable.Length > 0 && browseable[0].Browsable == false && mustBrowsable)
                {
                    continue;
                }
                var descriptionAttributes =
                    (LocalizedDescriptionAttribute[])propertyInfo.GetCustomAttributes(
                        typeof(LocalizedDescriptionAttribute), false);
                var nameAttributes =
                    (LocalizedDisplayNameAttribute[])propertyInfo.GetCustomAttributes(
                        typeof(LocalizedDisplayNameAttribute), false);
                if (nameAttributes.Length > 0)
                {
                    name = GlobalHelper.Get(nameAttributes[0].DisplayName);
                }
                if (descriptionAttributes.Length > 0)
                {
                    desc = GlobalHelper.Get(descriptionAttributes[0].Description);
                }
                desc                  = string.Join("\n", desc.Split('\n').Select(d => d.Trim('\t', ' ')));
                property.Desc         = desc;
                property.Name         = name;
                property.DefaultValue = defaultValue;
                property.OriginName   = propertyInfo.Name;
                property.TypeName     = typeName;
                yield return(property);
            }
        }
Esempio n. 12
0
 public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value)
 {
     //Use the value argument to get the persisted settings.
     //Apply these settings on the context object as it represents the persisted component
 }
Esempio n. 13
0
 public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
 {
     //Implement a logic that returns an object describing a property.
     //Note that this event is fired once for each property from the array returned by the GetCustomProperties() method.
     //Therefore you need to implement a logic that returns a separate object for each property.
 }
        public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value)
        {
            RadGridView gridView = context as RadGridView;

            switch (customPropertyInfo.Name)
            {
            case "Columns":
            {
                List <ColumnProxy> columnProxies = value as List <ColumnProxy>;

                foreach (ColumnProxy proxy in columnProxies)
                {
                    try
                    {
                        if (proxy == null || proxy.UniqueName == null)
                        {
                            continue;
                        }
                        GridViewColumn column = gridView.Columns[proxy.UniqueName];
                        if (column == null)
                        {
                            continue;
                        }
                        if (proxy.DisplayOrder != -1 && proxy.DisplayOrder < gridView.Columns.Count)
                        {
                            column.DisplayIndex = proxy.DisplayOrder;
                        }
                        column.Header    = proxy.Header;
                        column.Width     = proxy.Width;
                        column.IsVisible = proxy.Visisble;
                    }
                    catch (Exception ex)
                    {
                        LogProvider.Log.Error(this, "RadGridViewSettings RestoreValue Columns Error", ex);
                    }
                }
            }
            break;

            case "SortDescriptors":
            {
                gridView.SortDescriptors.SuspendNotifications();

                gridView.SortDescriptors.Clear();

                List <SortDescriptorProxy> sortDescriptoProxies = value as List <SortDescriptorProxy>;

                foreach (SortDescriptorProxy proxy in sortDescriptoProxies)
                {
                    GridViewColumn column = gridView.Columns[proxy.ColumnUniqueName];
                    gridView.SortDescriptors.Add(new ColumnSortDescriptor()
                        {
                            Column = column, SortDirection = proxy.SortDirection
                        });
                }

                gridView.SortDescriptors.ResumeNotifications();
            }
            break;

            case "GroupDescriptors":
            {
                gridView.GroupDescriptors.SuspendNotifications();

                gridView.GroupDescriptors.Clear();

                List <GroupDescriptorProxy> groupDescriptorProxies = value as List <GroupDescriptorProxy>;

                foreach (GroupDescriptorProxy proxy in groupDescriptorProxies)
                {
                    GridViewColumn column = gridView.Columns[proxy.ColumnUniqueName];
                    gridView.GroupDescriptors.Add(new ColumnGroupDescriptor()
                        {
                            Column = column, SortDirection = proxy.SortDirection
                        });
                }

                gridView.GroupDescriptors.ResumeNotifications();
            }
            break;

            case "FilterDescriptors":
            {
                List <FilterSetting> filterSettings = value as List <FilterSetting>;

                /*gridView.FilterDescriptors.SuspendNotifications();
                 *
                 * foreach (var c in gridView.Columns)
                 * {
                 *  if (c.ColumnFilterDescriptor.IsActive)
                 *  {
                 *      c.ClearFilters();
                 *  }
                 * }
                 *
                 * List<FilterSetting> filterSettings = value as List<FilterSetting>;
                 *
                 * foreach (FilterSetting setting in filterSettings)
                 * {
                 *  Telerik.Windows.Controls.GridViewColumn column = gridView.Columns[setting.ColumnUniqueName];
                 *
                 *  Telerik.Windows.Controls.GridView.IColumnFilterDescriptor columnFilter = column.ColumnFilterDescriptor;
                 *
                 *  foreach (object distinctValue in setting.SelectedDistinctValues)
                 *  {
                 *      columnFilter.DistinctFilter.AddDistinctValue(distinctValue);
                 *  }
                 *
                 *  if (setting.Filter1 != null)
                 *  {
                 *      columnFilter.FieldFilter.Filter1.Operator = setting.Filter1.Operator;
                 *      columnFilter.FieldFilter.Filter1.Value = setting.Filter1.Value;
                 *      columnFilter.FieldFilter.Filter1.IsCaseSensitive = setting.Filter1.IsCaseSensitive;
                 *  }
                 *
                 *  columnFilter.FieldFilter.LogicalOperator = setting.FieldFilterLogicalOperator;
                 *
                 *  if (setting.Filter2 != null)
                 *  {
                 *      columnFilter.FieldFilter.Filter2.Operator = setting.Filter2.Operator;
                 *      columnFilter.FieldFilter.Filter2.Value = setting.Filter2.Value;
                 *      columnFilter.FieldFilter.Filter2.IsCaseSensitive = setting.Filter2.IsCaseSensitive;
                 *  }
                 * }
                 *
                 * gridView.FilterDescriptors.ResumeNotifications();*/
            }
            break;
            }
        }
Esempio n. 15
0
 public object InitializeValue(CustomPropertyInfo customPropertyInfo, object context)
 {
     return(null);
 }
Esempio n. 16
0
        public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value)
        {
            var gridView = context as RadGridView;

            switch (customPropertyInfo.Name)
            {
            case "SortDescriptors":
            {
                gridView.SortDescriptors.SuspendNotifications();

                gridView.SortDescriptors.Clear();

                var sortDescriptoProxies = value as List <SortDescriptorProxy>;

                foreach (SortDescriptorProxy proxy in sortDescriptoProxies)
                {
                    var column = gridView.Columns[proxy.ColumnUniqueName];
                    gridView.SortDescriptors.Add(new ColumnSortDescriptor()
                        {
                            Column = column, SortDirection = proxy.SortDirection
                        });
                }

                gridView.SortDescriptors.ResumeNotifications();
            }
            break;

            case "GroupDescriptors":
            {
                gridView.GroupDescriptors.SuspendNotifications();

                gridView.GroupDescriptors.Clear();

                var groupDescriptorProxies = value as List <GroupDescriptorProxy>;

                foreach (GroupDescriptorProxy proxy in groupDescriptorProxies)
                {
                    var column = gridView.Columns[proxy.ColumnUniqueName];
                    gridView.GroupDescriptors.Add(new ColumnGroupDescriptor()
                        {
                            Column = column, SortDirection = proxy.SortDirection
                        });
                }

                gridView.GroupDescriptors.ResumeNotifications();
            }
            break;

            case "FilterDescriptors":
            {
                gridView.FilterDescriptors.SuspendNotifications();

                foreach (var c in gridView.Columns)
                {
                    if (c.ColumnFilterDescriptor.IsActive)
                    {
                        c.ClearFilters();
                    }
                }

                var filterSettings = value as List <FilterSetting>;

                foreach (FilterSetting setting in filterSettings)
                {
                    var column = gridView.Columns[setting.ColumnUniqueName];

                    var columnFilter = column.ColumnFilterDescriptor;

                    foreach (object distinctValue in setting.SelectedDistinctValues)
                    {
                        columnFilter.DistinctFilter.AddDistinctValue(distinctValue);
                    }

                    if (setting.Filter1 != null)
                    {
                        columnFilter.FieldFilter.Filter1.Operator        = setting.Filter1.Operator;
                        columnFilter.FieldFilter.Filter1.Value           = setting.Filter1.Value;
                        columnFilter.FieldFilter.Filter1.IsCaseSensitive = setting.Filter1.IsCaseSensitive;
                    }

                    columnFilter.FieldFilter.LogicalOperator = setting.FieldFilterLogicalOperator;

                    if (setting.Filter2 != null)
                    {
                        columnFilter.FieldFilter.Filter2.Operator        = setting.Filter2.Operator;
                        columnFilter.FieldFilter.Filter2.Value           = setting.Filter2.Value;
                        columnFilter.FieldFilter.Filter2.IsCaseSensitive = setting.Filter2.IsCaseSensitive;
                    }
                }

                gridView.FilterDescriptors.ResumeNotifications();
            }
            break;
            }
        }
        public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
        {
            RadGridView gridView = context as RadGridView;

			switch (customPropertyInfo.Name)
			{
				case "Columns":
					{
						List<ColumnProxy> columnProxies = new List<ColumnProxy>();

						foreach (GridViewColumn column in gridView.Columns)
						{
							columnProxies.Add(new ColumnProxy()
							{
								UniqueName = column.UniqueName,
								Header = column.Header.ToString(),
								DisplayOrder = column.DisplayIndex,
								Width = column.Width,
							});
						}

						return columnProxies;
					}

				case "SortDescriptors":
					{
						List<SortDescriptorProxy> sortDescriptorProxies = new List<SortDescriptorProxy>();

						foreach (ColumnSortDescriptor descriptor in gridView.SortDescriptors)
						{
							sortDescriptorProxies.Add(new SortDescriptorProxy()
							{
								ColumnUniqueName = descriptor.Column.UniqueName,
								SortDirection = descriptor.SortDirection,
							});
						}

						return sortDescriptorProxies;
					}

				case "GroupDescriptors":
					{
						List<GroupDescriptorProxy> groupDescriptorProxies = new List<GroupDescriptorProxy>();

						foreach (ColumnGroupDescriptor descriotor in gridView.GroupDescriptors)
						{
							groupDescriptorProxies.Add(new GroupDescriptorProxy()
							{
								ColumnUniqueName = descriotor.Column.UniqueName,
								SortDirection = descriotor.SortDirection,
							});
						}

						return groupDescriptorProxies;
					}

				case "FilterDescriptors":
					{
						List<FilterSetting> filterSettings = new List<FilterSetting>();

						foreach (IColumnFilterDescriptor columnFilter in gridView.FilterDescriptors)
						{
							FilterSetting columnFilterSetting = new FilterSetting();

							columnFilterSetting.ColumnUniqueName = columnFilter.Column.UniqueName;

							columnFilterSetting.SelectedDistinctValues.AddRange(columnFilter.DistinctFilter.DistinctValues);

							if (columnFilter.FieldFilter.Filter1.IsActive)
							{
								columnFilterSetting.Filter1 = new FilterDescriptorProxy();
								columnFilterSetting.Filter1.Operator = columnFilter.FieldFilter.Filter1.Operator;
								columnFilterSetting.Filter1.Value = columnFilter.FieldFilter.Filter1.Value;
								columnFilterSetting.Filter1.IsCaseSensitive = columnFilter.FieldFilter.Filter1.IsCaseSensitive;
							}

							columnFilterSetting.FieldFilterLogicalOperator = columnFilter.FieldFilter.LogicalOperator;

							if (columnFilter.FieldFilter.Filter2.IsActive)
							{
								columnFilterSetting.Filter2 = new FilterDescriptorProxy();
								columnFilterSetting.Filter2.Operator = columnFilter.FieldFilter.Filter2.Operator;
								columnFilterSetting.Filter2.Value = columnFilter.FieldFilter.Filter2.Value;
								columnFilterSetting.Filter2.IsCaseSensitive = columnFilter.FieldFilter.Filter2.IsCaseSensitive;
							}

							filterSettings.Add(columnFilterSetting);
						}

						return filterSettings;
					}
			}

			return null;
        }
Esempio n. 18
0
        public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
        {
            RadGridView gridView = context as RadGridView;

            switch (customPropertyInfo.Name)
            {
            case "Columns":
            {
                List <ColumnProxy> columnProxies = new List <ColumnProxy>();

                foreach (GridViewColumn column in gridView.Columns)
                {
                    columnProxies.Add(new ColumnProxy()
                        {
                            UniqueName   = column.UniqueName,
                            Header       = column.Header.ToString(),
                            DisplayOrder = column.DisplayIndex,
                            Width        = column.Width,
                        });
                }

                return(columnProxies);
            }

            case "SortDescriptors":
            {
                List <SortDescriptorProxy> sortDescriptorProxies = new List <SortDescriptorProxy>();

                foreach (ColumnSortDescriptor descriptor in gridView.SortDescriptors)
                {
                    sortDescriptorProxies.Add(new SortDescriptorProxy()
                        {
                            ColumnUniqueName = descriptor.Column.UniqueName,
                            SortDirection    = descriptor.SortDirection,
                        });
                }

                return(sortDescriptorProxies);
            }

            case "GroupDescriptors":
            {
                List <GroupDescriptorProxy> groupDescriptorProxies = new List <GroupDescriptorProxy>();

                foreach (ColumnGroupDescriptor descriotor in gridView.GroupDescriptors)
                {
                    groupDescriptorProxies.Add(new GroupDescriptorProxy()
                        {
                            ColumnUniqueName = descriotor.Column.UniqueName,
                            SortDirection    = descriotor.SortDirection,
                        });
                }

                return(groupDescriptorProxies);
            }

            case "FilterDescriptors":
            {
                List <FilterSetting> filterSettings = new List <FilterSetting>();

                foreach (IColumnFilterDescriptor columnFilter in gridView.FilterDescriptors)
                {
                    FilterSetting columnFilterSetting = new FilterSetting();

                    columnFilterSetting.ColumnUniqueName = columnFilter.Column.UniqueName;

                    columnFilterSetting.SelectedDistinctValues.AddRange(columnFilter.DistinctFilter.DistinctValues);

                    if (columnFilter.FieldFilter.Filter1.IsActive)
                    {
                        columnFilterSetting.Filter1                 = new FilterDescriptorProxy();
                        columnFilterSetting.Filter1.Operator        = columnFilter.FieldFilter.Filter1.Operator;
                        columnFilterSetting.Filter1.Value           = columnFilter.FieldFilter.Filter1.Value;
                        columnFilterSetting.Filter1.IsCaseSensitive = columnFilter.FieldFilter.Filter1.IsCaseSensitive;
                    }

                    columnFilterSetting.FieldFilterLogicalOperator = columnFilter.FieldFilter.LogicalOperator;

                    if (columnFilter.FieldFilter.Filter2.IsActive)
                    {
                        columnFilterSetting.Filter2                 = new FilterDescriptorProxy();
                        columnFilterSetting.Filter2.Operator        = columnFilter.FieldFilter.Filter2.Operator;
                        columnFilterSetting.Filter2.Value           = columnFilter.FieldFilter.Filter2.Value;
                        columnFilterSetting.Filter2.IsCaseSensitive = columnFilter.FieldFilter.Filter2.IsCaseSensitive;
                    }

                    filterSettings.Add(columnFilterSetting);
                }

                return(filterSettings);
            }
            }

            return(null);
        }
        public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
        {
            RadGridView gridView = context as RadGridView;

            try
            {
                switch (customPropertyInfo.Name)
                {
                case "Columns":
                {
                    List <ColumnProxy> columnProxies = new List <ColumnProxy>();

                    foreach (GridViewColumn column in gridView.Columns)
                    {
                        columnProxies.Add(new ColumnProxy()
                            {
                                UniqueName   = column.UniqueName,
                                Header       = column.Header.ToString(),
                                DisplayOrder = column.DisplayIndex,
                                Width        = column.Width,
                                Visisble     = column.IsVisible,
                            });
                    }

                    return(columnProxies);
                }

                case "SortDescriptors":
                {
                    List <SortDescriptorProxy> sortDescriptorProxies = new List <SortDescriptorProxy>();

                    foreach (ColumnSortDescriptor descriptor in gridView.SortDescriptors)
                    {
                        if (descriptor.Column == null)
                        {
                            continue;
                        }

                        sortDescriptorProxies.Add(new SortDescriptorProxy()
                            {
                                ColumnUniqueName = descriptor.Column.UniqueName,
                                SortDirection    = descriptor.SortDirection,
                            });
                    }

                    return(sortDescriptorProxies);
                }

                case "GroupDescriptors":
                {
                    List <GroupDescriptorProxy> groupDescriptorProxies = new List <GroupDescriptorProxy>();

                    foreach (ColumnGroupDescriptor descriotor in gridView.GroupDescriptors)
                    {
                        groupDescriptorProxies.Add(new GroupDescriptorProxy()
                            {
                                ColumnUniqueName = descriotor.Column.UniqueName,
                                SortDirection    = descriotor.SortDirection,
                            });
                    }

                    return(groupDescriptorProxies);
                }

                case "FilterDescriptors":
                {
                    List <FilterSetting> filterSettings = new List <FilterSetting>();

                    /*foreach (IColumnFilterDescriptor columnFilter in gridView.FilterDescriptors)
                     * {
                     *  FilterSetting columnFilterSetting = new FilterSetting();
                     *
                     *  columnFilterSetting.ColumnUniqueName = columnFilter.Column.UniqueName;
                     *
                     *  columnFilterSetting.SelectedDistinctValues.AddRange(columnFilter.DistinctFilter.DistinctValues);
                     *
                     *  if (columnFilter.FieldFilter.Filter1.IsActive)
                     *  {
                     *      columnFilterSetting.Filter1 = new FilterDescriptorProxy();
                     *      columnFilterSetting.Filter1.Operator = columnFilter.FieldFilter.Filter1.Operator;
                     *      columnFilterSetting.Filter1.Value = columnFilter.FieldFilter.Filter1.Value;
                     *      columnFilterSetting.Filter1.IsCaseSensitive = columnFilter.FieldFilter.Filter1.IsCaseSensitive;
                     *  }
                     *
                     *  columnFilterSetting.FieldFilterLogicalOperator = columnFilter.FieldFilter.LogicalOperator;
                     *
                     *  if (columnFilter.FieldFilter.Filter2.IsActive)
                     *  {
                     *      columnFilterSetting.Filter2 = new FilterDescriptorProxy();
                     *      columnFilterSetting.Filter2.Operator = columnFilter.FieldFilter.Filter2.Operator;
                     *      columnFilterSetting.Filter2.Value = columnFilter.FieldFilter.Filter2.Value;
                     *      columnFilterSetting.Filter2.IsCaseSensitive = columnFilter.FieldFilter.Filter2.IsCaseSensitive;
                     *  }
                     *
                     *  filterSettings.Add(columnFilterSetting);
                     * }*/

                    return(filterSettings);
                }
                }
            }
            catch
            {
                LogProvider.Log.Warn(this, "RadGridViewSettings.ProvideValue: Cannot get grid setting");
            }


            return(null);
        }
Esempio n. 20
0
 public object InitializeValue(CustomPropertyInfo customPropertyInfo, object context)
 {
     //Return a default value for the properties which the PersistenceFramework failed to restore
 }
Esempio n. 21
0
        public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value)
        {
            RadGridView gridView = context as RadGridView;

            switch (customPropertyInfo.Name)
            {
            case "Columns":
            {
                List <ColumnProxy> columnProxies = value as List <ColumnProxy>;

                foreach (ColumnProxy proxy in columnProxies.OrderBy(x => x.DisplayOrder))
                {
                    GridViewColumn column = gridView.Columns[proxy.UniqueName];
                    column.DisplayIndex = proxy.DisplayOrder;
                    column.Header       = proxy.Header;
                    column.Width        = proxy.Width;
                }
            }
            break;

            case "SortDescriptors":
            {
                gridView.SortDescriptors.SuspendNotifications();

                gridView.SortDescriptors.Clear();

                List <SortDescriptorProxy> sortDescriptoProxies = value as List <SortDescriptorProxy>;

                foreach (SortDescriptorProxy proxy in sortDescriptoProxies)
                {
                    GridViewColumn column = gridView.Columns[proxy.ColumnUniqueName];
                    gridView.SortDescriptors.Add(new ColumnSortDescriptor()
                        {
                            Column = column, SortDirection = proxy.SortDirection
                        });
                }

                gridView.SortDescriptors.ResumeNotifications();
            }
            break;

            case "GroupDescriptors":
            {
                gridView.GroupDescriptors.SuspendNotifications();

                gridView.GroupDescriptors.Clear();

                List <GroupDescriptorProxy> groupDescriptorProxies = value as List <GroupDescriptorProxy>;

                foreach (GroupDescriptorProxy proxy in groupDescriptorProxies)
                {
                    GridViewColumn column = gridView.Columns[proxy.ColumnUniqueName];
                    gridView.GroupDescriptors.Add(new ColumnGroupDescriptor()
                        {
                            Column = column, SortDirection = proxy.SortDirection
                        });
                }

                gridView.GroupDescriptors.ResumeNotifications();
            }
            break;

            case "FilterDescriptors":
            {
                gridView.FilterDescriptors.SuspendNotifications();

                foreach (var c in gridView.Columns)
                {
                    if (c.ColumnFilterDescriptor.IsActive)
                    {
                        c.ClearFilters();
                    }
                }

                List <FilterSetting> filterSettings = value as List <FilterSetting>;

                foreach (FilterSetting setting in filterSettings)
                {
                    Telerik.Windows.Controls.GridViewColumn column = gridView.Columns[setting.ColumnUniqueName];

                    Telerik.Windows.Controls.GridView.IColumnFilterDescriptor columnFilter = column.ColumnFilterDescriptor;

                    foreach (object distinctValue in setting.SelectedDistinctValues)
                    {
                        columnFilter.DistinctFilter.AddDistinctValue(distinctValue);
                    }

                    if (setting.Filter1 != null)
                    {
                        columnFilter.FieldFilter.Filter1.Operator        = setting.Filter1.Operator;
                        columnFilter.FieldFilter.Filter1.Value           = setting.Filter1.Value;
                        columnFilter.FieldFilter.Filter1.IsCaseSensitive = setting.Filter1.IsCaseSensitive;
                    }

                    columnFilter.FieldFilter.LogicalOperator = setting.FieldFilterLogicalOperator;

                    if (setting.Filter2 != null)
                    {
                        columnFilter.FieldFilter.Filter2.Operator        = setting.Filter2.Operator;
                        columnFilter.FieldFilter.Filter2.Value           = setting.Filter2.Value;
                        columnFilter.FieldFilter.Filter2.IsCaseSensitive = setting.Filter2.IsCaseSensitive;
                    }
                }

                gridView.FilterDescriptors.ResumeNotifications();
            }
            break;
            }
        }