Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 16 additions & 17 deletions Source/NETworkManager.Controls/MultiSelectDataGrid.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,25 @@
using System.Windows;
using System.Windows.Controls;

namespace NETworkManager.Controls
namespace NETworkManager.Controls;

public class MultiSelectDataGrid : DataGrid
{
public class MultiSelectDataGrid : DataGrid
public MultiSelectDataGrid()
{
public MultiSelectDataGrid()
{
SelectionChanged += DataGridMultiItemSelect_SelectionChanged;
}

private void DataGridMultiItemSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SelectedItemsList = SelectedItems;
}
SelectionChanged += DataGridMultiItemSelect_SelectionChanged;
}

public IList SelectedItemsList
{
get => (IList)GetValue(SelectedItemsListProperty);
set => SetValue(SelectedItemsListProperty, value);
}
private void DataGridMultiItemSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SelectedItemsList = SelectedItems;
}

public static readonly DependencyProperty SelectedItemsListProperty = DependencyProperty.Register("SelectedItemsList", typeof(IList), typeof(MultiSelectDataGrid), new PropertyMetadata(null));
public IList SelectedItemsList
{
get => (IList)GetValue(SelectedItemsListProperty);
set => SetValue(SelectedItemsListProperty, value);
}

public static readonly DependencyProperty SelectedItemsListProperty = DependencyProperty.Register("SelectedItemsList", typeof(IList), typeof(MultiSelectDataGrid), new PropertyMetadata(null));
}
49 changes: 24 additions & 25 deletions Source/NETworkManager.Controls/MultiSelectScrollingDataGrid.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,38 @@
using System.Windows;
using System.Windows.Controls;

namespace NETworkManager.Controls
namespace NETworkManager.Controls;

public class MultiSelectScrollingDataGrid : DataGrid
{
public class MultiSelectScrollingDataGrid : DataGrid
public MultiSelectScrollingDataGrid()
{
public MultiSelectScrollingDataGrid()
{
SelectionChanged += DataGridMultiItemSelect_SelectionChanged;
}
SelectionChanged += DataGridMultiItemSelect_SelectionChanged;
}

private void DataGridMultiItemSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SelectedItemsList = SelectedItems;
}
private void DataGridMultiItemSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SelectedItemsList = SelectedItems;
}

public IList SelectedItemsList
{
get => (IList)GetValue(SelectedItemsListProperty);
set => SetValue(SelectedItemsListProperty, value);
}
public IList SelectedItemsList
{
get => (IList)GetValue(SelectedItemsListProperty);
set => SetValue(SelectedItemsListProperty, value);
}

public static readonly DependencyProperty SelectedItemsListProperty = DependencyProperty.Register("SelectedItemsList", typeof(IList), typeof(MultiSelectScrollingDataGrid), new PropertyMetadata(null));
public static readonly DependencyProperty SelectedItemsListProperty = DependencyProperty.Register("SelectedItemsList", typeof(IList), typeof(MultiSelectScrollingDataGrid), new PropertyMetadata(null));

protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e)
{
if (e.NewItems == null)
return;
protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e)
{
if (e.NewItems == null)
return;

var newItemCount = e.NewItems.Count;
var newItemCount = e.NewItems.Count;

if (newItemCount > 0)
ScrollIntoView(e.NewItems[newItemCount - 1]);
if (newItemCount > 0)
ScrollIntoView(e.NewItems[newItemCount - 1]);

base.OnItemsChanged(e);
}
base.OnItemsChanged(e);
}
}
51 changes: 25 additions & 26 deletions Source/NETworkManager.Controls/ObservableSetCollection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,40 @@
using System.Collections.ObjectModel;


