/// <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); }
/// <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("Неправильный тип устанавливаемого значения."); } } }
/// <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); } }
/// <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); }
/// <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); }
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; } }
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); } }
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 }
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; } }
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; } }
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; 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); }
public object InitializeValue(CustomPropertyInfo customPropertyInfo, object context) { //Return a default value for the properties which the PersistenceFramework failed to restore }
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; } }