コード例 #1
0
ファイル: PreviewView.xaml.cs プロジェクト: kkalinowski/nex
        private bool dirChanged = true; //determines if directory has changed and is needed to reload

        #endregion Fields

        #region Constructors

        public PreviewView()
        {
            InitializeComponent();
            FileSystem = new WindowsFileSystem();
            History = new History<IDirectoryViewItem>();

            Binding bind = new Binding("Items");
            bind.Source = FileSystem;
            lbContent.SetBinding(ListBox.ItemsSourceProperty, bind);

            lbContent.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged);
        }
コード例 #2
0
ファイル: DirectoryViewModel.cs プロジェクト: kkalinowski/nex
        public DirectoryViewModel()
        {
            ExecuteItemCommand = new DelegateCommand(ExecuteExecuteItem, CanExecuteExecuteItem);
            History = new History<IDirectoryViewItem>();
            FileSystem = new WindowsFileSystem();

            propObserver = new PropertyObserver<DirectoryViewModel>(this);
            propObserver.RegisterHandler(x => x.SearchText, ManageSearch);

            fileSystemWatcher = new FileSystemWatcher { IncludeSubdirectories = false, };
            fileSystemWatcher.Created += fileSystemWatcher_Changed;
            fileSystemWatcher.Renamed += fileSystemWatcher_Changed;
            fileSystemWatcher.Deleted += fileSystemWatcher_Changed;
        }
コード例 #3
0
        public ThreeColumnView()
        {
            InitializeComponent();
            fileSystem1 = new WindowsFileSystem();
            fileSystem2 = new WindowsFileSystem();
            fileSystem3 = new WindowsFileSystem();
            history = new History<IDirectoryViewItem>();

            Binding bind2 = new Binding("Items");//bind to second(middle) ListBox
            bind2.Source = FileSystem;
            lbContent2.SetBinding(ListBox.ItemsSourceProperty, bind2);

            lbContent2.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged);
        }
コード例 #4
0
        private void bCompare_Click(object sender, RoutedEventArgs e)
        {
            //load directory content
            WindowsFileSystem fileSystem = new WindowsFileSystem();
            IEnumerable<IDirectoryViewItem> leftItems = fileSystem.GetDirectoryContent(LeftDir);
            List<IDirectoryViewItem> rightItems = fileSystem.GetDirectoryContent(RightDir).ToList();//list need for remove functionality

            comparisonResult = new List<DirectoryComparison>();
            IDirectoryViewItem rightItem;

            foreach (IDirectoryViewItem item in leftItems)
            {
                if (item == null || item.IsMoveUp)
                    continue;

                rightItem = rightItems.SingleOrDefault(dvi => dvi != null && dvi.Name == item.Name);//right item that matches left name
                if (rightItem != null)
                {
                    if (item.IsDirectory)
                        comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.Equal));
                    else if (item.LastModifiedTime > rightItem.LastModifiedTime)
                        comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.LeftNewer));
                    else if (item.LastModifiedTime < rightItem.LastModifiedTime)
                        comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.RightNewer));
                    else
                        comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.Equal));

                    rightItems.Remove(rightItem);//no need in futher comparison
                }
                else
                {
                    comparisonResult.Add(new DirectoryComparison(item, null, DirectoryComparisonResult.LeftNewer));
                }
            }

            //every item from right collection don't exist in left
            foreach (IDirectoryViewItem item in rightItems)
            {
                if (item == null || item.IsMoveUp)
                    continue;

                comparisonResult.Add(new DirectoryComparison(null, item, DirectoryComparisonResult.RightNewer));
            }

            lvCompare.ItemsSource = comparisonResult;
        }
コード例 #5
0
 private void ExecuteDropMove(object parameter)
 {
     var sourceFileSystem = new WindowsFileSystem(droppedFiles.First().FullName);
     var operation = new MoveOperation(droppedFiles, ActiveView.FullPath, sourceFileSystem, ActiveView.FileSystem);
     OperationsManager.ExecuteOperation(operation);
 }