namespace NETworkManager.Controls
{
public class ObservableSetCollection<T> : ObservableCollection<T>
{
public ObservableSetCollection()
{
namespace NETworkManager.Controls;

}
public class ObservableSetCollection<T> : ObservableCollection<T>
{
public ObservableSetCollection()
{

public ObservableSetCollection(List<T> list) : base(list)
{
}

}
public ObservableSetCollection(List<T> list) : base(list)
{

public ObservableSetCollection(IEnumerable<T> collection) : base(collection)
{
}

}
public ObservableSetCollection(IEnumerable<T> collection) : base(collection)
{

protected override void InsertItem(int index, T item)
{
if (Contains(item))
return; // Item already exists
}

base.InsertItem(index, item);
}
protected override void InsertItem(int index, T item)
{
if (Contains(item))
return; // Item already exists

base.InsertItem(index, item);
}

protected override void SetItem(int index, T item)
{
int i = IndexOf(item);
protected override void SetItem(int index, T item)
{
int i = IndexOf(item);

if (i >= 0 && i != index)
return; // Item already exists
if (i >= 0 && i != index)
return; // Item already exists

base.SetItem(index, item);
}
base.SetItem(index, item);
}
}
59 changes: 29 additions & 30 deletions Source/NETworkManager.Converters/AccentToStringConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,40 @@
using NETworkManager.Localization.Translators;
using NETworkManager.Models.Appearance;

namespace NETworkManager.Converters
namespace NETworkManager.Converters;

/// <summary>
/// Convert <see cref="AccentColorInfo"/> to translated <see cref="string"/> or wise versa.
/// </summary>
public sealed class AccentToStringConverter : IValueConverter
{

/// <summary>
/// Convert <see cref="AccentColorInfo"/> to translated <see cref="string"/> or wise versa.
/// Convert <see cref="AccentColorInfo"/> to translated <see cref="string"/>.
/// </summary>
public sealed class AccentToStringConverter : IValueConverter
/// <param name="value">Object from type <see cref="AccentColorInfo"/>.</param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns>Translated <see cref="AccentColorInfo"/>.</returns>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is string accent))
return "-/-";

/// <summary>
/// Convert <see cref="AccentColorInfo"/> to translated <see cref="string"/>.
/// </summary>
/// <param name="value">Object from type <see cref="AccentColorInfo"/>.</param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns>Translated <see cref="AccentColorInfo"/>.</returns>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is string accent))
return "-/-";

return AccentTranslator.GetInstance().Translate(accent);
}
return AccentTranslator.GetInstance().Translate(accent);
}

/// <summary>
/// !!! Method not implemented !!!
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
/// <summary>
/// !!! Method not implemented !!!
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
59 changes: 29 additions & 30 deletions Source/NETworkManager.Converters/ApplicationNameToIconConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,39 @@
using System.Windows.Data;
using NETworkManager.Models;

namespace NETworkManager.Converters
namespace NETworkManager.Converters;

/// <summary>
/// Convert <see cref="ApplicationName"/> to icon (<see cref="Canvas"/>) or wise versa.
/// </summary>
public sealed class ApplicationNameToIconConverter : IValueConverter
{
/// <summary>
/// Convert <see cref="ApplicationName"/> to icon (<see cref="Canvas"/>) or wise versa.
/// Convert <see cref="ApplicationName"/> to icon (<see cref="Canvas"/>).
/// </summary>
public sealed class ApplicationNameToIconConverter : IValueConverter
/// <param name="value">Object from type <see cref="ApplicationName"/>.</param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns>Icon (cref="Canvas"/>).</returns>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
/// <summary>
/// Convert <see cref="ApplicationName"/> to icon (<see cref="Canvas"/>).
/// </summary>
/// <param name="value">Object from type <see cref="ApplicationName"/>.</param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns>Icon (cref="Canvas"/>).</returns>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is ApplicationName name))
return null;
if (!(value is ApplicationName name))
return null;

return ApplicationManager.GetIcon(name);
}

/// <summary>
/// !!! Method not implemented !!!
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
return ApplicationManager.GetIcon(name);
}

/// <summary>
/// !!! Method not implemented !!!
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,39 @@
using System.Globalization;
using System.Windows.Data;

namespace NETworkManager.Converters
namespace NETworkManager.Converters;

/// <summary>
/// Convert <see cref="ApplicationName"/> to translated <see cref="string"/> or wise versa.
/// </summary>
public sealed class ApplicationNameToTranslatedStringConverter : IValueConverter
{
/// <summary>
/// Convert <see cref="ApplicationName"/> to translated <see cref="string"/> or wise versa.
/// Convert <see cref="ApplicationName"/> to translated <see cref="string"/>.
/// </summary>
public sealed class ApplicationNameToTranslatedStringConverter : IValueConverter
/// <param name="value">Object from type <see cref="ApplicationName"/>.</param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns>Translated <see cref="ApplicationName"/>.</returns>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
/// <summary>
/// Convert <see cref="ApplicationName"/> to translated <see cref="string"/>.
/// </summary>
/// <param name="value">Object from type <see cref="ApplicationName"/>.</param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns>Translated <see cref="ApplicationName"/>.</returns>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is ApplicationName name))
return "-/-";
if (!(value is ApplicationName name))
return "-/-";

return ApplicationNameTranslator.GetInstance().Translate(name);
}

/// <summary>
/// !!! Method not implemented !!!
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
return ApplicationNameTranslator.GetInstance().Translate(name);
}

/// <summary>
/// !!! Method not implemented !!!
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Loading