List (PRIM_LIST)

Tree and list control supporting data entry and user defined cells

Ancestors - Control (PRIM_CTRL) Object (PRIM_OBJT)

Details

The List control is a highly functional list that supports tree structures, data entry and user defined cell content.
 
In its simplest form, List is a typical two dimensional column based LANSA list control managed by the LANSA list commands, such as ADD_ENTRY, GET_ENTRY, SELECTLIST etc. Each column has a source field and data values are mapped in and out of the list as items are used.
 
List can also be used as a tree. List Items can be parented to other list items and the List control will manage the appearance, expanding and collapsing items as required.
 
Unlike other LANSA list controls such as Tree and Grid which use a single column type, List has specific column types to support the different types of content. This extends beyond the typical field based columns to include image, check box, button and reusable part.
 
Supported column types - string, number,  date time, image, button, check box and reusable part.
 
List also supports the use of dataless columns. For example, a list may consist of nothing more that checkboxes if required. Rather than relying on field values the column currentitem property can be accessed.
 
Columns work in 2 ways. Firstly, the definition of the column is used as a prototype when an entry is added. So, a button column defined with a caption of "Delete" will show a button in each item with a caption of "Delete". Secondly, all column types have a CurrentItem property that provides access to the individual instance.
 
List is also used as the basis for the DropDown control. The result is that all the features available in list are also available in the drop down area of DropDown.
 
Note: Execution in the browser does not lend itself to high volumes of data. Adding thousands of entries to a list will impact performance. Instead, you should use improved filtering, page at a time and load on demand strategies to ensure that the data is limited.

Example

