-
Notifications
You must be signed in to change notification settings - Fork 703
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #2575 - TableView to use interface instead of System.Data.DataTable #2576
Conversation
Marking this ready for review as it is good to merge. I do want to update FileDialog to use the new interface but since it was all written with DataTable in mind it will be a bit of work to back that out and probably makes sense to do that as a seperate PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See my PR.
Fixed Frame != Bounds; changed UICat Scenarios list to use tableview!
This is currently 'by design'.
The current way of dealing with this is to use the I mentioned in your PR about maybe adding something like |
I get it now. I think we should add your explanation in uicatalog.cs where I put all the setup code. |
Cool that makes sense, how does this read? |
Oops. As soon as I merged this, i realized moving to TableView broke CollectionNavigator for the scenario list. @tznind how hard it is to make CollectionNavigator work with tableview? |
Its doable because I did a 'good enough' implementation for FileDialog (see But to add it as a core feature of For example if you have 1 million rows then you don't want to be regularly passing them to a new navigator just because the user changed columns. And you don't want to duplicate all the data at all really because it can change. I think we would want an interface Its definitely doable but requires care. I am refactoring |
I have documented the breaking change in the breaking changes thread: #2448 (comment) |
….DataTable (gui-cs#2576) * WIP: Add ITableDataSource * WIP: Refactor TableView * WIP: Port CSVEditor * WIP: Port TableEditor * WIP: Port MultiColouredTable scenario * Fix bug of adding duplicate column styles * Update tests to use DataTableSource * Tidy up * Add EnumerableTableDataSource<T> * Add test for EnumerableTableDataSource * Add test for EnumerableTableDataSource * Add code example to xmldoc * Add ProcessTable scenario * Rename ITableDataSource to ITableSource and update docs * Rename EnumerableTableDataSource to EnumerableTableSource * Fixed Frame != Bounds; changed UICat Scenarios list to use tableview! * Fix scroll resetting in ProcessTable scenario * Fix unit tests by setting Frame to same as Bounds * Document why we have to measure our data for use with TableView --------- Co-authored-by: Tig Kindel <[email protected]>
…ual OnXXX methods. (#2577) * Fixes #2482. Refactor Redraw - Non-virtual with the right set of virtual OnXXX methods. * Change documentation comments. * Fixes #2575 - TableView to use interface instead of System.Data.DataTable (#2576) * WIP: Add ITableDataSource * WIP: Refactor TableView * WIP: Port CSVEditor * WIP: Port TableEditor * WIP: Port MultiColouredTable scenario * Fix bug of adding duplicate column styles * Update tests to use DataTableSource * Tidy up * Add EnumerableTableDataSource<T> * Add test for EnumerableTableDataSource * Add test for EnumerableTableDataSource * Add code example to xmldoc * Add ProcessTable scenario * Rename ITableDataSource to ITableSource and update docs * Rename EnumerableTableDataSource to EnumerableTableSource * Fixed Frame != Bounds; changed UICat Scenarios list to use tableview! * Fix scroll resetting in ProcessTable scenario * Fix unit tests by setting Frame to same as Bounds * Document why we have to measure our data for use with TableView --------- Co-authored-by: Tig Kindel <[email protected]> * Fixes #2582 - Refactors FileDialog for cleaner data model (#2583) * WIP: Add ITableDataSource * WIP: Refactor TableView * WIP: Port CSVEditor * WIP: Port TableEditor * WIP: Port MultiColouredTable scenario * Fix bug of adding duplicate column styles * Update tests to use DataTableSource * Tidy up * Add EnumerableTableDataSource<T> * Add test for EnumerableTableDataSource * Add test for EnumerableTableDataSource * Add code example to xmldoc * Add ProcessTable scenario * Rename ITableDataSource to ITableSource and update docs * Rename EnumerableTableDataSource to EnumerableTableSource * Fixed Frame != Bounds; changed UICat Scenarios list to use tableview! * Fix scroll resetting in ProcessTable scenario * Fix unit tests by setting Frame to same as Bounds * Document why we have to measure our data for use with TableView * WIP: Simplify FileDialogs use of TableView * WIP start migrating sorter * WIP new filedialog table source mostly working * WIP remove sorter class * Refactor GetOrderByValue to be adjacent to GetColumnValue * Fix collection navigator back so it ignores icon * Fix unit tests * Tidy up * Fix UseColors * Add test for UseColors --------- Co-authored-by: Tig Kindel <[email protected]> * Fixes #2196. TextView: Setting Text places cursor at beginning, unlike TextField (#2572) * Fixes #2196. TextView: Setting Text places cursor at beginning, unlike TextField * Change all private members to have the _prefix. * Renamed local member to prevLayoutStyle. * Helper function for SetNeedsDisplay. * Fixes #2569. Borders scenarios needed to be refactored. (#2570) * Fixes #2569. Borders scenarios needed to be refactored. * Fix border title with width equal to 4 and thickness top grater than 1. * Improves border manipulation on borders scenarios. * Prevents null value on the margin, border and padding thickness on the border scenarios. * Remove NStack using dependence and fix prior commit. * Refactoring the Frames scenario. * Deleted borders scenarios. * I did not realize that it was changed to SetSubViewNeedsDisplay. * Re-layout; fixed colorpicker; fixed radio group * Remove Thickness.IsEmpty as requested. * Change the Frames scenario as requested. --------- Co-authored-by: Tig Kindel <[email protected]> * Builds CollectionNavigator support into UI Catalog for TableView (#2584) * Builds collectionnav support into UI cat for TableView * Fixes keyboard mapping * MultiSelect = false for TableView * MultiSelect = false doesn't unbind ctrl-a * Fixes #2581 Refactor CollectionNavigator so it supports TableView (#2586) * Refactor CollectionNavigator to a base and a collection implementation * Refactor CollectionNavigatorBase to look for first match smartly * Add TableCollectionNavigator * Make TableCollectionNavigator a core part of TableView * Fix bad merge * Added tests for tableview collection navigator * Add FileDialogCollectionNavigator which ignores . and directory separator prefixes on file names * whitespace fixes --------- Co-authored-by: Tig <[email protected]> * Resolving merge conflicts. * Fix merge errors. * Fix merge errors. * Add Command.Accept and snap to the selected glyph when ShowHorizontalScrollIndicator change to true. * Reformat. * Reformat again. --------- Co-authored-by: Thomas Nind <[email protected]> Co-authored-by: Tig Kindel <[email protected]>
Fixes #2575 - Changes
TableView
from being based onSystem.Data.DataTable
toITableDataSource
This PR makes it super easy to create
TableView
that presents any arbitrary collection. The user is no longer required to mess about converting their data intoSystem.Data.DataTable
in order to render.ProcessTable scenario
Pull Request checklist:
CTRL-K-D
to automatically reformat your files before committing.dotnet test
before commit///
style comments)