private void SetupListView() { _reference.uninstallerObjectListView.VirtualMode = false; _reference.olvColumnDisplayName.AspectName = ApplicationUninstallerEntry.RegistryNameDisplayName; _reference.olvColumnDisplayName.GroupKeyGetter = ListViewDelegates.GetFirstCharGroupKeyGetter; _reference.olvColumnDisplayName.ImageGetter = _iconGetter.ColumnImageGetter; _reference.olvColumnStartup.AspectGetter = x => { var obj = x as ApplicationUninstallerEntry; return((obj?.StartupEntries != null && obj.StartupEntries.Any()).ToYesNo()); }; _reference.olvColumnPublisher.AspectName = ApplicationUninstallerEntry.RegistryNamePublisher; _reference.olvColumnPublisher.GroupKeyGetter = ListViewDelegates.ColumnPublisherGroupKeyGetter; _reference.olvColumnDisplayVersion.AspectName = ApplicationUninstallerEntry.RegistryNameDisplayVersion; _reference.olvColumnDisplayVersion.GroupKeyGetter = ListViewDelegates.DisplayVersionGroupKeyGetter; _reference.olvColumnUninstallString.AspectName = ApplicationUninstallerEntry.RegistryNameUninstallString; _reference.olvColumnUninstallString.GroupKeyGetter = ListViewDelegates.ColumnUninstallStringGroupKeyGetter; _reference.olvColumnInstallDate.AspectGetter = x => { var obj = x as ApplicationUninstallerEntry; return(obj?.InstallDate.Date ?? DateTime.MinValue); }; //_reference.olvColumnInstallDate.AspectName = ApplicationUninstallerEntry.RegistryNameInstallDate; _reference.olvColumnInstallDate.AspectToStringConverter = x => { var entry = (DateTime)x; return(entry.IsDefault() ? Localisable.Empty : entry.ToShortDateString()); }; _reference.olvColumnGuid.AspectGetter = ListViewDelegates.ColumnGuidAspectGetter; _reference.olvColumnGuid.GroupKeyGetter = ListViewDelegates.ColumnGuidGroupKeyGetter; _reference.olvColumnSystemComponent.AspectName = ApplicationUninstallerEntry.RegistryNameSystemComponent; _reference.olvColumnSystemComponent.AspectToStringConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnSystemComponent.GroupKeyToTitleConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnIs64.AspectGetter = y => (y as ApplicationUninstallerEntry)?.Is64Bit.GetLocalisedName(); _reference.olvColumnProtected.AspectToStringConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnProtected.GroupKeyToTitleConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnInstallLocation.AspectName = ApplicationUninstallerEntry.RegistryNameInstallLocation; _reference.olvColumnInstallLocation.GroupKeyGetter = ListViewDelegates.ColumnInstallLocationGroupKeyGetter; _reference.olvColumnInstallSource.AspectName = ApplicationUninstallerEntry.RegistryNameInstallSource; _reference.olvColumnInstallSource.GroupKeyGetter = ListViewDelegates.ColumnInstallSourceGroupKeyGetter; _reference.olvColumnRegistryKeyName.AspectName = "RegistryKeyName"; _reference.olvColumnUninstallerKind.AspectGetter = y => (y as ApplicationUninstallerEntry)?.UninstallerKind.GetLocalisedName(); _reference.olvColumnAbout.AspectName = "AboutUrl"; _reference.olvColumnAbout.GroupKeyGetter = x => { var entry = x as ApplicationUninstallerEntry; if (string.IsNullOrEmpty(entry?.AboutUrl)) { return(Localisable.Empty); } return(entry.GetUri()?.Host ?? CommonStrings.Unknown); }; _reference.olvColumnQuietUninstallString.AspectName = ApplicationUninstallerEntry.RegistryNameQuietUninstallString; _reference.olvColumnQuietUninstallString.GroupKeyGetter = ListViewDelegates.ColumnQuietUninstallStringGroupKeyGetter; _reference.olvColumnSize.TextAlign = HorizontalAlignment.Right; _reference.olvColumnSize.AspectGetter = ListViewDelegates.ColumnSizeAspectGetter; _reference.olvColumnSize.AspectToStringConverter = ListViewDelegates.AspectToStringConverter; _reference.olvColumnSize.GroupKeyGetter = ListViewDelegates.ColumnSizeGroupKeyGetter; _reference.olvColumnSize.GroupKeyToTitleConverter = x => x.ToString(); // Rating stuff _reference.olvColumnRating.AspectGetter = x => { var entry = x as ApplicationUninstallerEntry; return(string.IsNullOrEmpty(entry?.RatingId) ? RatingEntry.NotAvailable : _ratingManager.GetRating(entry.RatingId)); }; _reference.olvColumnRating.Renderer = new RatingRenderer(); _reference.olvColumnRating.GroupKeyGetter = x => { var model = x as ApplicationUninstallerEntry; if (!_settings.Settings.MiscUserRatings || string.IsNullOrEmpty(model?.RatingId) || _ratingManager.RatingCount <= 0) { return(Localisable.NotAvailable); } var rating = _ratingManager.GetRating(model.RatingId); if (rating.IsEmpty || (!rating.AverageRating.HasValue && !rating.MyRating.HasValue)) { return(CommonStrings.Unknown); } return((rating.MyRating.HasValue ? "Your rating:" : "Average rating:") + " " + RatingEntry.ToRating(rating.MyRating ?? (int)rating.AverageRating)); }; _reference.uninstallerObjectListView.CellClick += (x, y) => { if (y.Column == null || (y.ModifierKeys != Keys.None) || !y.Column.Equals(_reference.olvColumnRating)) { return; } var model = y.Model as ApplicationUninstallerEntry; if (model == null) { return; } RateEntries(new[] { model }, _reference.uninstallerObjectListView.PointToScreen(y.Location)); }; // Rating stuff end _reference.uninstallerObjectListView.PrimarySortColumn = _reference.olvColumnDisplayName; _reference.uninstallerObjectListView.SecondarySortColumn = _reference.olvColumnPublisher; _reference.uninstallerObjectListView.Sorting = SortOrder.Ascending; _reference.uninstallerObjectListView.AdditionalFilter = new ModelFilter(ListViewFilter); _reference.uninstallerObjectListView.UseFiltering = true; _reference.uninstallerObjectListView.FormatRow += UninstallerObjectListView_FormatRow; UninstallerPostprocessingProgressUpdate += (x, y) => { lock (_objectsToUpdate) { if (y.Tag != null) { _objectsToUpdate.Add(y.Tag); } if (y.Value == y.Maximum || y.Value % 35 == 0) { try { _listView.ListView.RefreshObjects(_objectsToUpdate); } catch (InvalidOperationException ex) { // The list view got disposed before we could update it. _abortPostprocessingThread = true; Debug.Fail(ex.Message, ex.StackTrace); } _objectsToUpdate.Clear(); } } }; _listView.ListView.AfterSorting += (x, y) => { AfterFiltering?.Invoke(x, y); }; }
public void SetupListView() { _reference.uninstallerObjectListView.VirtualMode = false; _reference.olvColumnDisplayName.AspectName = RegistryFactory.RegistryNameDisplayName; _reference.olvColumnDisplayName.GroupKeyGetter = ListViewDelegates.GetFirstCharGroupKeyGetter; _reference.olvColumnStartup.AspectGetter = x => { var obj = x as ApplicationUninstallerEntry; return((obj?.HasStartups).ToYesNo()); }; _reference.olvColumnPublisher.AspectName = RegistryFactory.RegistryNamePublisher; _reference.olvColumnPublisher.GroupKeyGetter = ListViewDelegates.ColumnPublisherGroupKeyGetter; _reference.olvColumnDisplayVersion.AspectName = RegistryFactory.RegistryNameDisplayVersion; _reference.olvColumnDisplayVersion.GroupKeyGetter = ListViewDelegates.DisplayVersionGroupKeyGetter; _reference.olvColumnUninstallString.AspectGetter = ListViewDelegates.ColumnUninstallStringGetter; _reference.olvColumnUninstallString.GroupKeyGetter = ListViewDelegates.ColumnUninstallStringGroupKeyGetter; _reference.olvColumnQuietUninstallString.AspectGetter = ListViewDelegates.ColumnQuietUninstallStringGetter; _reference.olvColumnQuietUninstallString.GroupKeyGetter = ListViewDelegates.ColumnQuietUninstallStringGroupKeyGetter; _reference.olvColumnInstallDate.AspectGetter = x => { var obj = x as ApplicationUninstallerEntry; return(obj?.InstallDate.Date ?? DateTime.MinValue); }; //_reference.olvColumnInstallDate.AspectName = ApplicationUninstallerEntry.RegistryNameInstallDate; _reference.olvColumnInstallDate.AspectToStringConverter = x => { if (!(x is DateTime)) { return(Localisable.Empty); } var entry = (DateTime)x; try { return(entry.IsDefault() ? Localisable.Empty : entry.ToShortDateString()); } catch (SystemException) { return(Localisable.NotAvailable); } }; _reference.olvColumnGuid.AspectGetter = ListViewDelegates.ColumnGuidAspectGetter; _reference.olvColumnGuid.GroupKeyGetter = ListViewDelegates.ColumnGuidGroupKeyGetter; _reference.olvColumnSystemComponent.AspectName = RegistryFactory.RegistryNameSystemComponent; _reference.olvColumnSystemComponent.AspectToStringConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnSystemComponent.GroupKeyToTitleConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnIs64.AspectGetter = y => (y as ApplicationUninstallerEntry)?.Is64Bit.GetLocalisedName(); _reference.olvColumnProtected.AspectToStringConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnProtected.GroupKeyToTitleConverter = ListViewDelegates.BoolToYesNoAspectConverter; _reference.olvColumnInstallLocation.AspectName = RegistryFactory.RegistryNameInstallLocation; _reference.olvColumnInstallLocation.GroupKeyGetter = ListViewDelegates.ColumnInstallLocationGroupKeyGetter; _reference.olvColumnInstallSource.AspectName = RegistryFactory.RegistryNameInstallSource; _reference.olvColumnInstallSource.GroupKeyGetter = ListViewDelegates.ColumnInstallSourceGroupKeyGetter; _reference.olvColumnRegistryKeyName.AspectName = "RegistryKeyName"; _reference.olvColumnUninstallerKind.AspectGetter = y => (y as ApplicationUninstallerEntry)?.UninstallerKind.GetLocalisedName(); _reference.olvColumnAbout.AspectName = "AboutUrl"; _reference.olvColumnAbout.GroupKeyGetter = x => { var entry = x as ApplicationUninstallerEntry; var aboutUri = entry?.GetAboutUri(); return(aboutUri?.Host ?? Localisable.Empty); }; _reference.olvColumnSize.TextAlign = HorizontalAlignment.Right; _reference.olvColumnSize.AspectGetter = ListViewDelegates.ColumnSizeAspectGetter; _reference.olvColumnSize.AspectToStringConverter = ListViewDelegates.AspectToStringConverter; _reference.olvColumnSize.GroupKeyGetter = ListViewDelegates.ColumnSizeGroupKeyGetter; _reference.olvColumnSize.GroupKeyToTitleConverter = x => x.ToString(); _reference.uninstallerObjectListView.PrimarySortColumn = _reference.olvColumnDisplayName; _reference.uninstallerObjectListView.SecondarySortColumn = _reference.olvColumnPublisher; _reference.uninstallerObjectListView.Sorting = SortOrder.Ascending; _reference.uninstallerObjectListView.AdditionalFilter = new ModelFilter(ListViewFilter); _reference.uninstallerObjectListView.UseFiltering = true; _reference.uninstallerObjectListView.FormatRow += UninstallerObjectListView_FormatRow; _listView.ListView.AfterSorting += (x, y) => { AfterFiltering?.Invoke(x, y); }; }