コード例 #1
0
 public DirectoryComparison(IDirectoryViewItem left, IDirectoryViewItem right, DirectoryComparisonResult result)
 {
     Left        = left;
     Right       = right;
     Result      = result;
     synchronize = true;
 }
コード例 #2
0
        public override void Execute(object parameter)
        {
            var active = MainViewModel.ActiveDirectoryContainer.ActiveView;
            //get data from clipboard
            var data = Clipboard.GetDataObject();

            //files
            var paths = (string[])data.GetData(DataFormats.FileDrop, true);

            if (paths == null)
            {
                MessageBox.Show("Schowek jest pusty");
                return;
            }

            //get flag indicating whether it is copy or cut
            var stream = (MemoryStream)data.GetData("Preferred DropEffect", true);
            bool copyFlag = stream.ReadByte() == 5 ? true : false;

            //change paths into IDirectoryViewItems
            var items = new IDirectoryViewItem[paths.Length];
            for (int i = 0; i < paths.Length; i++)
                items[i] = WindowsFile.CreateFromPath(paths[i]);

            MultiFileOperation operation;
            if (copyFlag)
                operation = new CopyOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem);
            else
                operation = new MoveOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem);

            OperationManager.ExecuteOperation(operation);
        }
コード例 #3
0
        public FileExistDialog(IDirectoryViewItem existingFile, string destination)
        {
            InitializeComponent();
            Result = DefaultResult;

            tInfo.Text = CreateInfoMessage(existingFile, destination);
        }
コード例 #4
0
ファイル: WindowsFileSystem.cs プロジェクト: kkalinowski/nex
 public override void Delete(IDirectoryViewItem toDelete)
 {
     if (toDelete.IsDirectory)
         Directory.Delete(toDelete.FullName, true);
     else
         File.Delete(toDelete.FullName);
 }
コード例 #5
0
        public FileExistDialog(IDirectoryViewItem existingFile, string destination)
        {
            InitializeComponent();
            Result = DefaultResult;

            tInfo.Text = CreateInfoMessage(existingFile, destination);
        }
コード例 #6
0
        private void ThreeColumnView_MouseDoubleClick(object sender, RoutedEventArgs e)
        {
            ListBoxItem        clicked = (ListBoxItem)sender;
            IDirectoryViewItem item    = (IDirectoryViewItem)clicked.Content;

            OnItemExecuted(item);
        }
