Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/GridDemo.Wpf/Controls/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/GridDemo.Wpf/Controls/Converters.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using System.Windows;
using DevExpress.Xpf.Editors;
using DevExpress.Data.Filtering;
using System.Collections.ObjectModel;
using System.Reflection;
using System.Windows.Media;
using System.Windows.Markup;

namespace GridDemo {
    public class MultiSelectModeConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (MultiSelectMode)value == MultiSelectMode.None ? false : true;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (bool)value ? MultiSelectMode.Row : MultiSelectMode.None;
        }
    }
    public class FocusedToColorConverter : MarkupExtension, IValueConverter {
        public FocusedToColorConverter() { }
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return this;
        }
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(((string)parameter) == Enum.GetName(typeof(FocusedGrid), (FocusedGrid)value))
                return new SolidColorBrush(Color.FromArgb(50, 200, 0, 0));
            return new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
    public class PastUnderFocusedRowToSelectedIndexConverter : MarkupExtension, IValueConverter {
        public PastUnderFocusedRowToSelectedIndexConverter() { }
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return this;
        }
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((bool)value) ? 0 : 1;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((int)value == 0) ? true : false;
        }
        #endregion
    }
    public class GeneratingDataToWaitIndicatorTypeConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (bool)value ? WaitIndicatorType.None : WaitIndicatorType.Panel;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotSupportedException("This method shouldn't be called");
        }
    }
    public class IssueStatusImageConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            string name = ((string)value).Replace(" ", "");
            string path = "GridDemo.Images.IssueIcons." + name + ".png";
            return DevExpress.Xpf.Core.Native.ImageHelper.CreateImageFromEmbeddedResource(Assembly.GetExecutingAssembly(), path);
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class IdToUriConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value != null) {
                return "http://devexpress.com/Support/Center/p/" + value.ToString() + ".aspx";
            }
            return null;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotSupportedException();
        }
    }
    public class CategoryDataToImageSourceConverter : BytesToImageSourceConverter {
        static Dictionary<string, object> cachedImages = new Dictionary<string, object>();

        public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            CategoryData categoryData = value as CategoryData;
            if(value == null) return null;
            if(cachedImages.ContainsKey(categoryData.Name)) {
                return cachedImages[categoryData.Name];
            } else {
                object image = base.Convert(categoryData.Picture, targetType, parameter, culture);
                cachedImages.Add(categoryData.Name, image);
                return image;
            }
        }
    }
    public class BooleanToDefaultBooleanConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (bool)value ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class NavigationStyleToTextConverter : IValueConverter {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null) return value;
            if((GridViewNavigationStyle)value == GridViewNavigationStyle.Cell)
                return "By Cell";
            if((GridViewNavigationStyle)value == GridViewNavigationStyle.Row)
                return "By Row";
            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
    public class ScrollingAnimationDurationToBooleanConverter : IValueConverter {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return System.Convert.ToDouble(value) > 0;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return System.Convert.ToBoolean(value) ? 350 : 0;
        }
        #endregion
    }
    public class ShowSearchPanelModeToTextConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            ShowSearchPanelMode? showSearchPanelModeq = (ShowSearchPanelMode?)value;
            if(showSearchPanelModeq == null)
                return value;
            ShowSearchPanelMode showSearchPanelMode = showSearchPanelModeq.Value;
            switch(showSearchPanelMode) {
                case ShowSearchPanelMode.Default: return "Default";
                case ShowSearchPanelMode.Always: return "Always";
                case ShowSearchPanelMode.Never: return "Never";
            }
            return value;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class FindModeToTextConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            FindMode? findModeq = (FindMode?)value;
            if(findModeq == null)
                return value;
            FindMode findMode = findModeq.Value;
            switch(findMode) {
                case FindMode.Always: return "Always";
                case FindMode.FindClick: return "Find on Click";
            }
            return value;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class FilterConditionConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            FilterCondition? filterConditionq = (FilterCondition?)value;
            if(filterConditionq == null)
                return value;
            FilterCondition filterCondition = filterConditionq.Value;
            switch(filterCondition) {
                case FilterCondition.Default: return "Default";
                case FilterCondition.Contains: return "Contains";
                case FilterCondition.StartsWith: return "Starts With";
                case FilterCondition.Like: return "Like";
            }
            return value;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class SearchPanelModeConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((ListBoxEditItem)value).Content;
        }
    }
    public class GroupNameToImageConverter : IValueConverter {
        public static List<string> images = new List<string> { "administration", "inventory", "manufacturing", "quality", "research", "sales" };
        public static string GetImagePathByGroupName(string groupName) {
            groupName = groupName.ToLower();
            foreach(string item in images) {
                if(groupName.Contains(item)) {
                    return "/GridDemo;component/Images/MultiView/GroupName/" + item + ".png";
                }
            }
            return groupName;
        }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return GetImagePathByGroupName((string)value);
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class HeaderToImageConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return "/GridDemo;component/Images/MultiView/" + ((string)value).Replace(" ", String.Empty) + ".png";
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class ColumnHeaderTextConverter : IValueConverter {
        public string ColumnName { get; set; }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return ((string)value) == ColumnName ? "Bold" : "Normal";
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class BirthdayImageVisibilityConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null || !(value is DateTime))
                return Visibility.Collapsed;
            DateTime birthDate = (DateTime)value;
            DateTime someDate = DateTime.Now.AddMonths(3);
            int someMonth = someDate.Month < 3 ? someDate.Month + 12 : someDate.Month;
            int birthMonth = birthDate.Month < 3 ? birthDate.Month + 12 : birthDate.Month;
            return (birthMonth >= DateTime.Now.Month && birthMonth <= someMonth && (birthDate.Month == DateTime.Now.Month ? birthDate.Day > DateTime.Now.Day : true)) ? Visibility.Visible : Visibility.Collapsed;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class ViewToBooleanConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return value is TableView || value is TreeListView;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class CountToVisibilityConverter : IValueConverter {
        public bool Invert { get; set; }
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((int)value > 0) ^ Invert ? Visibility.Visible : Visibility.Collapsed;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
    public class IntToDoubleConverter : IValueConverter {
        #region IValueConverter Members
        object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Convert.ToDouble(value);
        }
        object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Convert.ToInt32(value);
        }
        #endregion
    }
    public class RoundValueConverter : MarkupExtension, IValueConverter {
        #region IValueConverter Members
        object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Math.Round(Convert.ToDouble(value));
        }
        object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Math.Round(Convert.ToDouble(value));
        }
        #endregion
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return this;
        }
    }
}