This is documentation for Caché & Ensemble.

For information on converting to InterSystems IRIS, see the InterSystems IRIS Adoption Guide and the InterSystems IRIS In-Place Conversion Guide, both available on the WRC Distributions page (login required).

Home > Class Reference > %SYS namespace > %ZEN.Dialog.finderDialog

%ZEN.Dialog.finderDialog

class %ZEN.Dialog.finderDialog extends %ZEN.Dialog.standardDialog

This dialog window displays a finder-style file selection window. This is intended for use within server portal pages.
To launch the finder use the zenLaunchPopupWindow function:
zenLaunchPopupWindow('%ZEN.Dialog.finderDialog.cls?MODE=classes',
	'DataSource',
	'status,scrollbars,resizable=yes,width=800,height=600');

Set URL parameter MODE to the type of thing you wish to display. Refer to the mode for a list of possible values.
Set URL parameter SUPER to limit the finder to showing classes that inherit from a specified class. In this case, MODE is ignored.
The return value of this dialog is of the form "name.type", where type is "cls" or "int" etc. To process the return value:
ClientMethod onPopupAction(popupName, action, value) [ Language = javascript ]
{
	switch(popupName) {
	case 'DataSource':
			if (value != '') {
				// value is name plus extension
				// pull extension off of name
				var s = value.toString().split('.');
				if ('cls' == s[s.length-1]) {
					s.length = s.length-1;
					var className = (s.join('.');
				}
			}
			break;
		}
	}
To use this dialog, the current user must hold USE privileges on one of the following resources:
%Admin_Manage,%Admin_Operate,%Admin_Secure,%Development,%Ens_Portal

Property Inventory (Including Private)

Method Inventory (Including Private)

Parameters

parameter AUTOLOGOUT = 0;
AUTOLOGOUT is disabled for the finder dialog as we expect it to be called as a soft modal, and the timeout behaviour should thus be controlled by the opening page.
parameter DEFAULTCATEGORY = local;
If this page has multiple categories, this is its initial value. Note: the "local" value has meaning only for "classes" mode. Other modes should set a different default category. See %OnAfterCreatePage() for where these defaults are set for each mode.
parameter DEFAULTVIEWMODE = columns;
If this page has multiple views, this is its initial display mode.
parameter DOMAIN = %ZEN;
Inherited description: Localization domain

Properties (Including Private)

property category as %ZEN.Datatype.string (ZENURL = "CATEGORY");
Category used by some modes.
Property methods: categoryDisplayToLogical(), categoryGet(), categoryIsValid(), categoryLogicalToDisplay(), categoryLogicalToOdbc(), categoryNormalize(), categorySet()
property currCategory as %ZEN.Datatype.string [ InitialExpression = ..#DEFAULTCATEGORY ];
Current Category.
Property methods: currCategoryDisplayToLogical(), currCategoryGet(), currCategoryIsValid(), currCategoryLogicalToDisplay(), currCategoryLogicalToOdbc(), currCategoryNormalize(), currCategorySet()
property currSortMode as %ZEN.Datatype.string [ InitialExpression = "name" ];
Current sort mode for this page.
Property methods: currSortModeDisplayToLogical(), currSortModeGet(), currSortModeIsValid(), currSortModeLogicalToDisplay(), currSortModeLogicalToOdbc(), currSortModeNormalize(), currSortModeSet()
property currViewMode as %ZEN.Datatype.string [ InitialExpression = ..#DEFAULTVIEWMODE ];
If this page has "views", this is the current view type.
Property methods: currViewModeDisplayToLogical(), currViewModeGet(), currViewModeIsValid(), currViewModeLogicalToDisplay(), currViewModeLogicalToOdbc(), currViewModeNormalize(), currViewModeSet()
property extension as %ZEN.Datatype.string;
If defined, then use this as the extension for items returned by the finder (e.g., "bpl").
Property methods: extensionDisplayToLogical(), extensionGet(), extensionIsValid(), extensionLogicalToDisplay(), extensionLogicalToOdbc(), extensionNormalize(), extensionSet()
property includeAbstract as %ZEN.Datatype.boolean (ZENURL = "ABSTRACT") [ InitialExpression = 1 ];
Include abstract classes. Used by some modes.
Property methods: includeAbstractDisplayToLogical(), includeAbstractGet(), includeAbstractIsValid(), includeAbstractLogicalToDisplay(), includeAbstractLogicalToOdbc(), includeAbstractLogicalToXSD(), includeAbstractNormalize(), includeAbstractSet(), includeAbstractXSDToLogical()
property includeContext as %ZEN.Datatype.boolean (ZENURL = "CONTEXT");
Used with mode "classes" for the business process context. Include or do not include classes that are either persistent, serial, or datatype. If true, accept any of these types. If false, accept none of them. As you can see in %ZEN.FinderUtils, the value for includeContext overrides any value for includeDatatype. The value for includeContext will also override mode "persistent" so they should not be used together. Use includeContext only with mode "classes".
Property methods: includeContextDisplayToLogical(), includeContextGet(), includeContextIsValid(), includeContextLogicalToDisplay(), includeContextLogicalToOdbc(), includeContextLogicalToXSD(), includeContextNormalize(), includeContextSet(), includeContextXSDToLogical()
property includeDatatype as %ZEN.Datatype.boolean (ZENURL = "DATATYPE");
Used with mode "classes". Include or do not include classes that are datatypes.
Property methods: includeDatatypeDisplayToLogical(), includeDatatypeGet(), includeDatatypeIsValid(), includeDatatypeLogicalToDisplay(), includeDatatypeLogicalToOdbc(), includeDatatypeLogicalToXSD(), includeDatatypeNormalize(), includeDatatypeSet(), includeDatatypeXSDToLogical()
property includeGenerated as %ZEN.Datatype.boolean (ZENURL = "GENERATED");
Used with mode "classes". Include or do not include classes that are generated.
Property methods: includeGeneratedDisplayToLogical(), includeGeneratedGet(), includeGeneratedIsValid(), includeGeneratedLogicalToDisplay(), includeGeneratedLogicalToOdbc(), includeGeneratedLogicalToXSD(), includeGeneratedNormalize(), includeGeneratedSet(), includeGeneratedXSDToLogical()
property includePercent as %ZEN.Datatype.boolean (ZENURL = "PERCENT");
Used with mode "classes". Include or do not include classes whose names include the % character.
Property methods: includePercentDisplayToLogical(), includePercentGet(), includePercentIsValid(), includePercentLogicalToDisplay(), includePercentLogicalToOdbc(), includePercentLogicalToXSD(), includePercentNormalize(), includePercentSet(), includePercentXSDToLogical()
property includeProduct as %ZEN.Datatype.boolean (ZENURL = "PRODUCT");
Used with mode "classes". Include or do not include classes that are mapped to product databases, e.g. CACHESYS, CACHELIB, ENSLIB, HSLIB
Property methods: includeProductDisplayToLogical(), includeProductGet(), includeProductIsValid(), includeProductLogicalToDisplay(), includeProductLogicalToOdbc(), includeProductLogicalToXSD(), includeProductNormalize(), includeProductSet(), includeProductXSDToLogical()
property includeSystem as %ZEN.Datatype.boolean (ZENURL = "SYSTEM");
Include system items. Used by some modes. Note that passing in the empty string when in "classes" mode and "local" category will include both system and non-system classes.
Property methods: includeSystemDisplayToLogical(), includeSystemGet(), includeSystemIsValid(), includeSystemLogicalToDisplay(), includeSystemLogicalToOdbc(), includeSystemLogicalToXSD(), includeSystemNormalize(), includeSystemSet(), includeSystemXSDToLogical()
property mode as %ZEN.Datatype.string (ZENURL = "MODE") [ InitialExpression = "classes" ];
This value is passed in by the caller of this dialog. It indicates what things to display. The default is "classes".

In "classes" mode the finderDialog supports four different sub-modes (stored in the currCategory property) which are chosen by the user clicking on an icon in the left-hand column of the finder.

The "local" sub-mode sets SYSTEM=0 and PERCENT=0 and PRODUCT=0. This is the default sub-mode for "classes".
The "persistent" sub-mode sets PERSISTENT=1 and, if they are undefined, SYSTEM=0, PERCENT=0, and PRODUCT=0.
The "datatype" sub-mode sets DATATYPE=1. The "system" sub-mode sets SYSTEM=1 and PERCENT=1 and PRODUCT=1.

Any URL parameter for the finderDialog that is not set by a "classes" sub-mode as described above may be used effectively with "classes" mode.

Other mode options are:
"classes" -- show class finder.
"persistent" -- show persistent class finder. Do not use DATATYPE or CONTEXT modifiers with this mode.
"datatype" -- show datatype class finder. Do not use DATATYPE or CONTEXT modifiers with this mode.
"cubes" -- show DeepSee cube finder.
"bpl" -- show Ensemble BPL business process finder.
"bplplus" -- show Ensemble business process finder: BPL and non-BPL.
"dtl" -- show Ensemble DTL data transformation finder.
"dtlplus" -- show Ensemble DTL data transformation finder: DTL and non-DTL.
"request" -- show all message request classes.
"response" -- show all message response classes.
"allmessages" -- show all message classes, grouped into categories.
"rules" -- show Ensemble rules finder.
"nms" -- show Ensemble namespaces.
"vdocclass" -- show Ensemble VDoc or persistent classes.
"vdocschema" -- show Ensemble VDoc schema categories for one or all VDoc families.
"vdoctype" -- show Ensemble DocType structures. CATEGORY indicates the doc class.
"vdoccontents" -- show the contents of an Ensemble VDoc structure. CATEGORY indicates the VDoc class and the DocType in the following format: CATEGORY=VDocClass|DocType.
"vdocsegtype" -- show Ensemble segment types. CATEGORY indicates the VDoc class.
"vdocsegcontents" -- show Ensemble property paths for a given segment. CATEGORY indicates the VDoc class and the DocType in the following format: CATEGORY=VDocClass|DocType.
"configurations" -- show Ensemble configuration items for all Productions.
"folderitems" -- show DeepSee folder items.
"services" -- show all Business Service classes.
"operations" -- show all Business Operation classes.
"lookups" -- show all defined lookup tables.
"sqlstored" -- show all stored procedures.
"queries" -- show all stored procedures that return resultSets except default extent queries.
"allqueries" -- show all stored procedures that return resultSets.
"views" -- show all SQL views.
"querycontext" -- alternately show queries, allqueries or view.
"prjfiles" -- show all Studio project files.
"production" -- show Ensemble Productions which are allowed in the namespace.
"datasettings" -- show all Ensemble Deployable Settings Documents.

Property methods: modeDisplayToLogical(), modeGet(), modeIsValid(), modeLogicalToDisplay(), modeLogicalToOdbc(), modeNormalize(), modeSet()
property returnValue as %ZEN.Datatype.string;
Value to be returned by this dialog.
Property methods: returnValueDisplayToLogical(), returnValueGet(), returnValueIsValid(), returnValueLogicalToDisplay(), returnValueLogicalToOdbc(), returnValueNormalize(), returnValueSet()
property searchKey as %ZEN.Datatype.string;
Current search (filter) key value.
Property methods: searchKeyChange(), searchKeyDisplayToLogical(), searchKeyGet(), searchKeyIsValid(), searchKeyLogicalToDisplay(), searchKeyLogicalToOdbc(), searchKeyNormalize(), searchKeySet()
property subKey as %ZEN.Datatype.string (ZENURL = "SUB");
Current super class filter value which does not include the superclass in the output. If set, this overrides the mode behaviour. Note that superKey takes precedence if both properties are specified.
Property methods: subKeyDisplayToLogical(), subKeyGet(), subKeyIsValid(), subKeyLogicalToDisplay(), subKeyLogicalToOdbc(), subKeyNormalize(), subKeySet()
property superKey as %ZEN.Datatype.string (ZENURL = "SUPER");
Current super class filter value. If set, this overrides the mode behavior.
Property methods: superKeyDisplayToLogical(), superKeyGet(), superKeyIsValid(), superKeyLogicalToDisplay(), superKeyLogicalToOdbc(), superKeyNormalize(), superKeySet()

Methods (Including Private)

method %OnAfterCreatePage() as %Status
Add components to page.
method %OnDrawHTMLHead() as %Status
Inherited description: This callback is called at the end of the HTML HEAD section of the page.
(default implementation is a simple expression).
method %OnGetSubtitle() as %String
Get the (localized) subtitle string for the dialog. This should be implemented in a subclass.
method %OnGetTitle() as %String
Get the (localized) title string for the dialog. This should be implemented in a subclass.
method DrawCategories(pSeed As %String) as %Status
Draw the contents of the Categories list on the left side of the dialog. This is displayed if a subclass implements the OnGetCategoryInfo() callback.
pSeed indicates what to draw: "classes","zen", etc.
method DrawRibbon(pSeed As %String) as %Status
Draw the contents of the tool ribbon. This is displayed if a subclass implements the OnGetRibbonInfo() callback.
method GetFinderArray(ByRef pParameters, Output pMetaData, Output pData) as %Status
Provide the source data (as an array) that will drive the finder.
method OnGetCategoryInfo(pCategory As %String, Output pDisplay As %Boolean, Output pIcons As %List) as %Status
Get information to display in the category box.
method OnGetRibbonInfo(Output pDisplay As %Boolean, Output pViewIcons As %List, Output pSortOptions As %List, Output pSearchBox As %Boolean, Output pRibbonTitle As %String) as %Status
Get information to display in the ribbon bar.
classmethod OnPreHyperEvent(class As %String, method As %String) as %Status
Avoid writing out the session cookie if we are in an Ensemble Studio session.
clientmethod adjustSize() [ Language = javascript ]
Adjust size and position of components on this page.
clientmethod drawDetails(item, finder, index) [ Language = javascript ]
Provide HTML for details on selected item in finder.
clientmethod getDialogValue() [ Language = javascript ]
Inherited description: Get the value that will be applied when the user presses the OK button. This is implemented by subclasses.
clientmethod getItemIcon(item) [ Language = javascript ]
Return the icon for the item in "icons" mode.
clientmethod itemDoubleClick(item) [ Language = javascript ]
Item double-clicked within the Finder.
clientmethod itemSelected(item) [ Language = javascript ]
Item selected within the Finder.
clientmethod loadChildren(item) [ Language = javascript ]
Load the children for the given node in the finder.
clientmethod onloadHandler() [ Language = javascript ]
This client event, if present, is fired when the page is loaded.
clientmethod openSuper(superclass) [ Language = javascript ]
User clicked on super class link.
clientmethod searchKeyChange(key) [ Language = javascript ]
User has changed search key value.
clientmethod setCategory(cat) [ Language = javascript ]
Change the current category for this page.
clientmethod setCategoryHandler(category) [ Language = javascript ]
Do the actual work of applying the new category selection.
clientmethod setSortMode(mode) [ Language = javascript ]
Change the current sort mode for the page.
clientmethod setSortModeHandler(mode) [ Language = javascript ]
Do the actual work of applying the new sort option.
clientmethod setViewMode(mode) [ Language = javascript ]
Change the current display mode for this page. This is called by the icon buttons on the ribbon. This will call the setViewModeHandler() within a subclass.
clientmethod setViewModeHandler(mode, oldmode) [ Language = javascript ]
Do the actual work of updating the view to match the current view mode.

Inherited Members

Inherited Properties (Including Private)

Inherited Methods (Including Private)

Subclasses