public static void FillMenu(DuplPairViewModel res, out string firstToSecond, out string secondToFirst, out IUCommand firstToSecondCommand, out IUCommand secondToFirstCommand) { string menuText; if (Path.GetDirectoryName(res.FirstFile.Path) == Path.GetDirectoryName(res.SecondFile.Path)) { menuText = "Переименовать {0} в {1}"; string firstNewName = GetSimilarName(res.SecondFile.Path, res.FirstFile.Path); firstToSecond = String.Format(menuText, Path.GetFileName(res.FirstFile.Path), Path.GetFileName(firstNewName)); firstToSecondCommand = new RenameLikeCommand(res, firstNewName, PositionInDuplPair.First); string secondNewName = GetSimilarName(res.FirstFile.Path, res.SecondFile.Path); secondToFirst = String.Format(menuText, Path.GetFileName(res.SecondFile.Path), Path.GetFileName(secondNewName)); secondToFirstCommand = new RenameLikeCommand(res, secondNewName, PositionInDuplPair.Second); } else { menuText = "Переместить в {0} и переименовать {1} в {2}"; string firstNewName = GetSimilarName(res.SecondFile.Path, res.FirstFile.Path); firstToSecond = String.Format(menuText, Path.GetDirectoryName(res.SecondFile.Path), Path.GetFileName(res.FirstFile.Path), Path.GetFileName(firstNewName)); firstToSecondCommand = new RenameLikeCommand(res, firstNewName, PositionInDuplPair.First); string secondNewName = GetSimilarName(res.FirstFile.Path, res.SecondFile.Path); secondToFirst = String.Format(menuText, Path.GetDirectoryName(res.FirstFile.Path), Path.GetFileName(res.SecondFile.Path), Path.GetFileName(secondNewName)); secondToFirstCommand = new RenameLikeCommand(res, secondNewName, PositionInDuplPair.Second); } }
public DuplicateGroup(DuplPairViewModel result) { ResultList = new List <DuplPairViewModel>(1); ResultList.Add(result); FileList = new ObservableCollection <ImageInfoClass>(); FileList.Add(result.FirstFile); FileList.Add(result.SecondFile); }
public static void CalculateIndex(DuplPairViewModel viewResultOfDupl, IConfigurationModel configuration) { List <ImageInfoClass> list = new List <ImageInfoClass>(2); list.Add(viewResultOfDupl.FirstFile); list.Add(viewResultOfDupl.SecondFile); CalculateIndex(list, configuration); }
public DeleteOtherFromPairCommand(ImageInfoClass currentInfo, DuplPairViewModel result, ObservableCollection <DuplPairViewModel> resultList, IEditableCollectionView collectionView, int index) { _forSaveInfo = currentInfo; _result = result; _resultList = resultList; _collectionView = collectionView; _index = index; }
internal void AddResult(DuplPairViewModel result) { ResultList.Add(result); if (!FileList.Contains(result.FirstFile)) { FileList.Add(result.FirstFile); } if (!FileList.Contains(result.SecondFile)) { FileList.Add(result.SecondFile); } }
private ImageInfoClass GetBadImage(DuplPairViewModel deleteResult) { if (deleteResult.FirstFile.UtilityIndex > deleteResult.SecondFile.UtilityIndex) { return(deleteResult.SecondFile); } else if (deleteResult.FirstFile.UtilityIndex < deleteResult.SecondFile.UtilityIndex) { return(deleteResult.FirstFile); } else { throw new ArgumentException("Не знаю какой файл худщий!"); } }
void AssociatedObject_ContextMenuOpening(object sender, ContextMenuEventArgs e) { var grid = sender as MultiSelector; if (grid != null) { if (grid.SelectedItems.Count > 1) { if (grid.SelectedItem is DuplPairViewModel) { IList viewResultsOfDupl = (IList)grid.SelectedItems; if (MenuGeneratorMultiDuplPair != null) { grid.ContextMenu.ItemsSource = MenuGeneratorMultiDuplPair(viewResultsOfDupl); } } /* else if (grid.SelectedItem is DuplicateGroup) * { * IList viewResults = (IList)grid.SelectedItems; * if (MenuGeneratorMultiDuplGroup != null) * grid.ContextMenu.ItemsSource = MenuGeneratorMultiDuplGroup(viewResults); * }*/ } else { if (grid.SelectedItem is DuplPairViewModel) { DuplPairViewModel viewResultOfDupl = (DuplPairViewModel)grid.SelectedItem; if (MenuGeneratorDuplPair != null) { grid.ContextMenu.ItemsSource = MenuGeneratorDuplPair(viewResultOfDupl); } } /*else if (grid.SelectedItem is DuplicateGroup) * { * DuplicateGroup duplicateGroup = (DuplicateGroup)grid.SelectedItem; * if (MenuGeneratorDuplGroup != null) * grid.ContextMenu.ItemsSource = MenuGeneratorDuplGroup(duplicateGroup); * }*/ } } }
public bool Execute() { // _index = ((ICollectionView)_collectionView).CurrentPosition; //_collectionView.EditItem(_resultList[_index]); _ignoredResult = _resultList[_index]; //_dispatcher.Invoke(() => //{ _resultList.RemoveAt(_index); //}); _ignoreList.Add(_ignoredResult); //_collectionView.Refresh(); //http://drwpf.com/blog/2008/10/20/itemscontrol-e-is-for-editable-collection/ //_collectionView.CommitEdit(); //_collectionView.RemoveAt(_index); string res = Application.Current.Resources["desc_ignorePair"] as string; _description = String.Format(res, _ignoredResult.FirstFile.Path, _ignoredResult.SecondFile.Path); return(true); }
public RenameLikeCommand(DuplPairViewModel result, string newPath, PositionInDuplPair place) { _newPath = newPath; _result = result; _place = place; //_oldPath = oldPath; if (place == PositionInDuplPair.First) { _oldPath = result.FirstFile.Path; } else if (place == PositionInDuplPair.Second) { _oldPath = result.SecondFile.Path; } else { throw new ArgumentException("Неизвестно значение PositionInDuplPair " + place); } }
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (values[2] != DependencyProperty.UnsetValue && values[3] != DependencyProperty.UnsetValue) { DuplPairViewModel result = values[0] as DuplPairViewModel; PositionInDuplPair position = (PositionInDuplPair)values[1]; Color goodColor = (Color)values[2]; Color badColor = (Color)values[3]; MaxProperty property = (MaxProperty)parameter; if (result != null && position != null && goodColor != null && badColor != null && property != null) { switch (property) { case MaxProperty.FileSize: if (result.FirstFile.FileSize == result.SecondFile.FileSize) { return(new SolidColorBrush()); } if (result.FirstFile.FileSize < result.SecondFile.FileSize) { return(position == PositionInDuplPair.First ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } else { return(position == PositionInDuplPair.Second ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } //чем выше JpegQuality тем лучше изображение case MaxProperty.JpegQuality: if (result.FirstFile.JpegQuality == result.SecondFile.JpegQuality) { return(new SolidColorBrush()); } if (result.FirstFile.JpegQuality < result.SecondFile.JpegQuality) { return(position == PositionInDuplPair.First ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } else { return(position == PositionInDuplPair.Second ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } case MaxProperty.Sharpness: if (result.FirstFile.Sharpness == result.SecondFile.Sharpness) { return(new SolidColorBrush()); } if (result.FirstFile.Sharpness < result.SecondFile.Sharpness) { return(position == PositionInDuplPair.First ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } else { return(position == PositionInDuplPair.Second ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } case MaxProperty.Resolution: if (result.FirstFile.Width * result.FirstFile.Height == result.SecondFile.Width * result.SecondFile.Height) { return(new SolidColorBrush()); } if (result.FirstFile.Width * result.FirstFile.Height < result.SecondFile.Width * result.SecondFile.Height) { return(position == PositionInDuplPair.First ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } else { return(position == PositionInDuplPair.Second ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } case MaxProperty.UtilityIndex: if (result.FirstFile.UtilityIndex == result.SecondFile.UtilityIndex) { return(new SolidColorBrush()); } if (result.FirstFile.UtilityIndex < result.SecondFile.UtilityIndex) { return(position == PositionInDuplPair.First ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } else { return(position == PositionInDuplPair.Second ? new SolidColorBrush(badColor) : new SolidColorBrush(goodColor)); } } } } return(new SolidColorBrush()); }