DataView
Protected Class DataView
Description
DataView is a grid-style control designed to function as a drop-in replacement for Xojo's built-in ListBox control.

DataView is a subclass of piDogScrollingCanvas

To replace a Listbox, add the dataview and piDogScrollingCanvas folders to your project.
Change the super of a listbox to piDogDataView.DataView or drag a DataView from the Control Library.
Constants
AlignBottom
Text Aligned at bottom of cell/heading
AlignCenter
Horizontally Center align cell text
AlignDecimal
Decimal align cells
AlignDefault
Default align or column align
AlignLeft
Left align cell text
AlignRight
Right align cell text
AlignTop
Align text to the top of cells/headings
AnimationStyleDropIn
Drop-in style for folder expand/contract animations
AnimationStyleStandard
Standard animation for folder expand/contract
BorderDefault
The default line for the view
BorderDoubleThinSolid
Double thin line
BorderNone
No border
BorderRaised
A raised edge border style
BorderThickSolid
A thick solid line
BorderThinDotted
A thin dashed style
CellFormatAlignmentKey
Used to specify a text alignment for cell formatting
CellFormatBackgroundColorKey
Used to specify a background color for cell formatting
CellFormatBoldKey
Used to specify a bold font color for cell formatting
CellFormatFontKey
Used to specify a font for cell formatting
CellFormatItalicKey
Used to specify an italic font for cell formatting
CellFormatTextColorKey
Used to specify a text color for cell formatting
CellFormatTextSizeKey
Used to specify a text size for cell formatting
CellFormatTextWrapModeKey
Used to specify a text color for cell formatting
CellFormatVerticalAlignmentKey
Used to specify a text alignment for cell formatting
CheckBoxChecked
The state is checked
CheckBoxIndeterminate
An indeterminate state
CheckBoxUnchecked
An unchecked state
ColumnResizingModeDistributed
All columns will be resized proportionally when a literal value is specified and the column allows a
ColumnResizingModeLeftToRight
Columns are resized from left to right where the column allows autoresizing
ColumnResizingModeNone
Columns are not resized when a literal value is set
ColumnResizingModeRightToLeft
Columns are resized starting on the right when a literal width is set and the column allows autoresi
ColumnUserResizingModePush
All columns will be resized proportionally when a literal value is specified and the column allows a
ColumnUserResizingModeShare
All columns will be resized proportionally when a literal value is specified and the column allows a
kHide
Text to display to hide contents of a group
kShow
Text to display for show group widget
SelectionMultiple
Allow multiple selection
SelectionSingle
Allow only single selection
SortAscending
The ascending sort direction
SortDescending
The descending sort direction
SortNone
Unsorted
TextWrapModeCharacter
Wrap text by character mode
TextWrapModeDefault
Default wrap mode constant
TextWrapModeTruncate
Truncate text constant
TextWrapModeWrap
Wrap text mode
TypeCheckBox
Cell will contain a checkbox. Use CellChecked to set/get the value
TypeDateChooser
A DateChooser will be displayed to show a date. The user can click the date to access a calendar cho
TypeDefault
The default type of cell
TypeEditable
Cell can be edited by double click or click-and-hover
TypeEditableTextField
Same as TypeEditable
TypeIndex
Cells in a column with this type will be draw in the style of a header allowing for a spreadsheet st
TypeNormal
The plain text cell type
TypePassword
Editable cell type with text hidden by bullets ie ••••••
TypePopup
A popupMenu will be displayed to select an availble option
TypeProgress
A progressbar will be displayed to show a percent 0.0-1.0
Events
AdjustScrollerBounds
Use this event to adjust the bounds where the scrollers will display. Initial value is the default b
CellAction
Fired when a cell value or checked state changes
CellBackgroundPaint
Allows you to do the background painting. Return true if you've handled drawing.
CellClick
Fired when the user clicks a cell. Return true to handle the click
CellConstructContextualMenu
A right click has occurred. Populate base to display a contextual menu.
CellContextualMenuAction
A contextual menu item was selected.
CellDidEdit
Called when a cell has been edited by the user.
CellDropObject
Will be fired when the user drops an object on the list unless true was returned from dragover event
CellGotFocus
Fired when an editable cell gets focus.
CellKeyDown
Fired when the user is editing a cell. Return true to override
CellLostFocus
Fired when a cell loses the focus
CellMouseDrag
The Mouse was dragged after cellClick returned true. X and Y are relative to the top-left of the cel
CellMouseEnter
Fired when the mouse moves into the given cell.
CellMouseExit
Fired when the mouse exits the given cell
CellMouseMove
The mouse moved within the cell at row-column. X and Y are relative to the top-left of the cell.
CellPopupMenuAction
Called when the user has selected an item in a PopupMenu Cell.
CellTextChange
Fired when a cell has bee edited
CellTextPaint
Allows you to do the text drawing youself. Return true if you've handled the event.
Change
Selection or data has been changed
Close
The control is closing
ColumnDrag
Handle this event to prevent dragging of a column by returning true
ColumnDragTo
Handle this event to prevent dragging a column to newindex by returning true
ColumnReorder
Handle this event to be notified when a column has been moved by the user
ColumnResize
The user is resizing the column DraggingColumn
CompareRows
Return true to use a custom sort order. Set Result to -1 the specify less-than, +1 for greater
ConstructContextualMenu
Standard ContextualMenu functionality. See CellConstructContextualMenu for cell based function.
ContextualMenuAction
Standard ContextualMenu Handler. See CellConstructContextualMenu for cell based function.
DepopulateCell
Called when a CellContainer needs to be reset to it's default state.
DisclosureWidgetPaint
Handle this event to paint the disclosure widget. Change the x,y,width,height to a
DoubleClick
The user double clicked a cell. Return true to handle it yourself.
DragAccepted
'Item' was dragged from this view and dropped on 'target''.
DragCells
Called when the user drags cells with cellSelectionMode=true
DragOut
Called when The user drags rows out of the control. Requires EnabelDrag to be set to True.
DragOver
Return true from this event to receive a dropObject event when the user drops an object.
DragReorderRows
The user has dragged a row or group of rows to a new location.
DragRows
Called when the user drags rows with cellSelectionMode=false
DrawCellRect
Fired to allow an opportunity to draw a rect to show the cell currently affected by keyboard navigat
DropCells
Cells (XML available in obj raw data "cell") have been dropped on the list at insertionIn
DropObject
Fallback event fired when CellDropObject returns false and dragItem doesn't contain 'cels&
DropRows
Called when rows dragged out of a DataView have been dropped at insertionIndex.
EditCellPaste
The Paste Menu was selected while a cell is being edited. Use this event to handle the paste by retu
EditCopyHandler
The Copy menu was selected
EditCutHandler
The Cut menu was selected
EditPasteHandler
The paste menu was selected
ExpandRow
Called when a row is expanded by the user. Rows added will be added as children of the expanding row
getDataSource
Return a TableData object here to provide a data source during initialization and before the control
GotFocus
The control has gotten focus
GridlinePaint
This event is fired after the list is drawn and before the header is drawn. return true if the drawi
HeaderPressed
The user clicked a column header. return true to cancel (prevent sorting).
HeadingBackGroundPaint
Use this event to draw the header background. Return true if you've handled the event.
HeadingConstructContextualMenu
A right click has occurred. Populate base to display a contextual menu.
HeadingContextualMenuAction
A contextual menu item was selected.
HeadingTextPaint
Use this event to draw the Header text. Return true if you've handled the event
KeyDown
A key was pressed. Return true to handle the event.
KeyUp
A key was released. return true to handle the event
LostFocus
The control has lost the focus
MouseExit
The mouse has left the control
MouseWheel
The user has scrolled the control. return true to handle the event.
Open
The control is opening
PaintOverlayLayer
Provides an oportunity to paint on the DataView after the standard painting has completed.
PaintScrollingLayer
area needs to be redrawn. g is the main graphics. m is the graphcs for masking under carbon/win32. Z
PopulateCell
Called when a CellContainer needs to be updated to display the current data for a cell
prepareDatePicker
Called before a datePicker is displayed. Use this event to set the minDate as maxDate for the select
PrintCell
Allows for custom Handling of Cell Printing including to PDF. Return true if you've handled it.
PrintCellBG
Allows for custom Handling of Cell Printing including to PDF. Return true if you've handled it.
PrintCellBorders
Allows for custom Handling of Cell Border Printing including to PDF. Return true if you've hand
RenderDraggedRows
Handle this event and return a picture if custom drag rendering is needed.
Resized
The Canvas was resized. Called after painting.
Resizing
The Canvas is resizing. Called before painting
RowWillRender
Provides opportunity to populate a row immediately before it is rendered. Useful for on-demand lists
ScrollingLayerSizeChanged
Use this event to make adjusments based on the size of the scrolling layer.
ZoomChanged
The zoom factor of the control has changed.
Methods
ActivateCell
Will activate the cell's CellContainer and return a reference to it
AddChildRow
Adds a new row to the list as a child of ParentRow using an array of strings
Adds a new row to the list as a child of ParentRow
Adds a new row to the list as a child of ParentRow using an array of variants
AddColumn
Adds a new column at Index using the passed newColumn to setup the column
Add a new column to the right side of the list
AddFolder
Adds a new folder to the list
AddGroup
Adds a new group to the list
AddRow
Adds a new row to the list using an array of strings
Adds a new row to the list
Adds a new row to the list using an array of variants
AddRows
Adds a list of rows with optional rowtags. Much faster to use during ExpandRow on a long list
Cell
Get the text of the cell
Set the value of the cell (variant)
CellAlignment
Gets the BackgroundColor of the cell at row/column
Set the allignment for the cell
CellBackgroundColor
Gets the BackgroundColor of the cell at row/column
Sets the BackgroundColor of the cell at row/column
CellBold
Gets the Bold style for the cell if available
Sets the Bold style for the cell if available
CellBorderBottom
Gets the Bottom Border Style for the given cell
Sets the Bottom Border Style for the given cell
CellBorderColorBottom
Gets the Bottom Border Color for the given cell
Sets the Bottom Border Color for the given cell
CellBorderColorLeft
Gets the Left Border Color for the given cell
Sets the Left Border Color for the given cell
CellBorderColorRight
Gets the Right Border Color for the given cell
Sets the Right Border Color for the given cell
CellBorderColorTop
Gets the Top Border Color for the given cell
Sets the Top Border Color for the given cell
CellBorderLeft
Gets the Left Border Style for the given cell
Sets the Left Border Style for the given cell
CellBorderRight
Gets the Right Border Style for the given cell
Sets the Right Border Style for the given cell
CellBorderTop
Gets the Top Border Style for the given cell
Sets the Top Border Style for the given cell
CellCheck
Get the checked value of the cell
Set whether the cell is Checked
CellCheckEnabled
Gets whether the cellcheck is enabled
Sets whether the cellcheck is enabled
CellContainer
Get the Container for the cell
Set the Container for the Cell
CellFont
gets the font name for the cell
sets the font by name for the cell
CellHeight
Gets the height for the given cell
Sets the height for the given cell
CellHelpTag
Get the HelpTag for the cell
Set the HelpTag for the Cell
CellItalic
Gets the Bold style for the cell if available
sets the italic style for the cell if available
CellOptionList
Get the OptionList for the popupMenu cell
Set the OptionList for the popupMenu Cell
CellPicture
Get the picture for the cell
Set the picture for the Cell
CellState
Get the checked value of the cell
Set whether the cell is Checked
CellTag
Get the tag for the cell
Set the Tag for the Cell
CellTextColor
gets the color of text in the cell at row/column
sets the color of text in the cell at row/column
CellTextHeight
Returns the vertical space required to display wrapped text
CellTextSize
gets the size of text in the cell at row/column
sets the size of text in the cell at row/column
CellTextWrapMode
TextWrapMode for the celll
Set the TextWrapMode for the Cell
CellType
Get the type of the cell
Set the type of the cell
CellValue
Get the value of the cell (variant)
CellVerticalAlignment
Gets the Vertical Alignment of the cell at row/column
Set the vertical allignment for the cell
ClearSelections
Deselect all rows/cells
CollapseRow
Collapse the row
Column
Gets a piDogDataView.ListColumn object containing width values for the column at index
Assigns a piDogDataView.ListColumn object containing width values for the column at index and refres
ColumnAlignment
Get the current allignment of the column
Set the allignment for the column
ColumnAlignmentOffset
Get the current allignment Offset of the column
Set the allignment Offset for the column
ColumnByFieldName
Attempts to get a column's index from it's title
ColumnByTitle
Attempts to get a column's index from it's title
ColumnCheckAll
Get whether the column has a check all box in the header
Set whether the column will have a check all box in the header
ColumnCheckAllChecked
Whether the user has checked the checkAll box
ColumnFormatString
Get the current format string of the column
Set the format string for the column
ColumnFromXY
Get the column at x,y relative to the View if isMouseCoordinates=true.
ColumnHidden
Get whether the column is currently hidden
Set whether the column is hidden
ColumnOptionList
gets the OptionList associated with a column
sets the optionList for a column of type TypePopup.
ColumnResizable
Get whether the column has a check all box in the header
Set whether the column will have a check all box in the header
ColumnSortDirection
The current sorting direction of the column.
Sets the current sorting direction of the column.
ColumnSpan
Get the number of columns the cell at row/column occupies
Set the number of columns the cell at row/column occupies
ColumnTag
gets the tag associated with a column
sets the tag for a column.
ColumnType
Get the type of the column
Set the type of the column
ColumnWidthsForWidth
returns the widths for the specified columns() sized to fit forWidth or all columns if columns() is
Copy
Copies currently selected cells/rows as tab delimited text
Cut
Copies and removes selected rows or copies and clears selected cells as tab-delimited text
DeleteAllRows
Remove all rows from the list
EditCell
Puts the cell into editing mode
enableVibrancy
Under MacOSX 10.10+ calling this Method will enable vibrancy for the canvas
EnableVibrantHeader
Under MacOSX 10.10 calling this Method will enable vibrancy for the list header
Expanded
Whether the row is expanded
Sets whether the row is expanded
FocusCell
Sets the cell as the cell with focus
fromXML
Load the list from previously created XmlDocument
GroupSuppressShowHideText
Whether the group folder has a show/hide widget.
Sets whether the group folder has a show/hide text.
HasCellHeights
Whether the list contains any cells with a custom height.
Heading
Get the heading at index
set the heading at index
InsertColumn
Add a column to the view and datasource after specified column
InsertFolder
Adds a folder to the list at index
InsertRow
inserts a row into the list at index using an array of strings
inserts a row into the list at index
inserts a row into the list at index using an array of variants
InsertRows
Allows inserting of an array of rows using Titles() and optionally RowTags, Tags() at index.
InvalidateAllCells
Cause all cells to be rerendered
InvalidateCell
Cause a cell to be rerendered
InvalidateRow
Cause all cells in the row to be rerendered
LastIndex
The last row added to the list
List
Returns cell at row,0
Sets the cell at row,0
ListCount
The number of items in the list
Sets the list to have 'value' number of rows.
LockColumns
Lock (Count) left columns so other columns can slide under when scrolling right.
Paste
Pastes tab-delimited text from clipboard into selected cells/rows
printHeight
returns the vertical space needed to print the entire view
PrintPage
Call to print a page to g (graphics) beginning with startRow.
RectFromCell
Returns a REALbasic.Rect representing the bounds of the cell at row,column
Redraw
Causes all cells and header to be redrawn and the view invalidated
RemoveColumn
Remove the column from the view and datasource
RemoveRow
Remove the row from the list
RenderCell
Renders a cell as a picture.
RowDepth
Gets the depth of the row as index
Sets the depth of the row at index
RowExpanded
Whether the row is expanded
Sets whether the row is expanded
RowFromXY
The row located at x,y in the view coordinates if isMouseCoordinate=true.
RowHeight
Sets the height of the row at index
Gets the height of the row as index
RowHidden
Gets the hidden state of the row as index
Sets the hidden state of the row at index, preserving other properties
RowIsFolder
Sets the row as a iHierarchical folder.
Sets whether the row is a iHierarchical folder
RowIsGroup
Whether the row as a group folder.
Sets whether the row as a group folder.
RowIsVisible
checks whether a row is currently displayed
RowPicture
The Picture assigned to the row
Assign a picture to the row
RowSpan
Get the number of rows the cell at row/column occupies
Set the number of rows the cell at row/column occupies
RowTag
The tag associated with the row
Associate a tag with a row
SaveAsPDF
On MacOS allows you to write the DataView to a PDF file at Destination using CoreGraphics
ScrollCellIntoView
Brings a cell into the visible area in the control
ScrollRowIntoView
Brings a row into the visible area in the control
SelCount
get the number of rows selected
Selectable
Whether the row is selectable
Sets whether the row is selectable
Whether the cell is selectable
Sets whether the cell is selectable
SelectAll
Selects all rows/cells
Selected
Whether the row is selected
Sets whether the row is selected
Whether the cell is selected
Sets whether the cell is selected
SelectedCells
returns an Array of the Selected Cells as Pairs Row:Column
SelectedRows
returns an Array of the Selected Rows
ShowDatePicker
Show a datepicker for the specified cell
ShowPopupMenu
Allows you to activate a popupmenu via code based on keypress or other events
Sort
sort the list by the current SortColumn and SortDesending value
toXML
Create an XmlDocument representing the list
UnhideAllRows
Sets the hidden state of all rows to false
ViewRectFromCell
calculates the area of the view that the given cell will occupy.
Properties
AccessColumnsByInsertionOrder
When set to true, column access will be mapped to the original insertion order.
ActiveCell
Gets the currently active cell editor.
AllowColumnReorder
Whether the user should be allowed to reorder columns
AllowsOverflow
If false, column widths are reduced proportionally beyond minimums to keep the list width with
AllowsUnderflow
If false, column widths are expanded proportionally when the view is larger than the total of
AnimationDuration
Duration of animations for DragReorderRows
AutoExpandCellEditor
Whether TextArea autoExpands to accomodate text when editing cells
AutomaticCheckBoxes
Whether the DataView will automatically set the checked state of parent rows when checkboxes are che
Bold
Makes the text in the list Bold if available
CellPadding
Determines the amount of space to be inserted at cell edges
CellSelectionMode
Set to true to allow individual cells to be selected
ChildrenPersist
If set to true, child rows will be hidden when a folder is collapsed and unhidden when the fol
ColorIzedHeader
Set to true to use system HighlightColor for selected Column when UsesSystemColors=true
ColumnCount
The number of columns in the control
ColumnResizingMode
Determines the mode for collapsing column widths to their minimumWidth when resizing the control.
ColumnsResizable
Set to true to alow the user to resize columns by dragging
ColumnUserResizingMode
Determines the mode for resizing column widths when the user drags a column divider
ColumnWidths
A string to set the column sizing. Same format as Xojo Listbox ColumnWidths
ControlCellsUseSystemFont
Whether checkbox, popup and date cells use system font and size. Otherwise, cell,
DataSource
An optional DataSource subclass to be used as a DataSource for the list
DefaultColumnWidth
The Width to be used for new columns when no widths are set
DefaultMinColumnWidth
The MinWidth to be used for new columns
DefaultRowHeight
The RowHeight to be used for rows without an explicit height
DragDelay
Determines how long the user must hold the mouse before a drag begins.
DrawsCellRect
Whether the view will draw a rectangle around the currently active cell and raise the DrawCellRect e
EditDelay
Determines how long the user must hover the mouse after a click before an edit begins.
EnableDrag
Set to true to alow the user to drag rows from the list
EnableDragReorder
Set to true to allow users to reorder the list by dragging
FlatHeader
If set to true, header will render without gradiated background
FloatGroupRows
Whether Group Row Headings Float at the top of the view when subrows are still Visible.
FolderAnimationDuration
Duration of animations for Folder open/close
FolderAnimationStyle
Either standard or Drop-in style
GridlinePaintEnabled
Set to false to disable GridlinePaint event and save some CPU
GridLinesHorizontal
Defines the Horizontal Gridline type
GridLinesHorizontalColor
Defines the default color used for drawing horizontal gridlines
GridLinesVertical
Defines the Vertical Gridline type
GridLinesVerticalColor
Defines the color used for drawing Vertical Gridlines
GroupHideText
Set a value to override the built-in Hide Group text
GroupShowText
Set a value to override the built-in Show Group text
HasHeading
The list has column headers
HeaderHeight
The height of the header
HeaderOffset
Moves the header down the specified number of pixels.
HeadingBGAlpha
The alpha value used in drawing header backgrounds.
HeadingBGColor
The base background color for the header.
HeadingDisabledTextColor
the text color of the header when disabled.
HeadingFont
The font to use to draw text in the header
HeadingHeight
The height of the header
HeadingSelectedBGColor
The base background color for drawing header sort column
HeadingSelectedTextColor
the text color of the header sort column
HeadingTextColor
The text color to draw header text
HeadingTextSize
the size to draw the header text
Hierarchical
Setting this value to true will cause the list to perform as a iHierarchical list. This value is aut
InitialValue
A set of tab delimited values to be used to initialize the list
Italic
Makes text in the list italic if available for selected Font
ListBackgroundColorA
first alternating Background color
ListBackgroundColorB
second alternating Background color
ListDisabledHighlightColor
The color for selected cells when control is inactive
ListDisabledTextColor
The color for cell text when control is disabled.
ListHighlightColor
The background color to be used for selected rows/cells
ListHighlightedTextColor
Text color of selected cells
ListIndex
The currently selected row, or the the first selected row if multiple rows are selected
PaintEmptyRows
Set to false to prevent painting of rows beyond the list content
RequiresSelection
Set to true to prevent the user from deselcting all rows by clicking an empty row
ScrollPosition
Get or set the first visible row
SelectionType
piDogDataView.selectionMultiple or piDogDataView.SelectionSingle
SnapToRowTops
Setting to True causes scrolling to snap the top row to the bottom of the heading
SortColumn
The Currently selected column for sorting the list
SortDesending
Whether the list is sorted with lower value items toward the bottom
SortedColumn
The Column currently used to sort the list
StaticHeader
Setting to true will prevent the header from bouncing with the list when the user scrolls past the b
TabToEditableCellsOnly
Whether the TAB key moves to the next editable cell (includes CheckBox, DateChooser and Popup)
TextColor
The color to render text in the list
TextFont
The font to use to render text in the list
TextSize
The size to render text in the list
TextWrapMode
Either TextWrapModeTruncate, TextWrapModeWrap or TextWrapModeCharacter
UsesAlternatingBackgroundColors
Whether the list will display rows with alternating background colors
UsesSystemColors
Overrides the colors set through other properties
VerticalAlignment
Set the default vertical cell allignment
ZoomScalesColumnWidths
If true, column widths are calculated based on the width of the view/zoom.