DataView for Xojo by piDog Software

DataView is a Listbox control subclassed from piDogScrollingCanvas
piDog DataView is a fast and flexible list viewer by piDog Software. It is an easy to use, drop-in replacement for Xojo’s Listbox control, providing more capabilities and a more native feel. Check out the features!

  • Supports Mojave Dark Mode on macOS 10.14
  • Mac Windows and Linux 32bit and 64bit
  • Retina and HIDPI capable
  • Native theme support on all platforms
  • Special cell types include Checkbox, Progressbar and PopupMenu
  • Supports individual Row Heights
  • Cells can have RowSpan ColSpan and CellHeight
  • Embed containers for custom cell types
  • Animated Column reordering, Row Dragging, Folder Expansion and Collapse and optionally, CellHeights!
  • Handles millions of rows with ease
  • List is backed by a DataSource object. Subclass DataSource and manage your data your way!
  • Demo includes an example DataBase browser to get you started!
  • Set Font attributes and colors for individual cells.
  • Drop in compatible with Xojo Listbox in most cases (let me know if I've missed something)
  • Receive Mouse Events in individual cells!
  • Supports Zoom In/Out
  • Optionally uses native NSScrollers under OSX
  • [New] Added CheckAllChecked event to allow custom handling of check-all heading checkbox
  • [New] Added RowBackGroundColor(index as integer)
  • [New] Added RowBold(index as integer)
  • [New] Added RowFont(index as integer)
  • [New] Added RowItalic(index as integer)
  • [New] Added RowTextColor(index as integer)
  • [New] Added RowTextSize(index as integer)
  • [Bug] DataViewListboxStyle and DataViewFIleBrowserStyle subclass now respects overrrides of various properties
  • [Bug] Replacing DataSource now keeps DefaultRowHeight in place
  • [Bug] Column TextFont/Italic/Bold now work as expected again
  • [Bug] Certain Fonts now render again in tight cell spaces

  • [Bug] Fixed issue with gridlines not removing line in cells with columnSpan.
    [Bug] Adding a step to distribution to ensure inspector properties get added for Xojo 2019r2.1+
  • [Bug] Fix for IllegalCastException when editing a cell.

  • [Demo] Fixes to database demo for Xojo2019r3
  • [Demo] Added nil checks to avoid exception with nil recordset
  • [New] Added DefualtColumnSpan to ListColumn class to allow using a column for it’s header only
  • [New] CheckAllCheckbox now checks newly aded rows if checked
  • [New] ColumnCheckallState method for setting Checkall state
  • [New] Locked Rows now excluded from column sort
  • [All] ContextualMenu events now bubble up properly
  • [All] Speed improvements to gridLine rendering when no CellBorders or CellHeights/ColumnSpans are set
  • [All] Improvements to scroll-on-edge-drag
  • [Bug] Fix for CellPicture Heights on non-retina display
  • [Bug] Fix for scaling of empty columns on Retina displays
  • [Bug] CellTextpaint now fires for Progressbar cells
  • [Bug] Fixes for automatic checkboxes when columns rearranged
  • [Bug] Fixed minor visual glitch when expanding/collapsing folders
  • [Bug] No longer scrolls to focused cell when expanding a row
  • [Linux] More fixes for cellcontainer click/drag behavior.

[All] Various internal classes no longer appear in Library pane
[Bug] Fixed an issue where first row couldn’t be edited when at 2x+ zoom
[Bug] Cell editor now reflects font and size of cell being edited
[Win] Character Wrap now supported on Windows targets
[Bug] Fixed a potential exception in render_column

[Demo] Added AddRow and DeleteRow to Database Demo/DBDataSource
[New] All datasource accessors to rows() array now use RowID method to allow overidding by subclasses
[Bug] Fixed an issue where a celledit could overlap heading if top of dataview was > 0
[Bug] Fixed issue with tabbing to a cell in a sorted column
[Bug] Scrolling to Cell after editing a sorted column now works as expected
[Bug] Fixed inconsistent handling of mouseup
[Bug] Fix for bug that would allow cell editfield to float when the list is scrolled during edit
[Bug] Fix for handling of AddChildRow when the parent has multiple levels of children

[Bug] Fix for possible exception related to TimerPDS
[Bug] Now allows scrollwheel events to pass through when no scrolling available
[Bug] Fix for piDogScrollingCanvas registration code
[Demo] Added code to prevent white backgrounds on contactList demo on Windows OS’s.

[All] DataViewInternals and other secondary items no longer appear in Library pane of IDE
[Bug] No longer causes stack overflow when setting usesSystemColors from ThemeChanged event
[Bug] Fixes for RowTop esp when list has 1 row
[Bug] Internal fix for Alternatng row sequencing
[All] Added DrawsFlatHeaderSeparators property to automatically draw vertical lines between header cells
[Mac] UsesAlternatingRowColors can now be changed when UsesSystemColors = true

[New] Checkboxes now follow text when center aligned and move to the right end when right aligned
[Bug] Fix for possible issues when using dataview.columndefaults to pre-set-up columns
[Bug] Fixed blurry header with vibrantHeader set
[Bug] Fixed OutOfBoundsException in drag/drop between 2 dataviews
[Bug] DataSource changes now only update parent dataview.
[Bug] Floating Group alignment adjusted by 1-pixel
[Bug] Collapsing an empty Folder or Group row no longer causes scroll position to jump.
[Bug] Added more checks for string to NSString conversion to prevent crash when conversion fails
[Bug] Fix that caused bordered Dataview to allow slight horizontal scroll when not needed.
[All] Misc minor optimizations
[All] Fixes for Xojo 2015
[Demo Bug] Database demo fix for sortcolumn infinite loop bug
[Mac] Fix for potential “dead zones” when using native scrollers.
[Win] Fix for 1 pixel misalignment of native scrollers.
[Win] Now runs under Windows XP
[Win] Fix for System hightlight Color on Windows 10
[Win] Fix for cellRect 1-pixel offset
[All] Misc minor optimizations

[Bug] Fix for InitialValue being loaded twice at open.
[Bug] Fix for DynaPDFMBS support missing default for cellValue call

[New] Added LockedRows property and LockRows() method to allow locking a number of rows to top of list.
[New] Added LockedColumns property along side LockColumns method
[New] Added LockedColumnCount property in addition to LockColumns() method
[New] Added requirement for third paramter (default) to cellValue method.
[New] Added shift-click rectangle selection behavior for shift-click with both cell sellection and multiple selection modes.
[New] InitialValue can now be set via code after open.
[All] Optimized speed of adding columns
[All] Optimizations to scrolling responsiveness
[All] Made improvements to floating group headings behavior.
[Bug] Fix for gap in rendering with a single row in a DataView
[Bug] Fix for shift-click and command-click selection functions
[Bug] Fixed Single selection mode behaviour with command-click and shift-click
[Bug] Fix for blank area at bottom of list when paintEmptyRows=true
[Bug] Fix for click tracking and rendering in custom scrollers
[Bug] Fixed a bug that could cause a rendering slowdown
[Mac] Improved trackpad scolling gesture response in LockedColumn And LockedRow areas
[Linux] Fixes for TextScaling and CellContainer rendering
[Demo] General improvements to scrolling in option pane.

I am often asked how DataView compares to Listbox in terms of adding rows.

Here’s a comparison adding 100,000 rows of 3 columns:

macOS 64bit:
– ListBox: 3 Seconds
– DataView: 3 Seconds

Windows8 64bit:
– ListBox: 43 Seconds
– DataView: 2 Seconds

Linux Mint 64bit:
– Listbox: 2 Seconds
– DataView: 3 Seconds

Of course DataView also includes some on-demand options allowing a list of 5,000,000+ rows to load instantly. It only depends on the speed of your back-end.

Try it out for free!

Download the demo project to see how it works. If you decide to use it in a production app, just buy a license code and plug it in.

DataView and piDogScrollingCanvas

32bit and 64bit

Size: 17.9
Published: March 26, 2020
Includes 1 full year of updates!
Includes piDogScrollingCanvas

Buy with PayPal Buy with FastSpring
Volume discount available here
1 year begins today or at the expiration of current license, whichever is later.

Buy with PayPal Buy with FastSpring
Includes 1 full year of updates!
Includes piDogScrollingCanvas

Buy with PayPal Buy with FastSpring
1 year begins today or at the expiration of current license, whichever is later.

Buy with PayPal Buy with FastSpring Multi-Year discount
Includes all the piDog Modules!

Buy with PayPal Buy with FastSpring
Volume discount available here