class %ZEN.ComponentEx.finderPane
extends %ZEN.Component.component
This component implements a simple Finder-like component for browsing
hierarchically organized data. It is similar to the original SmallTalk
Finder (later adopted by Mac/OS).
parameter DOMAIN = "%ZEN";
Localization domain
property animate
as %ZEN.Datatype.boolean [ InitialExpression = 1 ];
If true (default is true), then animate the appearance
of the finder.
property caption
as %ZEN.Datatype.caption(ZENEXPRESSION=1);
If provided, this text is displayed as a caption
along the top of the finder. The text is *not*
HTML escaped, so that it can contain markup.
property columnWidth
as %ZEN.Datatype.length;
Width of columns in the finder when in "columns" mode.
The default is 200 pixels.
property folderIcon
as %ZEN.Datatype.uri [ InitialExpression = "portal/folder_48.gif" ];
Default icon to display for folder items that do not supply an icon.
property hilightTop
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
If true (default is false), then hilight the top-level rows in "list" mode.
property itemIcon
as %ZEN.Datatype.uri [ InitialExpression = "portal/document_48.gif" ];
Default icon to display for items that do not supply an icon.
property listColumns
as %ZEN.Datatype.csv;
If defined, this is a list of properties that supply the column values
in 'list' mode.
property msgNoPriv
as %ZEN.Datatype.caption [ InitialExpression = $$$TextJS("You do not have privilege to view this page.","%ZEN") ];
property oncancel
as %ZEN.Datatype.eventHandler;
oncancel event handler:
If defined, this event is fired when the user presses the escape key within the finder.
property ondblclick
as %ZEN.Datatype.eventHandler;
ondblclick event handler:
If defined, this event is fired when the user double-clicks on an item within the finder.
property ondrawdetails
as %ZEN.Datatype.eventHandler;
ondrawdetails event handler:
If defined, this event is fired when
an item with no children is selected.
If this event handler returns a value, then it is used
as DHTML to render the item details.
property ondrawempty
as %ZEN.Datatype.eventHandler;
ondrawempty event handler:
If defined, this event is fired when
there is no data available to display within the finder.
If this event handler returns a value, then it is used
as DHTML providing content for the empty finder.
property ondrawitem
as %ZEN.Datatype.eventHandler;
ondrawitem event handler:
If defined, this event is fired when
an item within the finder is about to be drawn.
If this event handler returns a value, then it is used
as DHTML to render the item contents.
property ongetdata
as %ZEN.Datatype.eventHandler;
ongetdata event handler:
This defines the client-side code that returns
an graph of javascript objects used to provide the contents
of the finder.
property ongeticon
as %ZEN.Datatype.eventHandler;
ongeticon event handler:
If defined, this event is fired when the finder is in "icons" view and returns the url
of the icon to use; if it returns "", then the default icon is used.
The current item is passed as item.
property onlazyload
as %ZEN.Datatype.eventHandler;
onlazyload event handler:
Used to partially load data into the finder.
This defines the client-side code that returns
an graph of javascript objects that are used as the children of the current node.
property onselectitem
as %ZEN.Datatype.eventHandler;
onselectitem event handler:
If defined, this event is fired when the user clicks on an item within the finder.
property parameters
as array of %ZEN.Auxiliary.parameter(XMLKEYNAME="paramName",XMLNAME="parameter",XMLPROJECTION="ELEMENT");
User-defined set of parameters. These are currently not used by the finder.
property selectedList
as %ZEN.Datatype.csv;
This is a list of numbers (0-based) indicating the current selected item(s).
The first number is the index in the top-most list of items;
the second is the index within the children of the top-most item and so on.
property upIcon
as %ZEN.Datatype.uri [ InitialExpression = "portal/up_48.gif" ];
Up icon to display in icons mode.
property viewType
as %ZEN.Datatype.string(VALUELIST=",icons,list,columns") [ InitialExpression = "columns" ];
How the contents of the finder component are displayed.
method cancelEvent(evt)
[ Language = javascript ]
Swallow a mouse event.
method getColumnsViewContent(graph)
[ Language = javascript ]
Return HTML for columns mode.
method getFinderColumnHTML(graph, column, selectedList)
[ Language = javascript ]
Return the HTML to render one column of the finder.
graph is the object graph describing the contents of the finder.
column is the column number to render (0 based).
selectedList is an array containing of the selected item for each column.
method getIconsViewContent(graph)
[ Language = javascript ]
Return HTML for icons mode.
method getItem(addr)
[ Language = javascript ]
Find the item in the object graph with the given address.
addr is a list of array offsets starting with
the topmost array in the graph: '2,4,2'.
method getListRowsHTML(array, selectedList, level, parentIdx)
[ Language = javascript ]
Return HTML for rows within list mode.
array is the data model to display.
selectedList is an array containing the selected list.
level is how many levels we are nested.
parentIdx an array of indexs for all levels above this one.
method getListViewContent(graph)
[ Language = javascript ]
Return HTML for list mode.
method getObjectGraph()
[ Language = javascript ]
Get object graph for finder.
method iconClickHandler(evt, list)
[ Language = javascript ]
Mouse down handler for items in finder (in "icon" mode).
method iconDblClickHandler(evt, list)
[ Language = javascript ]
Mouse double-click handler for items in finder (in "icon" mode).
method iconGoUp(evt)
[ Language = javascript ]
Go up one level in "icon" mode.
method iconKeyPressHandler(evt, list)
[ Language = javascript ]
Key press handler for items in finder (in "icons" mode).
method itemClickHandler(evt, list)
[ Language = javascript ]
Mouse down handler for items in finder (in "columns" mode).
method itemDblClickHandler(evt, list)
[ Language = javascript ]
Mouse double-click handler for items in finder (in "columns" mode).
method itemKeyPressHandler(evt, list)
[ Language = javascript ]
Key press handler for items in finder (in "columns" mode).
method renderContents()
[ Language = javascript ]
Draw contents of finder.
method rowClickHandler(evt, idx)
[ Language = javascript ]
Mouse click handler for items in finder (in "list" mode).
method rowDisclosureClick(evt, idx)
[ Language = javascript ]
Mouse disclosure click handler for items in finder (in "list" mode).
method setProperty(property, value, value2)
[ Language = javascript ]
Set the value of a named property.
method setViewType(type)
[ Language = javascript ]
Set the current view type.
method update(reset)
[ Language = javascript ]
Refresh the contents of the finder.
If reset is true, unhighlight and unscroll the contents.