abstract class %DeepSee.Component.Widget.widget
extends %ZEN.Component.dragGroup
Base class for DeepSee Dashboard widgets.
Instances of this class, or its subclasses, represent graphical items within a
DeepSee Dashboard (such as a pivot, chart, or meter).
parameter DEFAULTCLOSEIMAGE = "images/MacCloseX.png";
Default image for close group button.
parameter DEFAULTCONTRACTIMAGE = "images/MacIconifyDash.png";
Default image for contract group button.
parameter DEFAULTEXPANDIMAGE = "images/MacIconifyDash.png";
Default image for expand group button.
parameter DEFAULTHEADERLAYOUT = "CIFT";
Default header layout pattern.
N.B. Overridden in code.
parameter DEFAULTMAXIMAGE = "images/MacFullScreenPlus.png";
Default image for maximize group button.
parameter DEFAULTMINIMAGE = "images/MacIconifyDash.png";
Default image for minimize group button.
parameter DEFAULTRESIZEICONSIZE = 16;
Default resize icon size in pixels
parameter DEFAULTRESIZEIMAGE = "images/grayDragResize.png";
Default image for maximize group button.
parameter DOMAIN = "%DeepSee";
parameter JSINCLUDES = "zenCSLM.js,zenESVG.js,DeepSee.js";
parameter NAMESPACE = "http://www.intersystems.com/deepsee";
This is the XML namespace used for library components.
parameter PUBLISHED = 1;
Set this to false to prevent this widget from being listed.
property %definition
as %DeepSee.Dashboard.Widget(XMLPROJECTION="none");
Used to hold a reference to the widget definition that defined this widget.
property backgroundColor
as %ZEN.Datatype.color(XMLPROJECTION="NONE") [ InitialExpression = "#F0F0F0" ];
color of widget background
property clickActions
as list of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Names of actions to raise for click events.
property clickActive
as list of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Names of activeWhen values for click events.
property clickFilterSpec
as %ZEN.Datatype.string(XMLPROJECTION="NONE");
Special filter value applied to this widget in response to a click event.
Also used to handle filters passed in as part of the URL that are not mapped to
a filter control.
If this starts with "%FILTER ", then this is one or more %FILTER clauses.
property clickTargetProperties
as list of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Names of target properties for click events.
property clickTargets
as list of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Names of target widgets to send click events to.
property colorToolbar
as %ZEN.Datatype.color(XMLPROJECTION="NONE") [ InitialExpression = "#F0F0F0" ];
color of toolbar
property controlIndices
as list of %ZEN.Datatype.integer(XMLPROJECTION="NONE");
Array of component indices for controls created by this widget.
property currFilterSpec
as %ZEN.Datatype.string(XMLPROJECTION="NONE");
Filter spec for most recently selected item on this widget, if applicable.
If this starts with "%FILTER ", then it contains one or more "%FILTER" clauses.
property currItemNo
as %ZEN.Datatype.integer(XMLPROJECTION="NONE");
Item number for most recently selected item on this widget, if applicable.
property currSeriesNo
as %ZEN.Datatype.integer(XMLPROJECTION="NONE");
Series number for most recently selected item on this widget, if applicable.
property currValue
as %ZEN.Datatype.string(XMLPROJECTION="NONE");
Value of most recently selected item on this widget, if applicable.
property currValueName
as %ZEN.Datatype.string(XMLPROJECTION="NONE");
Value name for most recently selected item on this widget, if applicable.
property dataSource
as %ZEN.Datatype.string(XMLPROJECTION="NONE");
Holder for dataSource.
property filterDefault
as array of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Array of default values of filters on this widget.
This is used to prevent saving of default values for widgets.
This augments the filterState property.
property filterState
as array of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Array of logical names of filters on this widget and their current values.
Each name is of the form: [DIM].[HIER].[LEVEL]
Each value is an MDX key value.
property filterText
as array of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Array of logical names of filters on this widget and their current display value.
This augments the filterState property.
property forceToolbar
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
Prevent the user from changing the settings for show toolbar.
property hasInitialFilters
as %ZEN.Datatype.boolean(XMLPROJECTION="NONE") [ InitialExpression = 0 ];
If true, then there are filter values that have to be applied.
property isClosed
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
isClosed stores the state of a widget
property linkWidgetKey
as %ZEN.Datatype.integer(XMLPROJECTION="NONE");
If this widget is linked, then this is the key of the widget we are linked to.
Set when the page is created.
property maximized
as %ZEN.Datatype.boolean(XMLPROJECTION="NONE") [ InitialExpression = 0 ];
If true, then this widget should be maximized when it is initially displayed.
property opacity
as %ZEN.Datatype.float(XMLPROJECTION="NONE") [ InitialExpression = 1.0 ];
opacity of widget background
property opacityToolbar
as %ZEN.Datatype.float(XMLPROJECTION="NONE") [ InitialExpression = 1.0 ];
property prevHomeCol
as %ZEN.Datatype.integer;
homeCol value before a widget is dragged
property prevHomeRow
as %ZEN.Datatype.integer;
homeRow value before a widget is dragged
property previewMode
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
If true, then render in preview mode.
property sessionCookie
as %ZEN.Datatype.string;
Current CSP session.
property settings
as array of %ZEN.Datatype.string(XMLPROJECTION="NONE");
Settings applied to this widget.
These are pulled from the URL of the dashboard viewer.
property showSidebar
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
Specify whether to display a sidebar.
property showToolbar
as %ZEN.Datatype.boolean [ InitialExpression = 1 ];
Specify whether to display a toolbar.
property showToolbarBottomBorder
as %ZEN.Datatype.boolean [ InitialExpression = 1 ];
Specify whether to display the separator between the toolbar and widget content
property showToolbarOnlyWhenMaximized
as %ZEN.Datatype.boolean(XMLPROJECTION="attribute") [ InitialExpression = 0 ];
Specify whether to display a toolbar.
property sidebarContent
as %ZEN.Datatype.html;
HTML content of sidebar.
property sidebarWidth
as %ZEN.Datatype.length [ InitialExpression = "25%" ];
Width of sidebar area.
property subtype
as %ZEN.Datatype.string;
Specify which specific sub-type of widget to display. The interpretation of this
is up to subclasses to implement.
property widgetKey
as %ZEN.Datatype.integer;
Identifying key for the widget.
property widgetLayout
as %ZEN.Datatype.string;
A string containing the layout state for this widget:
"key:top:left:width:height:max"
This is used by "SaveSettings"
method %AddFooter()
as %Status
Add a footer to this widget.
method %AddSidebar(pMainGroup)
as %Status
Add a sidebar to the pMainGroup of this widget.
method %DrawHTML()
Override dragGroup behavior.
method %FindComponent(id As %String)
as %ZEN.Component.component
Find a component within this widget with the given sub id.
classmethod %GetCatalogInfo(Output pInfo As %List, Output pSubtypeList As %List)
as %Status
Return information used to list this widget within the "widget catalog".
method %GetDataController()
as %ZEN.Auxiliary.abstractController
If this widget contains a data controller, return it.
classmethod %GetWidgetPropertyInfo(pSubtype As %String, Output pInfo As %List)
as %Status
Return information on additional "properties" supported by this widget for the given subtype.
method %GetWidgetSettings(ByRef pSettings As %String)
as %Status
Get array of "dashboard" settings for this widget.
method %MakeWidgetId(pString As %String)
as %String
Create an id value for an component within this widget.
method %OnAddToPageBefore()
as %Status
If implemented, this callback method is called at page render-time
when this component is added to a page but before any of its children
have been created.
method %OnCreateControls(pGroup As %ZEN.Component.group)
as %Status
This callback is called just before controls are added to the top of the widget.
pGroup is the header in which new Zen control can be added.
method %OnCreateWidget(pGroup As %ZEN.Component.group)
as %Status
This callback is responsible for creating the contents of the widget.
pGroup is the group to which new Zen components should be added.
classmethod GetKpiFilterCaption(pKPIName, pSpec)
as %String
[ ZenMethod ]
Lookup a filter caption for a KPI
method ResolveText(pEncodedText)
as %String
[ ZenMethod ]
Client-visible wrapper for the %ResolveText method to translate title text.
method adjustContentSize(load, width, height)
[ Language = javascript ]
Called when page is loaded (load will be true) or the widget is resized.
This lets a subclass adjust the size of any components it has placed in
the contents area.
width and height contain the size of the content area.
method adjustSizes(load)
[ Language = javascript ]
Called when page is loaded or widget is resized.
method closeWidget()
[ Language = javascript ]
Hide a widget. Called in onclosepending callback of this widget.
method controlEventHandler(which, action, targetProp, value, text)
[ Language = javascript ]
This method is called when a control event is sent to this widget.
A control event is raised by filter controls.
text is optional display value for value.
method findComponent(id)
[ Language = javascript ]
Find a component within this widget with the given sub id.
method getDataController()
[ Language = javascript ]
If this widget contains a data controller, return it.
This allows for generic capabilities in this base class.
method getDefinition(key)
[ Language = javascript ]
Return the definition object for a given widget, if available. Use this widget by default.
method getFilterTableForPrinting(parms)
[ Language = javascript ]
Find the filters defined for the current widget and return them in a JSON table
fit for consumption by the SVG printer.
method getOverrideSkipList(type)
[ Language = javascript ]
Return a list of items that should not be saved in override JSON arrays.
The return is passed to componentToJSON.
method getOverrides()
[ Language = javascript ]
Return an array of current style overrides for this widget.
Used to save to a theme.
method getSVGFrame()
[ Language = javascript ]
method getSettingDisplayValue(setting, value)
[ Language = javascript ]
method getSettingLists(setting)
[ Language = javascript ]
method getSubtypeClass()
[ Language = javascript ]
Return the actual type used for a widget subtype (such as "barChart").
method hasOverrides()
[ Language = javascript ]
Test if there are any style overrides for this widget.
method initializeHomeRowCol()
[ Language = javascript ]
Stores previous values of homeRow and homeCol (widget coordinates).
Called in the onwindowgrab callback.
method isMasterWidget(widgetId)
[ Language = javascript ]
method navCloseButtonClick(key)
[ Language = javascript ]
Click on close button in navigator.
method navDataArrange(key, swap, final)
[ Language = javascript ]
Re-arrange of a list in navigator.
method navDataChange(key, value, final)
[ Language = javascript ]
Change of data value in navigator.
method navHeaderButtonClick(key)
[ Language = javascript ]
Click on header button in navigator.
method navPopupAction(key, value)
[ Language = javascript ]
Popup action in navigator.
method navSelectItem(key, value, which)
[ Language = javascript ]
Select of item in navigator.
method onloadHandler()
[ Language = javascript ]
This client event, if present, is fired when the page is loaded.
method openWidget()
[ Language = javascript ]
Open a closed widget. Called in an onclick callback in %ZEN.Component.navigator.
method printSVGContent(svgFrameId, parms, svgContent, filename)
[ Language = javascript ]
Print SVG content using the svgImageProvider. Parameters specific to the widget type may be passed in
via the parms object, and those parameters will be augmented using settings common to all widgets in
this clientMethod.
The target content may be looked up in the current svgFrameId, or printable content can be passed in
directly as svgContent.
method processAppMessage(value)
[ Language = javascript ]
This is called by dragGroupManager when it is given 'processAppMessage' method
method raiseEventHandler(action)
[ Language = javascript ]
This method is called an event on this widget (such as click on a chart series)
occurs and it needs to be dispatched.
method resetOverrides(themeOnly, recreate)
[ Language = javascript ]
Reset any style overrides for this widget.
method resize(width, height)
[ Language = javascript ]
Resize the active group to the given geometry.
method selectWidget(evt)
[ Language = javascript ]
Select this widget.
method setModifiedIfDragged()
[ Language = javascript ]
Sets the "Modified" flag when a widget is dragged.
Called in the onwindowdrop callback.
method setOpacity(opacity)
[ Language = javascript ]
method setProperty(property, value, value2)
[ Language = javascript ]
Set the value of a named property.
method setToolbarProperty(property, value)
[ Language = javascript ]
method showBreakdown(analysisClass)
[ Language = javascript ]
Perform a showBreakdown action, if supported.
method showDimensions()
[ Language = javascript ]
Perform a showDimensions action, if supported.
method showGeoListing(listing)
[ Language = javascript ]
Perform a showGeoListing action, if supported.
method showListing(listing)
[ Language = javascript ]
Perform a showListing action, if supported.
method updateMenuBar()
[ Language = javascript ]
Dynamically update Open/Hidden lists in the menu bar when a widget is closed/reopened.