コード例 #7
0
ファイル: WindowsFileSystem.cs プロジェクト: kkalinowski/nex
        public override IEnumerable <IDirectoryViewItem> GetDirectoryContent(string path)
        {
            DirectoryInfo di = new DirectoryInfo(path);

            FileSystemInfo[] infos = di.GetFileSystemInfos();

            int lengthWithoutHidden = infos.Count(inf => (inf.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden);
            int addUp = Convert.ToInt32(!PathExt.IsDriveRoot(path));

            IDirectoryViewItem[] adapters = new IDirectoryViewItem[lengthWithoutHidden + addUp];

            if (addUp == 1)
            {
                adapters[0] = new MoveUpObject();
            }

            int i = addUp;

            foreach (FileSystemInfo info in infos)
            {
                if ((info.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
                {
                    adapters[i] = new WindowsFile(info);
                    i++;
                }
            }

            CurrentPlace = new WindowsFile(di);
            return(adapters.Cast <IDirectoryViewItem>());
        }
コード例 #8
0
        private void ExecuteFile(IDirectoryViewItem item)
        {
            DisableSimpleSearch();
            ProcessStartInfo psi = new ProcessStartInfo(item.FullName);

            Process.Start(psi);
        }
コード例 #9
0
 public DirectoryComparison(IDirectoryViewItem left, IDirectoryViewItem right, DirectoryComparisonResult result)
 {
     Left = left;
     Right = right;
     Result = result;
     synchronize = true;
 }
コード例 #10
0
 public DirectorySynchronizeOperation(DirectorySynchronizeResult syncRes, IDirectoryViewItem[] items, FileSystemBase leftSystem, FileSystemBase rightSystem)
     : base(items, leftSystem)
 {
     SyncResult = syncRes;
     LeftSystem = leftSystem;
     RightSystem = rightSystem;
     OperationName = "Synchronizacja katalogów";
 }
コード例 #11
0
ファイル: CopyOperation.cs プロジェクト: kkalinowski/nex
 public CopyOperation(IDirectoryViewItem[] items, string destPath, FileSystemBase sourceFileSystem, FileSystemBase destFileSystem)
     : base(items, sourceFileSystem)
 {
     DestinationPath = destPath;
     DestFileSystem = destFileSystem;
     ProcessedItems = new List<IDirectoryViewItem>(items.Length);
     SizeInBytes = ItemsSize.ToBytes();
 }
コード例 #12
0
        protected void OnItemExecuted(IDirectoryViewItem item)
        {
            var handler = ItemExecuted;

            if (handler != null)
            {
                handler(item, null);
            }
        }
コード例 #13
0
ファイル: MainView.xaml.cs プロジェクト: kkalinowski/nex
        /// <summary>
        /// Returns safe, unchanchable array of selected items
        /// </summary>
        /// <returns>Safe, unchanchable array of selected items</returns>
        private IDirectoryViewItem[] GetSelectedItems()
        {
            DirectoryViewContainer source = GetActiveDV();

            IDirectoryViewItem[] items = new IDirectoryViewItem[source.SelectedItemsCount];
            source.SelectedItems.CopyTo(items, 0);

            return(items.Where(i => !i.IsMoveUp).ToArray());//OPT: Find better solution
        }
コード例 #14
0
        private void LoadDirectory(IDirectoryViewItem file)
        {
            gContent.Children.Clear();

            DirectoryPreview dirPreview = new DirectoryPreview();
            dirPreview.LoadDirectory(file.CreateFileSystem().GetDirectoryContent(file.FullName));

            gContent.Children.Add(dirPreview);
        }
コード例 #15
0
        private void LoadDirectory(IDirectoryViewItem file)
        {
            gContent.Children.Clear();

            DirectoryPreview dirPreview = new DirectoryPreview();

            dirPreview.LoadDirectory(file.CreateFileSystem().GetDirectoryContent(file.FullName));

            gContent.Children.Add(dirPreview);
        }
コード例 #16
0
 public RenameOperation(IDirectoryViewItem objectToRename, string newName, FileSystemBase fileSystem)
     : base(fileSystem)
 {
     ObjectToRename = objectToRename;
     OldName        = ObjectToRename.Name;
     OldPath        = ObjectToRename.FullName;
     NewName        = newName;
     NewPath        = PathExt.Combine(PathExt.GetDirectoryName(ObjectToRename.FullName, ObjectToRename.IsWindowsFile), NewName, ObjectToRename.IsWindowsFile);
     OperationName  = "Zmiana nazwy z " + OldName + " na " + NewName;
 }
コード例 #17
0
ファイル: RenameOperation.cs プロジェクト: kkalinowski/nex
 public RenameOperation(IDirectoryViewItem objectToRename, string newName, FileSystemBase fileSystem)
     : base(fileSystem)
 {
     ObjectToRename = objectToRename;
     OldName = ObjectToRename.Name;
     OldPath = ObjectToRename.FullName;
     NewName = newName;
     NewPath = PathExt.Combine(PathExt.GetDirectoryName(ObjectToRename.FullName, ObjectToRename.IsWindowsFile), NewName, ObjectToRename.IsWindowsFile);
     OperationName = "Zmiana nazwy z " + OldName + " na " + NewName;
 }
コード例 #18
0
 public override void Delete(IDirectoryViewItem toDelete)
 {
     if (toDelete.IsDirectory)
     {
         connection.DeleteDirectory(toDelete.FullName);
     }
     else
     {
         connection.DeleteFile(toDelete.FullName);
     }
 }
コード例 #19
0
ファイル: WindowsFileSystem.cs プロジェクト: kkalinowski/nex
 public override void Delete(IDirectoryViewItem toDelete)
 {
     if (toDelete.IsDirectory)
     {
         Directory.Delete(toDelete.FullName, true);
     }
     else
     {
         File.Delete(toDelete.FullName);
     }
 }
コード例 #20
0
ファイル: MultiFileOperation.cs プロジェクト: kkalinowski/nex
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="items">Items to work on</param>
        public MultiFileOperation(IDirectoryViewItem[] items, FileSystemBase fileSystem)
            : base(fileSystem)
        {
            //TODO: Files in folders should be diffirent objects
            ItemsSize = FileSize.Empty;

            System.Diagnostics.Debug.Assert(items.Length > 0, "Empty operation!");
            Items = items;
            //CurrentItem = items[0];

            CountSize();
        }
コード例 #21
0
        private string CreateInfoMessage(IDirectoryViewItem existingFile, string destination)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(existingFile.IsDirectory ? "Katalog " : "Plik ");
            sb.Append("o nazwie ");
            sb.Append(existingFile.Name);
            sb.Append(" już istnieje w katalogu ");
            sb.Append(destination);
            sb.Append("! Co chcesz teraz zrobić?");

            return sb.ToString();
        }
コード例 #22
0
        private string CreateInfoMessage(IDirectoryViewItem existingFile, string destination)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(existingFile.IsDirectory ? "Katalog " : "Plik ");
            sb.Append("o nazwie ");
            sb.Append(existingFile.Name);
            sb.Append(" już istnieje w katalogu ");
            sb.Append(destination);
            sb.Append("! Co chcesz teraz zrobić?");

            return(sb.ToString());
        }
コード例 #23
0
 /// <summary>
 /// Serve the event of changing selected item in middle ListBox - lbContent2
 /// </summary>
 private void lbContent2_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (SelectedItemsCount > 0)
     {
         lbContent3.ItemsSource = null;//clear items
         IDirectoryViewItem item = (IDirectoryViewItem)SelectedItems[0];
         if (item.IsDirectory)
         {
             fileSystem3.LoadDirectory(item.FullName);
             lbContent3.ItemsSource = fileSystem3.Items;
         }
         //TODO: Do preview for files
     }
 }
