Files
BeWoPlaner/BeWo/Security/DemandUserRight.cs

70 lines
2.9 KiB
C#

using System;
using System.ComponentModel;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using BeWo.Converter;
using BS.Shared;
using BS.SharedLauncher.Information;
namespace BeWo.Security
{
public class DemandUserRight
{
public static readonly DependencyProperty EnabledDemandsProperty = DependencyProperty.RegisterAttached("EnabledDemands", typeof(UserRightType[]), typeof(FrameworkElement), new FrameworkPropertyMetadata());
public static readonly DependencyProperty VisibleDemandsProperty = DependencyProperty.RegisterAttached("VisibleDemands", typeof(UserRightType[]), typeof(FrameworkElement), new FrameworkPropertyMetadata());
[TypeConverter(typeof(UserRightTypeArrayConverter))]
public static UserRightType[] GetEnabledDemands(FrameworkElement element)
{
return (UserRightType[])element.GetValue(EnabledDemandsProperty);
}
[TypeConverter(typeof(UserRightTypeArrayConverter))]
public static UserRightType[] GetVisibleDemands(FrameworkElement element)
{
return (UserRightType[])element.GetValue(VisibleDemandsProperty);
}
[TypeConverter(typeof(UserRightTypeArrayConverter))]
public static void SetEnabledDemands(FrameworkElement element, UserRightType[] value)
{
element.SetBinding(UIElement.IsEnabledProperty, new Binding("LoggedOnUsersRights") { Source = MainSessionSingleton.Instance, Converter = new Right2IsEnabledConverter(), ConverterParameter = value });
}
[TypeConverter(typeof(UserRightTypeArrayConverter))]
public static void SetVisibleDemands(FrameworkElement element, UserRightType[] value)
{
element.SetBinding(UIElement.VisibilityProperty, new Binding("LoggedOnUsersRights") { Source = MainSessionSingleton.Instance, Converter = new Right2VisibilityConverter(), ConverterParameter = value });
}
}
public class Right2VisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return MainSession.HasLoggedOnUserRight((UserRightType[])parameter) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class Right2IsEnabledConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return MainSession.HasLoggedOnUserRight((UserRightType[])parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}