class %ZEN.Component.dragGroup
extends group
A specialized type of group that can be placed within a desktop group.
A drag group displays a header (which can include various buttons).
The user can drag the group around within its containing desktop group.
parameter DEFAULTCLOSEIMAGE = "images/grayDragClose.png";
Default image for close group button.
parameter DEFAULTCONTRACTIMAGE = "images/grayDragContract.png";
Default image for contract group button.
parameter DEFAULTENCLOSINGCLASS = "dragGroup";
Subclasses can set this to change default css class for a group.
parameter DEFAULTEXPANDIMAGE = "images/grayDragExpand.png";
Default image for expand group button.
parameter DEFAULTHEADERLAYOUT = "ITFC";
Default header layout pattern
parameter DEFAULTLAYOUT = "none";
Subclasses can set this to change default layout for a group.
parameter DEFAULTMAXIMAGE = "images/grayDragMax.png";
Default image for maximize group button.
parameter DEFAULTMINIMAGE = "images/grayDragMin.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.
property centerHeader
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
If set, this boolean flag indicates that the title section of the header
should be centered over the dragGroup
property colSpan
as %ZEN.Datatype.integer [ InitialExpression = 1 ];
If used as a child of a snapGroup, this specifies the (initial static) width of the widget
in columns
property header
as %ZEN.Datatype.caption [ InitialExpression = "Untitled Group" ];
Title to display in header section for this group.
property headerLayout
as %ZEN.Datatype.string [ InitialExpression = ..#DEFAULTHEADERLAYOUT ];
The header layout pattern determines the order in which control windows are added
to the header section of the dragGroup window frame. This is encoded as a five
character string consisting of the following tokens
'I' represents the Iconify button
'T' represents the Title section with both application logo and header caption
'F' represents the Full screen button
'C' represents the Close button
'U' represents the User content div (if desired)
This string allows one to restructure the location of the controls with a single
call and might be useful if the page designer is trying to match the look and feel
of a given operating system. For example, MS-Windows systems follow the pattern of
'TIFC' whereas MacOS adopts the standard of CIFT with the title centered
(cf. centerHeader) The Title section represent something of a breakpoint in the header
layout. Everything prior to the header floats from the left end of the header;
Everything after the header, floats from the right end.
property homeCol
as %ZEN.Datatype.integer [ InitialExpression = 0 ];
If used as a child of a snapGroup, this specifies the (initial static) row hosting the
left edge of the widget
property homeRow
as %ZEN.Datatype.integer [ InitialExpression = 0 ];
If used as a child of a snapGroup, this specifies the (initial static) row hosting the
top of the widget
property imageAppLogo
as %ZEN.Datatype.uri;
URI of image to display for the close group button.
property imageAppLogoWidth
as %ZEN.Datatype.integer [ InitialExpression = 0 ];
Width (in pixels) of image to display for the close group button.
property imageClose
as %ZEN.Datatype.uri [ InitialExpression = ..#DEFAULTCLOSEIMAGE ];
URI of image to display for the close group button.
property imageCloseHover
as %ZEN.Datatype.uri;
URI of image to display for the close group button when mouse is present.
property imageCloseWidth
as %ZEN.Datatype.integer [ InitialExpression = 16 ];
Width (in pixels) of image to display for the close group button.
property imageContract
as %ZEN.Datatype.uri [ InitialExpression = ..#DEFAULTCONTRACTIMAGE ];
URI of image to display for the contract group button.
property imageContractHover
as %ZEN.Datatype.uri;
URI of image to display for the contract group button when mouse is present.
property imageContractWidth
as %ZEN.Datatype.integer [ InitialExpression = 16 ];
Width (in pixels) of image to display for the contract group button.
property imageExpand
as %ZEN.Datatype.uri [ InitialExpression = ..#DEFAULTEXPANDIMAGE ];
URI of image to display for the expand group button.
property imageExpandHover
as %ZEN.Datatype.uri;
URI of image to display for the expand group button when mouse is present.
property imageExpandWidth
as %ZEN.Datatype.integer [ InitialExpression = 16 ];
Width (in pixels) of image to display for the expand group button.
property imageMaximize
as %ZEN.Datatype.uri [ InitialExpression = ..#DEFAULTMAXIMAGE ];
URI of image to display for the maximize group button.
property imageMaximizeHover
as %ZEN.Datatype.uri;
URI of image to display for the maximize group button when mouse is present.
property imageMaximizeWidth
as %ZEN.Datatype.integer [ InitialExpression = 16 ];
Width (in pixels) of image to display for the maximize group button.
property imageMinimize
as %ZEN.Datatype.uri [ InitialExpression = ..#DEFAULTMINIMAGE ];
URI of image to display for the minimize group button.
property imageMinimizeHover
as %ZEN.Datatype.uri;
URI of image to display for the minimize group button when mouse is present
property imageMinimizeWidth
as %ZEN.Datatype.integer [ InitialExpression = 16 ];
Width (in pixels) of image to display for the minimize group button.
property imageResize
as %ZEN.Datatype.uri [ InitialExpression = ..#DEFAULTRESIZEIMAGE ];
URI of image to display for the minimize group button.
property imageResizeSize
as %ZEN.Datatype.integer [ InitialExpression = ..#DEFAULTRESIZEICONSIZE ];
Square area in pixels for the resize icon
property moveEnabled
as %ZEN.Datatype.boolean [ InitialExpression = 1 ];
If set, the default, this boolean flag allows the drag group to be repositioned by
user action within the containing active group area.
property onclosepending
as %ZEN.Datatype.eventHandler;
onclosepending event handler:
This event is fired when the close button of this drag group is pressed.
Unlike native browser windows, it is possible to prevent the window
closure by calling abortClose() in response to this event.
property onresize
as %ZEN.Datatype.eventHandler;
onresize event handler:
This event is fired when this drag group is resized.
property onwindowdrop
as %ZEN.Datatype.eventHandler;
onwindowdrop event handler:
This event is fired when this drag group's title bar is released after a reloaction gesture
property onwindowgrab
as %ZEN.Datatype.eventHandler;
onwindowgrab event handler:
This event is fired when this drag group is grabbed by the titlebar for relocation.
property resizeEnabled
as %ZEN.Datatype.boolean [ InitialExpression = 1 ];
If set, the default, this boolean flag allows the drag group to be resized by
user action
property rowSpan
as %ZEN.Datatype.integer [ InitialExpression = 1 ];
If used as a child of a snapGroup, this specifies the (initial static) height of the widget
in rows
method %DrawHTML()
Static HTML display method: draw the BODY of this component
as HTML.
Subclasses implement this in order to render the static HTML
contents of a component.
method abortClose()
[ Language = javascript ]
Public utility to abort the a window closure in progress
method adjustChildArea()
[ Language = javascript ]
Utility to adjust the size of the dragChildren area in the
event of a resize action
method adjustHandleWidth()
[ Language = javascript ]
Utility to adjust the width of the drag header to correctly position
the header controls based on the current drag group width
method adjustResizeBox()
[ Language = javascript ]
Utility to adjust the location of the resize box to correctly position
the control based on the current drag group width
method animateIcon(who, which)
[ Language = javascript ]
method close(event)
[ Language = javascript ]
Callback to close the subwindow
method compress(event)
[ Language = javascript ]
Callback to reduce subwindow to the height of its title bar
method constrainDragX(engine, wrapper, intendedX)
[ Language = javascript ]
Callback to limit horizontal resizing
method constrainDragY(engine, wrapper, intendedY)
[ Language = javascript ]
Callback to limit vertical resizing
method disableCoverplate()
[ Language = javascript ]
method disableDrag()
[ Language = javascript ]
Disable user drag events for this group
method disableHeaderMaxToggle()
[ Language = javascript ]
Reset the maximize toggle mode set up by enableHeaderMaxToggle
method disableResize()
[ Language = javascript ]
Disable user resize events for this group
method enableCoverplate()
[ Language = javascript ]
method enableDrag()
[ Language = javascript ]
Enable user drag events for this group
method enableHeaderMaxToggle()
[ Language = javascript ]
When rendering static windows, enable a click anywhere on the
header handle to toggle full screen mode instead of allowing
drag operations
method enableResize()
[ Language = javascript ]
Enable user resize events for this group
method endDrag(engine, wrapper)
[ Language = javascript ]
Callback to wrap up window resize event
method expand(event)
[ Language = javascript ]
Callback to restore a compressed pane to it miniture display mode
method getChildDiv()
[ Language = javascript ]
Return the HTML div element that wraps the children of this group.
method getHeaderDiv()
[ Language = javascript ]
Return the HTML div element that wraps the header of this group.
method getHeaderUserDiv()
[ Language = javascript ]
Return the HTML div element reserver for user content in the header of this group.
method getState()
[ Language = javascript ]
Return a string that captures the current state of the group's layout
method getWindowHeight()
[ Language = javascript ]
Return the internal height of the drag window in pixles
method getWindowWidth()
[ Language = javascript ]
Return the internal width of the drag window in pixles
method isCompressed()
[ Language = javascript ]
Returns true if the drag window is currently rendered in
header only mode
method isMaximized()
[ Language = javascript ]
Returns true if the drag window is currently rendered in
maximized mode
method isResizeInProgress()
[ Language = javascript ]
Checks to see if the user is actively in the process of resizing the
window
method maximize(event)
[ Language = javascript ]
Callback to switch subwindow into full screen mode
method normalize(event)
[ Language = javascript ]
Callback to switch a full screen window back down to it previous
(iconified or mini-window) mode
method onGrabHandler()
[ Language = javascript ]
Launches a callback (if defined) when the drag group is grabbed by
the title bar for the purpose of relocation
method onRefreshContents()
[ Language = javascript ]
Client-side method to ensure that the controller has an accurate model
to work with even if the DOM has been modified externally
method onReleaseHandler()
[ Language = javascript ]
Launches a callback (if defined) when the drag group's title bar is released
after relocation gesture
method onresizeHandler()
[ Language = javascript ]
method removeWindowChrome()
[ Language = javascript ]
Remove the header entirely and disable resize
method renderContents()
[ Language = javascript ]
Client-side method to render control.
method renderCoverplate()
[ Language = javascript ]
method renderHeader()
[ Language = javascript ]
Render the contents of the header section of this component.
method renderResize()
[ Language = javascript ]
Add resize box for this component.
method resetWindowChrome()
[ Language = javascript ]
Restore header and resize controls previously remove by removeWindowChrome
method resize(width, height)
[ Language = javascript ]
Resize the active group to the given geometry
method restoreGeometry()
[ Language = javascript ]
Restore key layout information about group in after a radical presentation change
method restoreState(str)
[ Language = javascript ]
Given a previously encoded layout string, restore a group to its
previous state
method saveGeometry()
[ Language = javascript ]
Save key layout information about group in anticipation of a radical presentation change
method setAppLogo(iconURL, width)
[ Language = javascript ]
method setCenterLayout(flag)
[ Language = javascript ]
method setCloseIcon(iconURL, width)
[ Language = javascript ]
method setContractIcon(iconURL, width)
[ Language = javascript ]
method setExpandIcon(iconURL, width)
[ Language = javascript ]
method setHeaderLayout(layout)
[ Language = javascript ]
method setIcon(iconDiv, iconURL, width)
[ Language = javascript ]
method setMaximizeIcon(iconURL, width)
[ Language = javascript ]
method setMinimizeIcon(iconURL, width)
[ Language = javascript ]
method setProperty(property, value, value2)
[ Language = javascript ]
Set the value of a named property.
method startDrag(engine, wrapper)
[ Language = javascript ]
Callback to initiate window resize event
method syncObject()
[ Language = javascript ]
If the object has been moved or resized inside a snapGrid, sync the server-side
visible geometry properties with the actual location and extents
method verifyHeaderGeometry()
[ Language = javascript ]