This example shows a simple list with a number and button columns. The button is hidden if the row is an even numbered row. Clicking the button will delete the row.
Begin_Com Role(*EXTENDS #PRIM_WEB) Height(456) Width(864) Layoutmanager(#TableLayout1)
   Define_Com Class(#PRIM_TBLO) Name(#TableLayout1)
   Define_Com Class(#PRIM_TBLO.Column) Name(#Column1) Displayposition(1) Parent(#TableLayout1)
   Define_Com Class(#PRIM_TBLO.Row) Name(#Row1) Displayposition(1) Parent(#TableLayout1)
   Define_Com Class(#PRIM_TBLO.Item) Name(#List1Item1) Column(#Column1) Manage(#List) Parent(#TableLayout1) Row(#Row1)
 
   Define_Com Class(#PRIM_LIST) Name(#List) Displayposition(1) Left(0) Parent(#COM_OWNER) Tabposition(1) Top(0) Height(456) Width(864) Rowheight(33)
   Define_Com Class(#PRIM_LIST.Number) Name(#ColumnXDEMONUMB1) Displayposition(1) Increment(1) Parent(#List) Source(#xDemoNumber) Wrap(False)
   Define_Com Class(#PRIM_LIST.Button) Name(#ColumnButton1) Columnwidth(100) Displayposition(2) Parent(#List) Caption('Delete') Cellsizing(None) Cellwidth(80)
 
   Evtroutine Handling(#Com_Owner.CreateInstance)
 
      Begin_Loop Using(#xDemoNumber) To(10)
 
         Add_Entry To_List(#List)
 
         #ColumnButton1.CurrentItem.Visible := (#xDemoNumber.mod( 2 ) = 0)
 
      End_Loop
 
   Endroutine
 
   Evtroutine Handling(#ColumnButton1.Click)
 
      Dlt_Entry Number(#List.CurrentItem.Entry)
 
   Endroutine
 
End_Com

Properties

NameDescription
AlternateItemThemeDrawStyleThemeDrawStyle to be applied to alternate items
AutoSelectItemAutomatically select the first item when the list is loaded
BusyUpdatesBusyUpdates specifies how the control updates itself Inherited from Control (PRIM_CTRL)
BusyUpdatesOfParentBusyUpdatesOfParent specifies whether the parent controls updates Inherited from Control (PRIM_CTRL)
CanFocusCanFocus returns a value indicating whether the control can receive keyboard focus Inherited from Control (PRIM_CTRL)
CheckBoxesShow a checkbox for each item in the list
ColumnDragSpecifies whether columns can be reordered by the user
ColumnHeaderHeightHeight of the column header area in pixels
ColumnHeaderSizingDetermines how column headers will resize
ColumnLinesShow the column separator lines
ColumnMarginLeftLeft Margin of column in pixels
ColumnMarginRightRight Margin of column in pixels
ColumnMouseOverStyleStyle applied to the column heading when mouse over
ColumnMouseOverStylesCollection of styles applied to the column heading when mouse over
ColumnPressedStyleStyle applied to the column heading on mouse down
ColumnPressedStylesCollection of styles applied to the column heading on mouse down
ColumnsCollection of columns defined for the list
ColumnSortArrowShow the column sort arrow if the primary sort
ColumnStyleStyle applied to the column heading on mouse down
ColumnStylesCollection of styles applied to the column heading
ColumnThemeDrawStyleName of the Theme DrawStyle to be applied to the column headings
ComponentClassNameComponentClassName is the name of the component's class. Inherited from Object (PRIM_OBJT)
ComponentMembersComponentMembers provides access to all the member components of this component Inherited from Object (PRIM_OBJT)
ComponentPatternNameComponentPatternName is used to qualify the class of the component. Inherited from Object (PRIM_OBJT)
ComponentTagGeneric space allowing a value to be stored for the instance Inherited from Object (PRIM_OBJT)
ComponentTypeComponentType gives you access to the type information about the component Inherited from Object (PRIM_OBJT)
ComponentTypeNameComponentTypeName is the fully qualified name of the component's class. Inherited from Object (PRIM_OBJT)
CurrentItemBase class for all Prim_List Current Item classes
CurrentPageSpecifies the current page to be displayed
CursorCursor sets the cursor image Inherited from Control (PRIM_CTRL)
DisplayPositionDisplayPosition determines the order in which components are shown Inherited from Control (PRIM_CTRL)
DragStyleDragStyle determines how a component can be dragged Inherited from Control (PRIM_CTRL)
EnabledEnable activates/deactivates the component Inherited from Control (PRIM_CTRL)
EnterKeyStyleEnterKeyStyle determines what happens when Enter key is pressed in a list
FilterString to be searched for to filter the list
FixedPositionFix the control position so that it does not move if the parent is scrolled Inherited from Control (PRIM_CTRL)
FocusFocus tells whether the component has focus Inherited from Control (PRIM_CTRL)
FocusColumnReference to the active column in the list
FocusedStyleReference to a style to be applied when the control is focus Inherited from Control (PRIM_CTRL)
FocusedStylesCollection of styles to be applied when the control is focus Inherited from Control (PRIM_CTRL)
FocusItemReference to the focus item in the list
HandleReturns the Windows handle in desktop applications Inherited from Control (PRIM_CTRL)
HeightThe height of the control in pixels Inherited from Control (PRIM_CTRL)
HintCaption displayed when the mouse hovers over the control Inherited from Control (PRIM_CTRL)
HintPopupHintPopup allows a PopupPanel instance to be used instead of the default hint text box Inherited from Control (PRIM_CTRL)
HintShowEnabled or disable the appearance of hints Inherited from Control (PRIM_CTRL)
HintShowOfParentDelegate hints appearance to the parent control Inherited from Control (PRIM_CTRL)
HintTitleHintTitle defines the text shown at the top of the hint window in emphasized text Inherited from Control (PRIM_CTRL)
HorizontalScrollIncHorizontalScrollInc specifies the pixel increment for horizontal scroll bar.
HorizontalScrollPosHorizontalScrollPos sets the position of the horizontal scroll bar
IsAnimatingIsAnimating indicates that a control is currently being animated Inherited from Control (PRIM_CTRL)
IsRealizedTrue if the control is currently realized Inherited from Control (PRIM_CTRL)
ItemsCollection of items in the list
ItemThemeDrawStyleName of the Theme DrawStyle to be applied to the items
KeyboardPositioningDetermines how the list will position based on keyboard input
LeftPosition of the control relative to the left boundary of its parent Inherited from Control (PRIM_CTRL)
ModifiedModified indicates that the contents of the component have changed Inherited from Control (PRIM_CTRL)
ModifiedRulesControls when the Modified property is set to True
MouseOverMouseOver determines whether the mouse is directly over a control Inherited from Control (PRIM_CTRL)
MouseOverStyleMouseOverStyle defines the style to be applied to a control when the mouse is over it Inherited from Control (PRIM_CTRL)
MouseOverStylesMouseOverStyles is a collection of styles to be applied to a control when the mouse is over it Inherited from Control (PRIM_CTRL)
NameName identifies the component Inherited from Object (PRIM_OBJT)
NotificationStyleNotificationStyle controls how events are triggered
OpacityOpacity denotes the appearance of a control in terms of its interaction with its background Inherited from Control (PRIM_CTRL)
OwnerOwner owns this component Inherited from Object (PRIM_OBJT)
ParentReference to the control in which this control is visually positioned Inherited from Control (PRIM_CTRL)
PopupPopup allows a PopupPanel instance to be used instead of the typical right click popup menu Inherited from Control (PRIM_CTRL)
PopupMenuReference to a PopupMenu to be shown on a right click Inherited from Control (PRIM_CTRL)
RotationRotation allows a control to rotate a number of degrees about a given origin Inherited from Control (PRIM_CTRL)
RotationOriginLeftRotationOriginLeft defines the left coordinate of an imaginary point around which a control will rotate Inherited from Control (PRIM_CTRL)
RotationOriginTopRotationOriginTop defines the top coordinate of an imaginary point around which a control will rotate Inherited from Control (PRIM_CTRL)
RowHeightHeight of a row in pixels
RowLinesShow the row separator lines
RowResizeAllow rows to be resized
RowSizingDetermines how rows will resize
RowsPerPageSpecifies how many rows will appear per page
ScaleHeightScaleHeight is the percentage of the height to use in the visual appearance of a control Inherited from Control (PRIM_CTRL)
ScaleOriginLeftScaleOriginLeft defines the left coordinate of an imaginary point from which a control will scale Inherited from Control (PRIM_CTRL)
ScaleOriginTopScaleOriginTop defines the top coordinate of an imaginary point from which a control will scale Inherited from Control (PRIM_CTRL)
ScaleWidthScaleWidth is the percentage of the width to use in the visual appearance of a control Inherited from Control (PRIM_CTRL)
ScreenLeftScreenLeft sets the distance from the left of the screen Inherited from Control (PRIM_CTRL)
ScreenTopScreenTop sets the distance from the top of the screen Inherited from Control (PRIM_CTRL)
ScrollLeftLeft position of a horizontally scrolled child control relative to its parent control Inherited from Control (PRIM_CTRL)
ScrollTopTop position of a vertically scrolled child control relative to its parent control Inherited from Control (PRIM_CTRL)
SelectedRowCountSelectedRowCount shows how many columns have been selected
SelectionStyleSpecifies the rules for item selection within the list
ShowPagesSpecifies if list will be displayed in pages
SkewLeftSkewLeft defines the angle at which to skew the control horizontally Inherited from Control (PRIM_CTRL)
SkewOriginLeftSkewOriginLeft defines the left coordinate of an imaginary point from which a control will skew Inherited from Control (PRIM_CTRL)
SkewOriginTopSkewOriginTop defines the top coordinate of an imaginary point from which a control will skew Inherited from Control (PRIM_CTRL)
SkewTopSkewTop defines the angle at which to skew the control vertically Inherited from Control (PRIM_CTRL)
StyleStyle defines the style to be applied to a control Inherited from Control (PRIM_CTRL)
StylesCollection of styles to be applied to the control Inherited from Control (PRIM_CTRL)
TabPositionTabPosition sets the order of focus when the Tab key is used Inherited from Control (PRIM_CTRL)
TabStopSet to false to stop focus being given to the control via the Tab key Inherited from Control (PRIM_CTRL)
ThemeDrawStyleName of the Theme DrawStyle to be applied to the control Inherited from Control (PRIM_CTRL)
TopPosition of the control relative to the top boundary of its parent Inherited from Control (PRIM_CTRL)
TouchMoveDetermines how the control will respond to touch move processing Inherited from Control (PRIM_CTRL)
TouchRotateDetermines how the control will respond to touch rotation Inherited from Control (PRIM_CTRL)
TouchScaleDetermines how the control will respond to touch scaling Inherited from Control (PRIM_CTRL)
TouchSizeDetermines whether a control can be resized Inherited from Control (PRIM_CTRL)
TreeButtonsShow or hide the expand/collapse images
VerticalScrollIncVerticalScrollInc specifies the pixel increment for vertical scroll bar.
VerticalScrollPosVerticalScrollPos sets the position of the vertical scroll bar
VirtualizationSpecifies if a list is a virtualized.
VisibleShow or hide the control Inherited from Control (PRIM_CTRL)
VisualStyleVisualStyle sets the appearance Inherited from Control (PRIM_CTRL)
VisualStyleOfParentAdopt the Visual style from the parent control Inherited from Control (PRIM_CTRL)
WidthWidth of the component in pixels Inherited from Control (PRIM_CTRL)

Events

NameDescription
AnimationEndedFired when an animation is ended Inherited from Control (PRIM_CTRL)
Cancelled
ChangedChanged is a change in the component
CreateInstanceCreateInstance is signalled when an instance of a component is created Inherited from Control (PRIM_CTRL)
DestroyInstanceDestroyInstance is signalled when an instance of a component is about to be destroyed Inherited from Control (PRIM_CTRL)
DragDropFired on mouse up to signify the end of a drag process Inherited from Control (PRIM_CTRL)
PosX, PosY, Source, Payload, AggregatedSource, Origin, Handled, DragResult
DragOverFired during the drag and drop process when the cursor moves over the control Inherited from Control (PRIM_CTRL)
PosX, PosY, Source, Payload, DragState, AcceptDrop, DragCursor, ShowDropHilight, AggregatedSource, Origin, Handled
EndDragFired when the drag and drop process has completed Inherited from Control (PRIM_CTRL)
Source, Payload, DragResult, AggregatedSource, Origin, Handled
EnterFired when the Enter key is pressed
KeyCode, Char, IsAltDown, IsControlDown, IsShiftDown, Handled
GotFocusFired when the control receives the focus
InitializeFired after a component has been realized for the first time Inherited from Control (PRIM_CTRL)
ItemChangedItemChanged happens when an item is changed
Item
ItemClickFired when an item is clicked
Item
ItemCollapsedAn item in the list has collapsed
Item
ItemDoubleClickFired when the user double clicks an item in the list
Item
ItemExpandingAn item in the list is expanding
Item
ItemGotFocusFired when an item receives the focus
Item
ItemGotSelectionFired when an item in the list becomes selected
Item
ItemLostFocusFired when the item loses focus
Item
ItemLostSelectionItemLostSelection happens when another item is selected
Item
ItemMouseEnterThe mouse has entered the bounds of the item
Item
ItemMouseHoverThe mouse is hovering over the item
Item
ItemMouseLeaveThe mouse has left the bounds of the item
Item
ItemRealizingFired when an item design instance is realized, typically when the it comes in to the view port
Item
KeyPressFired when a key is pressed on the keyboard
KeyCode, Char, IsAltDown, IsControlDown, IsShiftDown, Handled
LostFocusLostFocus happens when a component is no longer active
MouseEnterThe mouse has entered the bounds of the control Inherited from Control (PRIM_CTRL)
MouseHoverThe mouse has hovered over the control Inherited from Control (PRIM_CTRL)
Origin, Handled
MouseLeaveThe mouse has left the bounds of the control Inherited from Control (PRIM_CTRL)
ScrollChangedFired when the scrollbars in a composite control are moved
Orientation
StartDragFired when the user starts a drag and drop process Inherited from Control (PRIM_CTRL)
Source, Payload, Continue, DragList, AggregatedSource, Origin, Handled
TouchChangeFired repeatedly between the TouchStart and TouchEnd boundaries to provide details of the touch events Inherited from Control (PRIM_CTRL)
MoveLeft, MoveTop, ScaleWidth, ScaleHeight, Rotation, Continue
TouchEndFired when the user stops touching the screen Inherited from Control (PRIM_CTRL)
TouchStartFired when the user first makes physical contact with the screen Inherited from Control (PRIM_CTRL)
Origin, TouchMove, TouchRotate, TouchScale, TouchSize

Methods

NameDescription
ExportExports list data to text file
FileName
FadeInAnimate from invisible to visible Inherited from Control (PRIM_CTRL)
Duration, Delay
FadeOutAnimate from visible to invisible Inherited from Control (PRIM_CTRL)
Duration, Delay, Visible
FindItemExecutes the OnFind method on the design interface for all list items
Result, Key, StartItem
FindReferenceFind an object stored as a RelatedReference
Result, RelatedReference, StartItem
MoveFromMove a control from the specified position to the current position Inherited from Control (PRIM_CTRL)
Left, Top, Duration, Delay
MoveToAnimate a move from the specified number of pixels Inherited from Control (PRIM_CTRL)
Left, Top, Duration, Delay
RealizeCreates the visual portion of dynamically created controls Inherited from Control (PRIM_CTRL)
ScaleAnimate a change of scale Inherited from Control (PRIM_CTRL)
ScaleWidth, ScaleHeight, Duration, Delay
SetFocusSets the control to be the focus control Inherited from Control (PRIM_CTRL)
ShowMessagesLANSA Internal Use Inherited from Control (PRIM_CTRL)
SizeTo Inherited from Control (PRIM_CTRL)
Width, Height, Duration, Delay
UnrealizeDestroys the visual portion of dynamically created controls Inherited from Control (PRIM_CTRL)
UpdateDisplayUpdateDisplay updates the display immediately Inherited from Control (PRIM_CTRL)
VerticalScrollToSet the vertical scroll position using an item
Item, ScrollPosition

See also

All Component Classes

Technical Reference

EPC1420030 V14sp2 November 2018