286 lines
7.3 KiB
C#
286 lines
7.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
using System.Windows.Threading;
|
|
|
|
using FasdDesktopUi.Basics.Models;
|
|
using FasdDesktopUi.Pages.DetailsPage.Models;
|
|
using FasdDesktopUi.Basics;
|
|
|
|
using static C4IT.Logging.cLogManager;
|
|
|
|
namespace FasdDesktopUi.Pages.DetailsPage.ViewModels
|
|
{
|
|
public class DetailsPageViewModel : BaseViewModel
|
|
{
|
|
#region Properties
|
|
|
|
private int shownValueColumnsCount;
|
|
|
|
public cSupportCaseDataProvider DataProvider { get; set; }
|
|
|
|
#region ZoomInPercent
|
|
|
|
private int zoomInPercent;
|
|
|
|
public int ZoomInPercent
|
|
{
|
|
get { return zoomInPercent; }
|
|
set
|
|
{
|
|
if (value < 50)
|
|
value = 50;
|
|
else if (value > 250)
|
|
value = 250;
|
|
|
|
zoomInPercent = value;
|
|
cFasdCockpitConfig.Instance.SetDetailsPageZoom(value);
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Header Properties
|
|
|
|
#region PageTitle Property
|
|
|
|
private string pageTitle;
|
|
public string PageTitle
|
|
{
|
|
get { return pageTitle; }
|
|
set
|
|
{
|
|
pageTitle = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region HeadingData Property
|
|
|
|
private List<cHeadingDataModel> headingData;
|
|
|
|
public List<cHeadingDataModel> HeadingData
|
|
{
|
|
get { return headingData; }
|
|
set
|
|
{
|
|
headingData = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Widget Properties
|
|
|
|
#region WidgetData Property
|
|
private List<List<cWidgetValueModel>> widgetDataList;
|
|
public List<List<cWidgetValueModel>> WidgetDataList
|
|
{
|
|
get { return widgetDataList; }
|
|
set
|
|
{
|
|
widgetDataList = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region WidgetGeometry Property
|
|
private List<DetailsPageWidgetGeometryModel> widgetGeometryList;
|
|
public List<DetailsPageWidgetGeometryModel> WidgetGeometryList
|
|
{
|
|
get { return widgetGeometryList; }
|
|
set
|
|
{
|
|
widgetGeometryList = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Details Properties
|
|
|
|
#region TimeSinceLastRefresh property
|
|
private TimeSpan timeSinceLastRefresh;
|
|
public TimeSpan TimeSinceLastRefresh
|
|
{
|
|
get { return timeSinceLastRefresh; }
|
|
set
|
|
{
|
|
timeSinceLastRefresh = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region DetailsGeometry property
|
|
|
|
private DetailsPageDataHistoryCollectionGeometryModel detailsGeometry;
|
|
|
|
public DetailsPageDataHistoryCollectionGeometryModel DetailsGeometry
|
|
{
|
|
get { return detailsGeometry; }
|
|
set
|
|
{
|
|
detailsGeometry = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region DetailsData property
|
|
|
|
private List<cDetailsPageDataHistoryDataModel> detailsDataList;
|
|
public List<cDetailsPageDataHistoryDataModel> DetailsDataList
|
|
{
|
|
get { return detailsDataList; }
|
|
set
|
|
{
|
|
detailsDataList = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ShownValueColumnsCount
|
|
public int ShownValueColumnsCount
|
|
{
|
|
get => shownValueColumnsCount; set
|
|
{
|
|
shownValueColumnsCount = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Menu Properties
|
|
|
|
#region MenuBarData property
|
|
|
|
private List<cMenuDataBase> menuBarData;
|
|
|
|
public List<cMenuDataBase> MenuBarData
|
|
{
|
|
get { return menuBarData; }
|
|
set
|
|
{
|
|
menuBarData = value;
|
|
OnPropertyChanged();
|
|
OnPropertyChanged(nameof(MenuDrawerData));
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region MenuDrawerData Property
|
|
|
|
public List<cMenuDataBase> MenuDrawerData
|
|
{
|
|
get
|
|
{
|
|
if (MenuBarData != null)
|
|
return MenuBarData.Where(x => x.IconPositionIndex < 0).ToList();
|
|
|
|
return new List<cMenuDataBase>();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
public DetailsPageViewModel()
|
|
{
|
|
cFasdCockpitConfig.Instance.UiSettingsChanged += CockpitConfig_UiSettingsChanged;
|
|
}
|
|
|
|
private void CockpitConfig_UiSettingsChanged(object sender, EventArgs e)
|
|
{
|
|
ZoomInPercent = cFasdCockpitConfig.Instance.DetailsPageZoom;
|
|
}
|
|
|
|
#region Set DataContext
|
|
|
|
public void SetGeometryValues(DetailsPageGeometry geometryValues)
|
|
{
|
|
var CM = MethodBase.GetCurrentMethod();
|
|
LogMethodBegin(CM);
|
|
try
|
|
{
|
|
WidgetGeometryList = geometryValues.WidgetGeometryList;
|
|
DetailsGeometry = geometryValues.DetailsCollectionGeometry;
|
|
}
|
|
catch (Exception E)
|
|
{
|
|
LogEntry($"Passed geometry values: {geometryValues}");
|
|
LogException(E);
|
|
}
|
|
finally
|
|
{
|
|
LogMethodEnd(CM);
|
|
}
|
|
}
|
|
|
|
public void SetPropertyValues(cDetailsPageData propertyValues)
|
|
{
|
|
var CM = MethodBase.GetCurrentMethod();
|
|
LogMethodBegin(CM);
|
|
try
|
|
{
|
|
DataProvider = propertyValues.DataProvider;
|
|
|
|
//Heading Properties
|
|
HeadingData = propertyValues.HeadingData;
|
|
|
|
//Widget Properties
|
|
WidgetDataList = propertyValues.WidgetData;
|
|
|
|
//Details Properties
|
|
TimeSinceLastRefresh = propertyValues.TimeSinceLastRefresh;
|
|
ShownValueColumnsCount = propertyValues.ShownValueColumnsCount;
|
|
DetailsDataList = propertyValues.DataHistoryList;
|
|
|
|
//Menu Properties
|
|
MenuBarData = propertyValues.MenuBarData;
|
|
}
|
|
catch (Exception E)
|
|
{
|
|
LogEntry($"Passed history values: {propertyValues}");
|
|
LogException(E);
|
|
}
|
|
finally
|
|
{
|
|
LogMethodEnd(CM);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
}
|
|
} |