Exemple #1
0
        private void RenameFile(FileItem item)
        {
            var highlight = item.FileName.IndexOf('.');

            Notifier.Prompt("Rename", item.Path, item.FileName, highlight, (canceled, result) => {
                if (!canceled)
                {
                    item.Rename(result);
                }
            });
        }
Exemple #2
0
        private void ExpandItem(FileItem node)
        {
            node.Items.Clear();

            foreach(var item in GetSubItems(node.Path))
                node.Items.Add(item);

            if (!ExpandedNodes.Any(f => f.Path == node.Path))
                ExpandedNodes.Add(node);
        }
Exemple #3
0
        private FileItem CreateFileItem(string path, bool isDirectory)
        {
            var item = new FileItem();

            item.Path = path;
            item.IsDirectory = isDirectory;
            item.Header = Path.GetFileName(path);
            item.PreviewMouseDown += (s, e) => { LastClickedFile = item; };

            // assign event handlers
            if (isDirectory)
            {
                item.Expanded += (s, e) => { e.Handled = true; ExpandItem(item); };
                item.Collapsed += (s, e) => { e.Handled = true; CollapseItem(item); };

                item.Items.Add(new FileItem {Header = "loading..."});
            }
            else
            {
                item.Expanded += (s, e) => {
                    if (File.Exists(path))
                    {
                        Controller.Current.CreateNewTab(path);
                    }
                    else
                    {
                        Notifier.Growl("File not found ", "Consider refreshing the project", path);
                    }
                };
            }

            // build context menu
            item.ContextMenu = new ContextMenu();
            item.ContextMenu.Items.Add(CreateMenuItem("Rename", () => RenameFile(item)));
            item.ContextMenu.Items.Add(new Separator());
            item.ContextMenu.Items.Add(CreateMenuItem("Delete", () => DeleteFile(item)));

            if (isDirectory)
            {
                item.ContextMenu.Items.Add(new Separator());
                item.ContextMenu.Items.Add(CreateMenuItem("Create File", () => ShowCreateFile(item.Path)));
                item.ContextMenu.Items.Add(CreateMenuItem("Create Directory", () => ShowCreateDirectory(item.Path)));
            }

            return item;
        }
Exemple #4
0
        private void DeleteFile(FileItem item)
        {
            var result = MessageBox.Show("Move '" + Path.GetFileName(item.Path) + "' to Recycle Bin?", item.Path, MessageBoxButton.YesNo);

            if (result == MessageBoxResult.Yes)
            {
                FileOperationAPIWrapper.MoveToRecycleBin(item.Path);
                DelayedAction.Invoke(500, () => RefreshProjectClicked(null, null));
            }
        }
Exemple #5
0
        private void CollapseItem(FileItem node)
        {
            var oldNode = ExpandedNodes.FirstOrDefault(f => f.Path == node.Path);

            if (oldNode != null)
                ExpandedNodes.Remove(oldNode);
        }