コード例 #24
0
 /// <summary>
 /// Load file to preview
 /// </summary>
 /// <param name="file">File to preview</param>
 private void LoadItem(IDirectoryViewItem file)
 {
     if (file.IsMoveUp)
     {
         LoadMoveUp();
     }
     else if (file.IsDirectory)
     {
         LoadDirectory(file);
     }
     else
     {
         LoadFile(file.FullName);
     }
 }
コード例 #25
0
        private void LoadPath(IDirectoryViewItem toLoad)
        {
            if (toLoad == null)
            {
                return;
            }

            if (!ActiveView.FileSystem.IsWindowsFileSystem)
            {
                ActiveView.ChangeFileSystem(new WindowsFileSystem(toLoad.FullName));
            }
            else
            {
                ActiveView.LoadDirectory(toLoad.FullName);
            }
        }
コード例 #26
0
        private void ActiveView_ItemExecuted(object sender, EventArgs e)
        {
            IDirectoryViewItem item = (IDirectoryViewItem)sender;

            Debug.Assert(item != null, "Empty call");

            if (item.IsDirectory)
            {
                LoadDir(item.FullName, true);
            }
            else if (item.IsMoveUp)
            {
                MoveUp();
            }
            else
            {
                ExecuteFile(item);
            }
        }
