Add PivotViewer support: CXML collections, filtering, grid/histogram views#367
Open
mattleibow wants to merge 2 commits intofeature/deepzoomfrom
Open
Add PivotViewer support: CXML collections, filtering, grid/histogram views#367mattleibow wants to merge 2 commits intofeature/deepzoomfrom
mattleibow wants to merge 2 commits intofeature/deepzoomfrom
Conversation
Core library (SkiaSharp.Extended.DeepZoom): - DZI and DZC format parsing with full compatibility - Tile pyramid math and viewport coordinate transforms - Spring-based animation system - LRU tile cache with deferred disposal - Priority tile scheduler with parent-level fallback - LOD cross-fade blending renderer - HTTP and file-based tile fetchers with cancellation - Deep zoom sub-image support for collections MAUI layer (SkiaSharp.Extended.UI.Maui.DeepZoom): - SKDeepZoomView with pinch-zoom, pan, double-tap gestures - BindableProperties: Source, ViewportWidth, ViewportOrigin, etc. - Spring animation integration with timer-based rendering - Keyboard navigation support - Debug stats overlay Tests: 489 tests covering all public APIs Sample: MauiDeepZoom app with color-coded test tiles Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…views Core library (SkiaSharp.Extended.PivotViewer): - CXML parser with all facet types (String, Number, DateTime, Link) - SupplementUri auto-loading and collection merging - Filter engine with text, range, and comparison predicates - Word wheel search index - Grid layout engine with zoom-based item sizing - Histogram layout engine with bucket computation - Layout transition manager with spring animations - State serialization for view persistence - Shared bindable models (FilterPane, DetailPane, ControlBar, SortDropdown) - PivotViewerRenderer for grid/histogram canvas rendering - Full Silverlight API parity (PivotViewerItem, Properties, Views, etc.) MAUI layer (SkiaSharp.Extended.UI.Maui.PivotViewer): - SKPivotViewerView with native accessible controls - PivotViewerControlBar (filter toggle, view switch, sort, search, zoom) - PivotViewerFilterPane (scrollable checkbox categories) - PivotViewerDetailPane (item info, facets, links) - PivotViewerSortDropdown (property selection overlay) - All controls use AutomationProperties for accessibility Blazor layer: - BlazorPivotViewer sample with SKCanvasView integration Tests: 1,227 tests covering all public APIs Samples: MauiPivotViewer (conceptcars collection), BlazorPivotViewer Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
7b268c4 to
b9071da
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds PivotViewer support to SkiaSharp.Extended — a modern reimplementation of Silverlight's
PivotViewercontrol using SkiaSharp and .NET MAUI. Builds on the Deep Zoom foundation from #366.Core library (
SkiaSharp.Extended.PivotViewer)PivotViewerRendererfor grid/histogram canvas renderingMAUI layer (
SkiaSharp.Extended.UI.Maui.PivotViewer)SKPivotViewerViewwith native accessible controlsPivotViewerControlBar— filter toggle, view switch, sort, search, zoomPivotViewerFilterPane— scrollable checkbox categoriesPivotViewerDetailPane— item info, facets, tappable linksPivotViewerSortDropdown— property selection overlayAutomationPropertiesfor accessibilityTests
Samples
MauiPivotViewer— conceptcars collection with 298 items, real DZC thumbnailsBlazorPivotViewer— Blazor WebAssembly integrationArchitecture
INotifyPropertyChangedmodels in core for both MAUI and Blazor bindingCollectionImageProvider.cs) using 3 types