JD2022-TU1/main/tools/apps/DataFileAnalyzer/Commands/CopyAllCommand.cs

57 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UAF.WPF.Commands;
namespace DataFileAnalyzer.Commands
{
public class CopyAllCommand : BaseCommand
{
public override bool CanExecute(object parameter)
{
DataFileAnalyzerModel model = parameter as DataFileAnalyzerModel;
if (model != null)
{
if (model.SelectedFile != null)
{
switch (model.ActiveView)
{
case DataFileAnalyzerModel.FocusedView.ReferencedByMeView:
case DataFileAnalyzerModel.FocusedView.ReferencingMeView:
return true;
default:
return false;
}
}
}
return false;
}
public override void Execute(object parameter)
{
DataFileAnalyzerModel model = parameter as DataFileAnalyzerModel;
if (model != null && model.SelectedFile != null)
{
IEnumerable<DataFileDependency> selectedDependencies = null;
if (model.ActiveView == DataFileAnalyzerModel.FocusedView.ReferencedByMeView)
{
selectedDependencies = model.SelectedFile.Children;
}
else if (model.ActiveView == DataFileAnalyzerModel.FocusedView.ReferencingMeView)
{
selectedDependencies = model.SelectedFile.Parents;
}
if (selectedDependencies != null)
{
string copyText = selectedDependencies.Select(dependency => dependency.Path)
.Aggregate((first, next) => first + "\n" + next);
System.Windows.Clipboard.SetText(copyText);
}
}
}
}
}