コード例 #27
0
        public override void Execute(object parameter)
        {
            var active = MainViewModel.ActiveDirectoryContainer.ActiveView;
            //get data from clipboard
            var data = Clipboard.GetDataObject();

            //files
            var paths = (string[])data.GetData(DataFormats.FileDrop, true);

            if (paths == null)
            {
                MessageBox.Show("Schowek jest pusty");
                return;
            }

            //get flag indicating whether it is copy or cut
            var  stream   = (MemoryStream)data.GetData("Preferred DropEffect", true);
            bool copyFlag = stream.ReadByte() == 5 ? true : false;

            //change paths into IDirectoryViewItems
            var items = new IDirectoryViewItem[paths.Length];

            for (int i = 0; i < paths.Length; i++)
            {
                items[i] = WindowsFile.CreateFromPath(paths[i]);
            }

            MultiFileOperation operation;

            if (copyFlag)
            {
                operation = new CopyOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem);
            }
            else
            {
                operation = new MoveOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem);
            }

            OperationManager.ExecuteOperation(operation);
        }
コード例 #28
0
ファイル: DirectoryViewModel.cs プロジェクト: kkalinowski/nex
 public void ExecuteFile(IDirectoryViewItem item)
 {
     var proccessStartInfo = new ProcessStartInfo(item.FullName);
     Process.Start(proccessStartInfo);
 }
コード例 #29
0
 public MultiRenameItem(IDirectoryViewItem item)
 {
     Item    = item;
     OldName = item.Name;
 }
コード例 #30
0
ファイル: PathsManager.cs プロジェクト: kkalinowski/nex
 public void RemoveFavorite(IDirectoryViewItem toRemove)
 {
     Favorites.Remove(toRemove);
 }
コード例 #31
0
ファイル: PathsManager.cs プロジェクト: kkalinowski/nex
 public void AddFavorite(IDirectoryViewItem toAdd)
 {
     Favorites.Add(toAdd);
 }
コード例 #32
0
        private void LoadPath(IDirectoryViewItem toLoad)
        {
            if (toLoad == null)
                return;

            if (!ActiveView.FileSystem.IsWindowsFileSystem)
                ActiveView.ChangeFileSystem(new WindowsFileSystem(toLoad.FullName));
            else
                ActiveView.LoadDirectory(toLoad.FullName);
        }
コード例 #33
0
 //OPT: Make this ctor in more elegant way
 public MultiRenameOperation(IEnumerable<MultiRenameItem> mrItems, IDirectoryViewItem[] dvItems, FileSystemBase fileSystem)
     : base(dvItems, fileSystem)
 {
     MRItems = mrItems;
     OperationName = string.Format("Zmiana nazwy {0} obiektów", mrItems.Count());
 }
