110 lines
3.6 KiB
C#
110 lines
3.6 KiB
C#
// Copyright (c) 2017-today schick Informatik
|
|
// Description: Select classes for import
|
|
// Returns: Array of selected classes as property
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Shapes;
|
|
|
|
using bsmd.database;
|
|
|
|
namespace ENI2.EditControls
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for SelectImportClassesDialog.xaml
|
|
/// </summary>
|
|
public partial class SelectImportClassesDialog : ENI2.Controls.EditWindowBase
|
|
{
|
|
private List<SelectClass> _selectClasses = new List<SelectClass>();
|
|
private List<bsmd.database.Message.NotificationClass> _selectedClasses = new List<Message.NotificationClass>();
|
|
|
|
public SelectImportClassesDialog()
|
|
{
|
|
InitializeComponent();
|
|
this.Loaded += SelectImportClassesDialog_Loaded;
|
|
}
|
|
|
|
public List<bsmd.database.Message.NotificationClass> SelectedClasses
|
|
{
|
|
get { return _selectedClasses; }
|
|
}
|
|
|
|
private void SelectImportClassesDialog_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
|
|
foreach(bsmd.database.Message.NotificationClass notificationClass in Enum.GetValues(typeof(bsmd.database.Message.NotificationClass)))
|
|
{
|
|
SelectClass sc = new SelectClass();
|
|
sc.Name = Enum.GetName(typeof(bsmd.database.Message.NotificationClass), notificationClass);
|
|
sc.Class = notificationClass;
|
|
sc.IsSelected = false;
|
|
_selectClasses.Add(sc);
|
|
}
|
|
_selectClasses.Sort();
|
|
this.checkListBoxClasses.ItemsSource = _selectClasses;
|
|
this.OKClicked += SelectImportClassesDialog_OKClicked;
|
|
}
|
|
|
|
private void SelectImportClassesDialog_OKClicked()
|
|
{
|
|
foreach(SelectClass sc in _selectClasses)
|
|
{
|
|
if (sc.IsSelected) _selectedClasses.Add(sc.Class);
|
|
}
|
|
}
|
|
|
|
class SelectClass : IComparable, INotifyPropertyChanged
|
|
{
|
|
private bool _isSelected;
|
|
public string Name { get; set; }
|
|
public bsmd.database.Message.NotificationClass Class { get; set; }
|
|
public bool IsSelected
|
|
{
|
|
get { return _isSelected; }
|
|
set
|
|
{
|
|
_isSelected = value;
|
|
OnPropertyChanged("IsSelected");
|
|
}
|
|
}
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
protected void OnPropertyChanged(string propertyName)
|
|
{
|
|
if(PropertyChanged != null)
|
|
{
|
|
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|
|
|
|
public int CompareTo(object obj)
|
|
{
|
|
return Name.CompareTo(((SelectClass)obj).Name);
|
|
}
|
|
}
|
|
|
|
private void buttonAll_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
foreach (SelectClass sc in _selectClasses)
|
|
sc.IsSelected = true;
|
|
}
|
|
|
|
private void buttonNone_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
foreach (SelectClass sc in _selectClasses)
|
|
sc.IsSelected = false;
|
|
}
|
|
}
|
|
}
|