port from perforce
This commit is contained in:
57
intromat/Intromat/ViewModels/FileViewModel.cs
Normal file
57
intromat/Intromat/ViewModels/FileViewModel.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System.IO;
|
||||
using Intromat.Interfaces;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace Intromat.ViewModels
|
||||
{
|
||||
public abstract class FileViewModel : ReactiveObject, ITreeItem, IFile
|
||||
{
|
||||
private bool _isExpanded;
|
||||
private bool _isSelected;
|
||||
private readonly FolderViewModel _parent;
|
||||
private readonly ModuleViewModel _module;
|
||||
private string _name;
|
||||
private bool _isDirty;
|
||||
private readonly string _extension;
|
||||
|
||||
public FileViewModel(ModuleViewModel module, FolderViewModel parent, string name, string extension)
|
||||
{
|
||||
_extension = extension;
|
||||
_module = module;
|
||||
_parent = parent;
|
||||
_name = name;
|
||||
}
|
||||
|
||||
public abstract ReactiveObject CurrentViewModel { get; }
|
||||
|
||||
public string FullPath => Path.Combine(_parent.FullPath, $"{_name}.{_extension}");
|
||||
|
||||
public bool IsExpanded
|
||||
{
|
||||
get => _isExpanded;
|
||||
set => this.RaiseAndSetIfChanged(ref _isExpanded, value);
|
||||
}
|
||||
|
||||
public bool IsSelected
|
||||
{
|
||||
get => _isSelected;
|
||||
set => this.RaiseAndSetIfChanged(ref _isSelected, value);
|
||||
}
|
||||
|
||||
public virtual string Name
|
||||
{
|
||||
get => _name;
|
||||
set => this.RaiseAndSetIfChanged(ref _name, value);
|
||||
}
|
||||
|
||||
public FolderViewModel Parent => _parent;
|
||||
|
||||
public ModuleViewModel Module => _module;
|
||||
|
||||
public bool IsDirty
|
||||
{
|
||||
get => _isDirty;
|
||||
set => this.RaiseAndSetIfChanged(ref _isDirty, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user