57 lines
1.9 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|