public void Execute(object parameter) { if (!(_workspace.CurrentItem is FileItem item)) { return; } var searchLister = KexContainer.Resolve <SearchLister>(); string target; if (item.IsLink()) { target = new FileItemTargetResolver(item).TargetPath; } else if (item.ItemType == ItemType.Item) { target = _workspace.ActiveLister.Path; } else { target = item.Path; } searchLister.Path = target; searchLister.SearchPattern = ""; searchLister.MaxItems = 20; _workspace.Open(searchLister); searchLister.GotView += SearchLister_GotView; }
private async Task ShowDirectoryContent(FileItemTargetResolver target) { var provider = new FileItemProvider(Workspace); var items = (await provider.GetItems(target.TargetPath)).ToList(); var highLighter = new SyntaxHighlighter(Encoding.UTF8); highLighter.Init(items.Select(i => i.Name)); var line = 1; Items = items.Select(i => new RtfItem(highLighter, i.Name, line++)); }
private async Task ShowFileContent(FileItem fileItem) { if (_viewFileLister == null) //TODO: Inject { _viewFileLister = KexContainer.Resolve <ViewFileLister>(); } var targetResolver = new FileItemTargetResolver(fileItem); _viewFileLister.Path = targetResolver.TargetPath; await _viewFileLister.Refresh().ConfigureAwait(false); Items = _viewFileLister.Items; }
public async Task SetItem(IItem item) { if (item is FileItem fileItem) { var target = new FileItemTargetResolver(fileItem); if (target.TargetType == ItemType.Container) { await ShowDirectoryContent(target); } else { await ShowFileContent(fileItem); } } else { Items = Enumerable.Empty <RtfItem>(); } }
protected override Task <ObservableCollection <PropertyItem> > GetBottomItems() { if (Item.IsFileShare || (CancellationTokenSource?.IsCancellationRequested ?? Item == null)) { return(Task.FromResult(new ObservableCollection <PropertyItem>())); } if (Item.IsNetwork()) { return(GetNetworkBottomItems()); } return(Task.Run(() => { var detail = Item.GetDetail(false, CancellationToken.None); var tempProp = new ObservableCollection <PropertyItem> { new PropertyItem("Attributes", Item.AttributeString), new PropertyItem("Created", detail.Created), new PropertyItem("Last Modified", detail.LastModified) }; var props = new Files.FilePropertyProvider(_shellObject); if (Item.IsLink()) { var target = new FileItemTargetResolver(Item); tempProp.Add(new PropertyItem("Target:", target.TargetPath)); } if (!Item.IsContainer) { var encoding = GetEncoding(Item.Path); if (encoding != null) { tempProp.Add(new PropertyItem("Encoding", encoding.EncodingName)); } } if (IsMusic) { tempProp.Add(new PropertyItem("Title", _shellObject.Properties.System.Title.ValueAsObject)); if (_shellObject.Properties?.System?.Author?.ValueAsObject is string[] authors) { tempProp.Add(new PropertyItem("Author(s)", string.Join(",", authors))); } tempProp.Add(new PropertyItem("Rating", _shellObject.Properties?.System?.Rating?.ValueAsObject)); } if (IsPicture) { tempProp.Add(new PropertyItem("Dimensions", props.GetValue("System.Image.Dimensions"))); foreach (var key in props.Items.Keys.Where(k => k.StartsWith("System.Photo")).OrderBy(k => k)) { tempProp.Add(new PropertyItem(key.Substring(13), props.GetValue(key))); } } return tempProp; })); }