protected async override void OnNavigatedTo(NavigationEventArgs e) { ListViewControl.AddHandler(PointerPressedEvent, PointerPressedHandler, true); CoreWindow.GetForCurrentThread().KeyDown += RecycleBin_KeyDown; SelectionExtention = new ListViewBaseSelectionExtention(ListViewControl, DrawRectangle); await ActivateLoading(true, Globalization.GetString("Progress_Tip_Loading")); using (FullTrustProcessController.ExclusiveUsage Exclusive = await FullTrustProcessController.GetAvailableController()) { IReadOnlyList <IRecycleStorageItem> Result = await Exclusive.Controller.GetRecycleBinItemsAsync(); FileCollection.AddRange(SortCollectionGenerator.GetSortedCollection(Result, SortTarget.Name, SortDirection.Ascending)); } if (FileCollection.Count == 0) { HasFile.Visibility = Visibility.Visible; ClearRecycleBin.IsEnabled = false; } else { HasFile.Visibility = Visibility.Collapsed; ClearRecycleBin.IsEnabled = true; } await ActivateLoading(false); }
private void ListHeaderName_Click(object sender, RoutedEventArgs e) { if (SortMap[SortTarget.Name] == SortDirection.Ascending) { SortMap[SortTarget.Name] = SortDirection.Descending; SortMap[SortTarget.Type] = SortDirection.Ascending; SortMap[SortTarget.ModifiedTime] = SortDirection.Ascending; SortMap[SortTarget.Size] = SortDirection.Ascending; SortMap[SortTarget.Path] = SortDirection.Ascending; FileSystemStorageItemBase[] SortResult = SortCollectionGenerator.GetSortedCollection(SearchResult, SortTarget.Name, SortDirection.Descending).ToArray(); SearchResult.Clear(); foreach (FileSystemStorageItemBase Item in SortResult) { SearchResult.Add(Item); } } else { SortMap[SortTarget.Name] = SortDirection.Ascending; SortMap[SortTarget.Type] = SortDirection.Ascending; SortMap[SortTarget.ModifiedTime] = SortDirection.Ascending; SortMap[SortTarget.Size] = SortDirection.Ascending; SortMap[SortTarget.Path] = SortDirection.Ascending; FileSystemStorageItemBase[] SortResult = SortCollectionGenerator.GetSortedCollection(SearchResult, SortTarget.Name, SortDirection.Ascending).ToArray(); SearchResult.Clear(); foreach (FileSystemStorageItemBase Item in SortResult) { SearchResult.Add(Item); } } }
private async Task Initialize(SearchCategory Category, bool IngoreCase, bool IncludeRegex, bool GlobleSearch, uint MaxCount) { HasItem.Visibility = Visibility.Collapsed; try { Cancellation = new CancellationTokenSource(); if (WeakToFileControl.TryGetTarget(out FileControl Control)) { string SearchTarget = Control.GlobeSearch.Text; FileSystemStorageFolder CurrentFolder = Control.CurrentPresenter.CurrentFolder; SearchStatus.Text = Globalization.GetString("SearchProcessingText"); SearchStatusBar.Visibility = Visibility.Visible; switch (Category) { case SearchCategory.BuiltInEngine_Deep: case SearchCategory.BuiltInEngine_Shallow: { await foreach (FileSystemStorageItemBase Item in CurrentFolder.SearchAsync(SearchTarget, Category == SearchCategory.BuiltInEngine_Deep, SettingControl.IsDisplayHiddenItem, SettingControl.IsDisplayProtectedSystemItems, IncludeRegex, IngoreCase, Cancellation.Token)) { if (Cancellation.IsCancellationRequested) { HasItem.Visibility = Visibility.Visible; break; } else { SearchResult.Insert(SortCollectionGenerator.SearchInsertLocation(SearchResult, Item, SortTarget.Name, SortDirection.Ascending), Item); } } if (SearchResult.Count == 0) { HasItem.Visibility = Visibility.Visible; } break; } case SearchCategory.EverythingEngine: { using (FullTrustProcessController.ExclusiveUsage Exclusive = await FullTrustProcessController.GetAvailableController()) { IReadOnlyList <FileSystemStorageItemBase> SearchItems = await Exclusive.Controller.SearchByEverythingAsync(GlobleSearch?string.Empty : CurrentFolder.Path, SearchTarget, IncludeRegex, IngoreCase, MaxCount); if (SearchItems.Count == 0) { HasItem.Visibility = Visibility.Visible; } else { foreach (FileSystemStorageItemBase Item in SortCollectionGenerator.GetSortedCollection(SearchItems, SortTarget.Name, SortDirection.Ascending)) { SearchResult.Add(Item); } } } break; } } SearchStatus.Text = Globalization.GetString("SearchCompletedText"); SearchStatusBar.Visibility = Visibility.Collapsed; } } catch (Exception ex) { LogTracer.Log(ex, $"An error was threw in {nameof(Initialize)}"); } finally { Cancellation.Dispose(); Cancellation = null; } }
private async Task Initialize(SearchOptions Options) { HasItem.Visibility = Visibility.Collapsed; try { Cancellation = new CancellationTokenSource(); SearchStatus.Text = Globalization.GetString("SearchProcessingText"); SearchStatusBar.Visibility = Visibility.Visible; switch (Options.EngineCategory) { case SearchCategory.BuiltInEngine: { await foreach (FileSystemStorageItemBase Item in Options.SearchFolder.SearchAsync(Options.SearchText, Options.DeepSearch, SettingControl.IsDisplayHiddenItem, SettingControl.IsDisplayProtectedSystemItems, Options.UseRegexExpression, Options.IgnoreCase, Cancellation.Token)) { if (Cancellation.IsCancellationRequested) { HasItem.Visibility = Visibility.Visible; break; } else { SearchResult.Insert(SortCollectionGenerator.SearchInsertLocation(SearchResult, Item, SortTarget.Name, SortDirection.Ascending), Item); } } if (SearchResult.Count == 0) { HasItem.Visibility = Visibility.Visible; } break; } case SearchCategory.EverythingEngine: { using (FullTrustProcessController.ExclusiveUsage Exclusive = await FullTrustProcessController.GetAvailableController()) { IReadOnlyList <FileSystemStorageItemBase> SearchItems = await Exclusive.Controller.SearchByEverythingAsync(Options.DeepSearch?string.Empty : Options.SearchFolder.Path, Options.SearchText, Options.UseRegexExpression, Options.IgnoreCase, Options.NumLimit); if (SearchItems.Count == 0) { HasItem.Visibility = Visibility.Visible; } else { foreach (FileSystemStorageItemBase Item in SortCollectionGenerator.GetSortedCollection(SearchItems, SortTarget.Name, SortDirection.Ascending)) { SearchResult.Add(Item); } } } break; } } SearchStatus.Text = Globalization.GetString("SearchCompletedText"); SearchStatusBar.Visibility = Visibility.Collapsed; } catch (Exception ex) { LogTracer.Log(ex, $"An error was threw in {nameof(Initialize)}"); } finally { Cancellation.Dispose(); Cancellation = null; } }