コード例 #34
0
ファイル: WindowsFileSystem.cs プロジェクト: kkalinowski/nex
        public override IEnumerable<IDirectoryViewItem> GetDirectoryContent(string path)
        {
            DirectoryInfo di = new DirectoryInfo(path);
            FileSystemInfo[] infos = di.GetFileSystemInfos();

            int lengthWithoutHidden = infos.Count(inf => (inf.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden);
            int addUp = Convert.ToInt32(!PathExt.IsDriveRoot(path));

            IDirectoryViewItem[] adapters = new IDirectoryViewItem[lengthWithoutHidden + addUp];

            if (addUp == 1)
                adapters[0] = new MoveUpObject();

            int i = addUp;
            foreach (FileSystemInfo info in infos)
            {
                if ((info.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
                {
                    adapters[i] = new WindowsFile(info);
                    i++;
                }
            }

            CurrentPlace = new WindowsFile(di);
            return adapters.Cast<IDirectoryViewItem>();
        }
コード例 #35
0
 /// <summary>
 /// Load file to preview
 /// </summary>
 /// <param name="file">File to preview</param>
 private void LoadItem(IDirectoryViewItem file)
 {
     if (file.IsMoveUp)
         LoadMoveUp();
     else if (file.IsDirectory)
         LoadDirectory(file);
     else
         LoadFile(file.FullName);
 }
コード例 #36
0
ファイル: PreviewWindow.xaml.cs プロジェクト: kkalinowski/nex
 public void LoadFile(IDirectoryViewItem file)
 {
     pvContainer.Item = file;
 }
コード例 #37
0
ファイル: MultiRenameItem.cs プロジェクト: kkalinowski/nex
 public MultiRenameItem(IDirectoryViewItem item)
 {
     Item = item;
     OldName = item.Name;
 }
コード例 #38
0
ファイル: HistoryGlobal.cs プロジェクト: kkalinowski/nex
 public static void AddItem(IDirectoryViewItem item)
 {
     history.AddItem(item, true);
 }
コード例 #39
0
ファイル: PathsManager.cs プロジェクト: kkalinowski/nex
 public bool IsFavorite(IDirectoryViewItem toCheck)
 {
     return Favorites.Contains(toCheck);
 }
コード例 #40
0
ファイル: FileSystemBase.cs プロジェクト: kkalinowski/nex
 public abstract void Delete(IDirectoryViewItem toDelete);
コード例 #41
0
ファイル: PathsManager.cs プロジェクト: kkalinowski/nex
 public void RemoveFavorite(IDirectoryViewItem toRemove)
 {
     Favorites.Remove(toRemove);
 }
コード例 #42
0
ファイル: PathsManager.cs プロジェクト: kkalinowski/nex
 public bool IsFavorite(IDirectoryViewItem toCheck)
 {
     return(Favorites.Contains(toCheck));
 }
コード例 #43
0
 private void ExecuteFile(IDirectoryViewItem item)
 {
     DisableSimpleSearch();
     ProcessStartInfo psi = new ProcessStartInfo(item.FullName);
     Process.Start(psi);
 }
コード例 #44
0
ファイル: PathsManager.cs プロジェクト: kkalinowski/nex
 public void AddFavorite(IDirectoryViewItem toAdd)
 {
     Favorites.Add(toAdd);
 }
コード例 #45
0
ファイル: DeleteOperation.cs プロジェクト: kkalinowski/nex
 public DeleteOperation(FileSystemBase fileSystem, IDirectoryViewItem[] items)
     : base(items, fileSystem)
 {
 }
コード例 #46
0
ファイル: PreviewWindow.xaml.cs プロジェクト: kkalinowski/nex
 public void LoadFile(IDirectoryViewItem file)
 {
     pvContainer.Item = file;
 }
コード例 #47
0
ファイル: FTPFileSystem.cs プロジェクト: kkalinowski/nex
 public override void Delete(IDirectoryViewItem toDelete)
 {
     if (toDelete.IsDirectory)
         connection.DeleteDirectory(toDelete.FullName);
     else
         connection.DeleteFile(toDelete.FullName);
 }
コード例 #48
0
 public abstract void Delete(IDirectoryViewItem toDelete);
コード例 #49
0
ファイル: DirectoryViewModel.cs プロジェクト: kkalinowski/nex
        public void ExecuteFile(IDirectoryViewItem item)
        {
            var proccessStartInfo = new ProcessStartInfo(item.FullName);

            Process.Start(proccessStartInfo);
        }
コード例 #50
0
ファイル: MainView.xaml.cs プロジェクト: kkalinowski/nex
        /// <summary>
        /// Returns safe, unchanchable array of selected items
        /// </summary>
        /// <returns>Safe, unchanchable array of selected items</returns>
        private IDirectoryViewItem[] GetSelectedItems()
        {
            DirectoryViewContainer source = GetActiveDV();
            IDirectoryViewItem[] items = new IDirectoryViewItem[source.SelectedItemsCount];
            source.SelectedItems.CopyTo(items, 0);

            return items.Where(i => !i.IsMoveUp).ToArray();//OPT: Find better solution
        }
コード例 #51
0
 public static void AddItem(IDirectoryViewItem item)
 {
     history.AddItem(item, true);
 }
コード例 #52
0
 protected void OnItemExecuted(IDirectoryViewItem item)
 {
     var handler = ItemExecuted;
     if (handler != null)
         handler(item, null);
 }