mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
56 lines
1.9 KiB
C#
56 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Artemis.Core;
|
|
using Artemis.Core.LayerEffects;
|
|
using Artemis.Core.Services;
|
|
using Artemis.UI.Ninject.Factories;
|
|
using Artemis.UI.Shared.Services;
|
|
using Stylet;
|
|
|
|
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.TreeItem
|
|
{
|
|
public class LayerViewModel : TreeItemViewModel
|
|
{
|
|
private readonly IWindowManager _windowManager;
|
|
private readonly ILayerHintVmFactory _vmFactory;
|
|
|
|
public LayerViewModel(ProfileElement layer,
|
|
IRgbService rgbService,
|
|
IProfileEditorService profileEditorService,
|
|
IDialogService dialogService,
|
|
IProfileTreeVmFactory profileTreeVmFactory,
|
|
ILayerBrushService layerBrushService,
|
|
IWindowManager windowManager,
|
|
ILayerHintVmFactory vmFactory) :
|
|
base(layer, rgbService, profileEditorService, dialogService, profileTreeVmFactory, layerBrushService)
|
|
{
|
|
_windowManager = windowManager;
|
|
_vmFactory = vmFactory;
|
|
}
|
|
|
|
public Layer Layer => ProfileElement as Layer;
|
|
public bool ShowIcons => Layer?.LayerBrush != null;
|
|
public override bool SupportsChildren => false;
|
|
|
|
public override bool IsExpanded { get; set; }
|
|
|
|
public void OpenAdaptionHints()
|
|
{
|
|
_windowManager.ShowDialog(_vmFactory.LayerHintsDialogViewModel(Layer));
|
|
}
|
|
|
|
public override void UpdateBrokenState()
|
|
{
|
|
List<IBreakableModel> brokenModels = ProfileElement.GetBrokenHierarchy().ToList();
|
|
if (!brokenModels.Any())
|
|
BrokenState = null;
|
|
else
|
|
{
|
|
BrokenState = "Layer is in a broken state, click to view exception(s).\r\n" +
|
|
$"{string.Join("\r\n", brokenModels.Select(e => $" • {e.BrokenDisplayName} - {e.BrokenState}"))}";
|
|
}
|
|
}
|
|
}
|
|
} |