public class

ReportGridTransformImpl

extends AbstractReportGridTransform
java.lang.Object
   ↳ com.microstrategy.web.transform.AbstractTransform
     ↳ com.microstrategy.web.transform.AbstractLayoutTransform
       ↳ com.microstrategy.web.app.transforms.AbstractAppTransform
         ↳ com.microstrategy.web.app.transforms.AbstractWebBeanTransform
           ↳ com.microstrategy.web.app.transforms.AbstractReportTransform
             ↳ com.microstrategy.web.app.transforms.AbstractReportDataTransform
               ↳ com.microstrategy.web.app.transforms.AbstractReportGridTransform
                 ↳ com.microstrategy.web.app.transforms.ReportGridTransformImpl
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

The ReportGridTransformImpl generates the grid visualization of the data returned by a Report.

Take as example the following table:
Region
Category
Subcategory
Quarter
Q1 03
Q2 03
Q3 03
Q4 03
Metrics
Profit Forecast
Profit Forecast
Profit Forecast
Profit Forecast
Northwest
Electronics
Audio Equipment
$2,737
$4,795
$3,351
$7,064
Northwest
Electronics
Cameras
$7,368
$11,930
$8,441
$11,252
Northwest
Electronics
TV's
$1,680
$4,239
$2,278
$3,778
Northwest
Movies
Drama
$1,114
$1,817
$1,361
$2,232
Northwest
Movies
Special Interests
$598
$1,167
$643
$1,078
Northwest
Music
Pop
$635
$978
$626
$1,158

As with any other Transforms, the output can be customized by extending public or protected render methods. In particular, this Transform defines 3 main public methods:

  • renderGrid(MarkupOutput): which generates the whole grid, and calls:

    1. renderGridHeaders(MarkupOutput): which generates the top section:
      Region
      Category
      Subcategory
      Quarter
      Q1 03
      Q2 03
      Q3 03
      Q4 03
      Metrics
      Profit Forecast
      Profit Forecast
      Profit Forecast
      Profit Forecast

    2. renderGridData(MarkupOutput): which generates the bottom section:
      Northwest
      Electronics
      Audio Equipment
      $2,737
      $4,795
      $3,351
      $7,064
      Northwest
      Electronics
      Cameras
      $7,368
      $11,930
      $8,441
      $11,252
      Northwest
      Electronics
      TV's
      $1,680
      $4,239
      $2,278
      $3,778
      Northwest
      Movies
      Drama
      $1,114
      $1,817
      $1,361
      $2,232
      Northwest
      Movies
      Special Interests
      $598
      $1,167
      $643
      $1,078
      Northwest
      Music
      Pop
      $635
      $978
      $626
      $1,158

This Transform allows to customize the content of every cell, for this reason, this content is not generated internally, but is delegated to a class that implements the ReportGridDisplayCell interface.
When the renderGrid method is invoked, the Transform starts iterating through the grid's data. For each cell that it identifies needs to be rendered, it creates a different ReportGridDisplayCell and initializes it with the corresponding information. Depending on the cell type, an specialized ReportGridDisplayCell is created with the relevant data. There are five types of cells:

The implementation class to use for each of these cells is controlled through a configuration file. The name and location of the file to be used by the Transform is specified in the gridClassesConfFile. Developers then, can create their own implementation of these classes (or extend the default ones) that modifies the cell output.

In the report page, this Transform is also responsible for generating the incremental fetch links for both, columns and rows. This functionality is inherited from AbstractReportDataTransform

Summary

Nested Classes
class ReportGridTransformImpl.Context Extends AbstractAppTransform.Context
Constants
String FP_IS_HTML_EXPORT
[Expand]
Inherited Constants
From class com.microstrategy.web.app.transforms.AbstractReportDataTransform
From class com.microstrategy.web.app.transforms.AbstractAppTransform
Fields
protected SharedCellProperties _sharedCellProperties
protected FormalParameter containerHeight Specifies the height (in any measure accepted by the web-browser) of the <div> tag enclosing the grid's table.
protected FormalParameter containerWidth Specifies the width (in any measure accepted by the web-browser) of the <div> tag enclosing the grid's table.
protected FormalParameter cssParentFontSize This is the report's base font size.
protected FormalParameter cssPathParameter Determines the CSS class path to for all CSS classes in a grid report.
protected FormalParameter cssUseRelativeFont Determines whether to use relative font for the CSS.
protected FormalParameter dpiConversion Indicates the dpi conversion factor to convert between inches and pixels (inches=pixels/dpiConversion).
protected FormalParameter drillLinkExtraURL This is the code which we will append with the drill hyperlink tag for DHTML.
protected FormalParameter drillRetainParent This is the FP which tells whether to retain the parent while drilling.
protected FormalParameter headerMetricValueOptimized This is the parameter which decides if we move the common html attributes of non-metric headers and metric value cells to a map and is thus stored once.
protected FormalParameter heightMode

Determines whether the <div> tag enclosing the grid should have a fixed height, or should expand to fit the height of the grid's content.

protected FormalParameter hideMetricsLabel Hides the 'Metrics' label on the grid's titles.
protected FormalParameter ignoreSubtotal It is used in the transform to specify whether to display subtotal cells.
protected FormalParameter imgActiveSortAsc This is the image name for showing the active sort icon for ascending values.
protected FormalParameter imgActiveSortDesc This is the image name for showing the active sort icon for descending values.
protected FormalParameter imgInActiveSortAsc This is the image name for showing the inactive sort icon for ascending values.
protected FormalParameter imgInActiveSortDesc This is the image name for showing the inactive sort icon for descending values.
protected FormalParameter isHTMLExport
protected ReportGridCellRowTitle lastRowTitle
protected FormalParameter maxSortAllowed This is the value used in the transform to specify how many nested sorts will be allowed in the report.
protected FormalParameter mergeColHeaderPara It is used in the transform to specify merge or repeat column headers.
protected FormalParameter overflowMode

If the widthMode or heightMode is set to be fixed, this parameter specifies what should happen with the <div>'s content if it overflows the space specified by the containerHeight or containerWidth parameters.

protected FormalParameter showBandingPara It is used in the transform to specify whether to show banding.
protected FormalParameter showDrillAdvanced It is used in the transform to specify whether to allow advanced drilling.
protected FormalParameter showDrillCheckBox It is used in the transform to specify whether to allow select filter - check box drilling.
protected FormalParameter showDrillDownOnly It is used in the transform to specify whether to allow drilling to the child only.
protected FormalParameter showDrillHyperlink It is used in the transform to specify whether to allow hyperlink drilling.
protected FormalParameter showDrillHyperlinkMetric It is used in the transform to specify whether to allow hyperlink drilling for metrics.
protected FormalParameter showDrillMetric It is used in the transform to specify whether to allow drilling on metrics.
protected FormalParameter showDrillRMC It is used in the transform to specify whether to show Right Mouse Click menu for drill.
protected FormalParameter showDrillRMCMetric It is used in the transform to specify whether to show Right Mouse Click menu for drill for metrics.
protected FormalParameter showFilterOnSelectionCheckBox It is used in the transform to specify whether to allow filter on selection.
protected FormalParameter showSortButtonsForAttributes This is the flag used in the transform to specify whether to show sort buttons for attributes (row titles).
protected FormalParameter showSortButtonsForMetrics This is the flag used in the transform to specify whether to show sort buttons for metrics (column headers).
protected FormalParameter showSortRMCForAttributes This is the flag used in the transform to specify whether to show sort right mouse click menu for attributes (row titles).
protected FormalParameter showSortRMCForMetrics This is the flag used in the transform to specify whether to show sort right mouse click menu for metrics (column headers).
protected FormalParameter showUniqueDrillPaths It is used in the transform to specify whether to show unique drill paths on context menus.
protected FormalParameter useImageOnEmptyCells It is used in the transform to specify the use of transparent image on empty metric cells.
protected FormalParameter widthMode

Determines whether the <div> tag enclosing the grid should have a fixed width, or should expand to fit the width of the grid's content.

protected FormalParameter wrapMetricValue This is the parameter which decides if we wrap the metric values cells when displaying the report.
protected FormalParameter wrapRowHeader This is the parameter which decides if we wrap the row header cells when displaying the report.
protected FormalParameter zoomFactor

Indicates the zoom factor to use for adjusting sizes.

[Expand]
Inherited Fields
From class com.microstrategy.web.app.transforms.AbstractReportGridTransform
From class com.microstrategy.web.app.transforms.AbstractReportDataTransform
From class com.microstrategy.web.app.transforms.AbstractReportTransform
From class com.microstrategy.web.app.transforms.AbstractAppTransform
Public Constructors
ReportGridTransformImpl()
Default no-args constructor.
Public Methods
boolean canAddThresholds()
Utility methood for determining if all the privileges are enabled for displaying the user the option to add thresholds to current element from the grid
boolean canDrill()
Utility methood for determining if all the privileges are enabled for displaying the user the option to drill on one element from the grid
boolean canFilterOn()
Utility methood for determining if all the privileges are enabled for displaying the user the option to filter on one element from the grid
boolean canFormat()
Utility methood for determining if all the privileges are enabled for displaying the user the option to format one element from the grid
boolean canInsertShortcutMetric()
Utility methood for determining if all the privileges are enabled for displaying the user the option to insert shortcut metrics on the grid
boolean canModifyAttributeForm()
Utility methood for determining if all the privileges are enabled for displaying the user the option to modify the attribute forms on one element from the grid
boolean canPivot()
Utility methood for determining if all the privileges are enabled for displaying the user the option to pivot one element from the grid
boolean canRemoveFromGrid()
Utility methood for determining if all the privileges are enabled for displaying the user the option to remove one element from the grid
boolean canRemoveFromReport()
Utility methood for determining if all the privileges are enabled for displaying the user the option to remove one element from the report
boolean canRename()
Utility methood for determining if all the privileges are enabled for displaying the user the option to rename one element from the grid
boolean canResize()
Utility methood for determining if allowing users to resize columns of a linked template in rwd
boolean canSort()
Utility methood for determining if all the privileges are enabled for displaying the user the option to sort on one element from the grid
WebEvent getAdvancedDrillEvent()
WebEvent getAdvancedDrillProcessEvent()
ContextMenuManager getContextMenuManager()
Returns the ContextMenuManager instance used by this Transform.
WebEvent getDerivedElementsEvent()
String getDescription()
Returns a textual description of this transform to be used in WYSIWYG tools.
WebEvent getDrillEditorProcessEvent()
WebEvent getDrillEvent()
WebEvent getDrillFilterOnSelectionEvent()
WebEvent getOpenAccordionEvent()
Returns the event to open the accordion.
WebEvent getOpenObjectBrowserEvent()
Returns the event to open the ObjectBrowser.
WebEvent getRenameEvent()
WebEvent getRwdDrillOutEvent()
WebEvent getSortEvent()
boolean hasCenter()
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, use a layout-xml to control the output.
void initializeProperties()
Extends initializeProperties by invoking initializeTranformContext
void initializeTranformContext()
This method is deprecated. please use instead the ReportGridTransformImpl.Context instance as context.
void initializeTransform(Transformable data)
Extends initializeTransform by initiliazing the grid cell classes by calling initializeCellClasses
boolean isDrillRMCAvailableForMetricValue()
Utility method to check if Drill RMC is available.
boolean isReportTruncated()
Returns the value of getReportBean().getReportData().isReportTruncated().
ReportGridCellColHeader newColHeader(WebTemplateMetric metric)
Creates and initialize a new ReportGridCellColHeader with the given parameters.
ReportGridCellColHeader newColHeader(WebHeader header)
Creates and initialize a new ReportGridCellColHeader with the given parameters.
ReportGridCellColHeader newColHeader()
Creates and initialize a new ReportGridCellColHeader with no underlying SDK object.
ReportGridCellColTitle newColTitle(WebTemplateUnit unit, int subtitleIndex)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColTitle newColTitle(WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColTitle newColTitle(WebTemplateUnit unit)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColTitle newColTitle(WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex, boolean showSubTitleOnly)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColTitle newColTitle(WebTitle title)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColTitle newColTitle(WebTitle title, WebSubTitle subTitle, int subTitleIndex, boolean showSubTitleOnly)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColTitle newColTitle()
Creates and initialize a new ReportGridCellColTitle with no underlying SDK object.
ReportGridCellColTitle newColTitle(WebTitle title, int subTitleIndex)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColTitle newColTitle(WebTitle title, WebSubTitle subTitle, int subTitleIndex)
Creates and initialize a new ReportGridCellColTitle with the given parameters.
ReportGridCellColHeader newEmptyColHeader()
Create and initialize a new ReportGridCellColHeader with a drop units here message with no underlying SDK object.
ReportGridCellMetricValue newEmptyMetricValue()
Creates and initialize a new ReportGridCellMetricValue with a "drop objects here" message with no underlying SDK object.
ReportGridCellRowHeader newEmptyRowHeader()
Create and initialize a new ReportGridCellRowHeader with a "drop units here" message with no underlying SDK object.
ReportGridCellRowHeader newEmptyRowHeader(int rowSpan)
Creates and returns an empty row header with the specified rowSpan.
ReportGridCellRowTitle newEmptyRowTitle()
Creates and initialize a new ReportGridCellRowTitle with no underlying SDK object.
ReportGridCellMetricValue newMetricValue(WebRowValue rowValue)
Creates and initialize a new ReportGridCellMetricValue with the given parameters.
ReportGridCellMetricValue newMetricValue()
Creates and initialize a new ReportGridCellMetricValue with no underlying SDK object.
ReportGridCellRowHeader newRowHeader(WebTemplateMetric metric)
Creates and initialize a new ReportGridCellRowHeader with the given parameters.
ReportGridCellRowHeader newRowHeader(WebHeader rowHeader)
Creates and initialize a new ReportGridCellRowHeader with the given parameters.
ReportGridCellRowHeader newRowHeader()
Creates and initialize a new ReportGridCellRowHeader with no underlying SDK object.
ReportGridCellRowTitle newRowTitle(WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTemplateUnit unit, int subtitleIndex, boolean showSubTitleOnly)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex, boolean showSubTitleOnly)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTitle title, WebSubTitle subTitle, int subTitleIndex)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTitle title, int subTitleIndex)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTemplateUnit unit)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTitle title)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTitle title, int subTitleIndex, boolean showSubTitleOnly)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle()
Creates and initialize a new ReportGridCellRowTitle with no underlying SDK object.
ReportGridCellRowTitle newRowTitle(WebTemplateUnit unit, int subtitleIndex)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
ReportGridCellRowTitle newRowTitle(WebTitle title, WebSubTitle subTitle, int subTitleIndex, boolean showSubTitleOnly)
Creates and initialize a new ReportGridCellRowTitle with the given parameters.
void renderBottom(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, users can control the output using a layout-xml.
void renderCenter(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, users can control the output using a layout-xml.
void renderColTags(MarkupOutput out)
Generates the HTML for <col> tags for the main table.
void renderColumnHeader(MarkupOutput out, ReportBean rb, WebHeader header)
Renders a single column header.
void renderColumnHeaders(MarkupOutput out, ReportBean rb, WebHeaders colHeaders)
Renders the column headers of the report.
void renderColumnTitle(MarkupOutput out, ReportBean rb, WebTitle title, int colSpan)
void renderColumnTitle(MarkupOutput out, ReportBean rb, WebTitle title)
Renders a single column title.
void renderColumnTitles(MarkupOutput out, ReportBean rb, WebGridTitles colTitles)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product.
void renderCssLink(MarkupOutput out)
Extends renderCssLink to generate the <style> tag necessary for this report's format.
void renderCubeReportMessage(MarkupOutput out)
Renders a message to the end user indicating that the results of the cube report has been published This method is called when the current report type is Cube.
void renderData(MarkupOutput out, ReportBean rb, boolean renderMetricValues)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridData method.
void renderData(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridData method.
void renderDatamartMessage(MarkupOutput out)
Renders a message to the end user indicating that the results of the report have been stored in a table.
void renderDropZones(MarkupOutput out)
void renderEmptyCase(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderEmptyGrid method.
void renderEmptyGrid(MarkupOutput out)
Generates the HTML when the grid contains no data.
void renderEmptyMessage(MarkupOutput out)
Generates the "no data" message for a grid.
void renderExtraRowHeader(MarkupOutput out, WebHeader extraHeader, int rowSpan)
Renders an extra row header.
void renderFirstSingleRow(MarkupOutput out, ReportBean rb, WebGridRows rows, boolean includeMetricValues)
Generates a single row of data with an empty metrics axis.
void renderGrid(MarkupOutput out)
Renders the grid.
void renderGridData(MarkupOutput out)
Generates the data content of the grid, this includes both Row headers and metric values.
void renderGridHeaders(MarkupOutput out)
Generates the top part of the report, that is, the row titles, column titles and column headers.
void renderIncRefresReportMessage(MarkupOutput out)
Renders a message to the end user indicating that the results of the cube report has been published This method is called when the current report type is Incremental Refresh.
void renderLayout(MarkupOutput out, ReportBean rb, boolean renderRowTitles, boolean renderColTitles, boolean renderColHeaders)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridHeaders method.
void renderLayout(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridHeaders method.
void renderMaxRowsLimitMessage(MarkupOutput out)
Renders a message indicating that report exceeded the number of cells allowed by the MicroStrategy Server.
void renderMetricValue(MarkupOutput out, ReportBean rb, WebRowValue rowValue)
Renders a single metric value.
void renderMetricValues(MarkupOutput out, ReportBean rb, WebRow row)
Renders the metric values of a single row.
void renderNonViewableMessage(MarkupOutput out)
Renders a message to the end user indicating that the results of the report have been stored in a table.
void renderRowHeader(MarkupOutput out, ReportBean rb, WebHeader rowHeader, boolean displayTotalLabel)
Renders a single row header.
void renderRowHeader(MarkupOutput out, ReportBean rb, WebHeader rowHeader)
This method is deprecated. This method is not used anymore by the Transform. Instead use renderRowHeader(MarkupOutput, ReportBean, WebHeader, boolean)
void renderRowHeaders(MarkupOutput out, ReportBean rb, WebRow row)
Renders the row headers of a single row.
void renderRowTitle(MarkupOutput out, ReportBean rb, WebTitle title)
Renders a single rowTitle.
void renderRowTitles(MarkupOutput out, ReportBean rb, WebGridTitles rowTitles)
Renders the row titles of the report.
void renderSingleRow(MarkupOutput out, ReportBean rb, WebRow row)
Generates a single row of data.
void renderSingleRow(MarkupOutput out, ReportBean rb, WebRow row, boolean includeMetricValues)
Generates a single row of data.
Protected Methods
void buildDNDForEmptyGrid(MarkupOutput out)
This method is deprecated. This method is not called anymore and it doesn't generate any HTML. It's kept just for backwards compatibility.
void checkAndRenderEmptyRowHeader(MarkupOutput out)
Renders the drag and drop zone as the empty row header at the left hand side of the grid
void checkAndRenderExtraColumn(MarkupOutput out)
String containerHeight()
Returns the value of the containerWidth formal parameter (in pixels).
String containerWidth()
Returns the value of the containerWidth formal parameter (in pixels).
Tag generateGridTable()
Creates the TableTag instance that is used for the table holding the report's data.
void generateJSForDrillCheckBoxesForIncFetch(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. It is expected that these functionality will be part of the grid's bone.
void generateJavaScriptForDrill(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. It is expected that these control variables will be part of the grid's bone.
void generateJavaScriptForResizeColumns(MarkupOutput out, ReportBean rb)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. It is expected that these control variables will be part of the grid's bone.
void generatePreHTMLForResizeColumns(MarkupOutput out)
This method is deprecated. This method is not called anymore and it doesn't generate any HTML. It's kept just for backwards compatibility.
void generateReportGridTable(MarkupOutput out, ReportBean rb, boolean specifyUniqueReportID)
This method is deprecated. This method has been deprecated and will be removed in future versions of the product. It's not used anymore. In its place you may call: generateGridTable().renderOpenTag(out);
Map getAttributesBoneDiv()
Generates the list of attributes used by a div surrounding the grid.
Map getAttributesEmptyGridTable()
Generates the list of attributes used by an empty grid's table.
Map getAttributesGridTable()
Generates the list of attributes used by the grid's table.
Map getAttributesRow(WebRow row)
Generates the list of attributes used by <tr> of a single row.
String getCSSInformation(WebCSSHelper cssHelper)
int getColTitleCount()
int getColTitleSpan()
Returns how many columns, the title cell spans over.
String getContextMenuManagerName()
Returns the name to use for the ContextMenuManager of this Transform.
String getCssGrid()
Returns the css class to be used by the grid table.
boolean getExtraColumn()
Tag getLockHeaderTag()
Generate the lock header tag information for the grid.
RWGridGraphDef getRWGridGraphDef()
int getSubtitlesCount(WebTemplateUnit unit)
int heightMode()
This method is deprecated. Please query directly the heightMode formal parameter instead
boolean isDesignMode()
This methods allows the transform to identify if concrete subclasses are designed to work in design mode, or in execute mode.
boolean isLockedHeaders()
boolean isSpecifyIdForTitleCell()
boolean isSpecifyWidthForCell()
boolean mergeColHeader()
This method is deprecated. Please query directly the mergeColHeaderPara formal parameter instead
ReportGridCellHeader newGridHeader(WebHeader header, String className)
ReportGridCellTitle newGridTitle(WebTitle title, String className)
void onColumnHeader(ReportGridCellColHeader cell, MarkupOutput out)
This method is called when a column header needs to be rendered.
void onColumnTitle(ReportGridCellColTitle cell, MarkupOutput out)
This method is called when a column title needs to be rendered.
void onMetricValue(ReportGridCellMetricValue cell, MarkupOutput out)
This method is called when a metric value needs to be rendered.
void onRowEnd(MarkupOutput out)
This method is called when row has finished.
void onRowEnd(WebRow row, MarkupOutput out)
This method is called when row has finished.
void onRowHeader(ReportGridCellRowHeader cell, MarkupOutput out)
This method is called when a row header needs to be rendered.
void onRowStart(MarkupOutput out)
This method is called when a new row needs to be rendered.
void onRowStart(WebRow row, MarkupOutput out)
This method is called when a new row needs to be rendered.
void onRowTitle(ReportGridCellRowTitle cell, MarkupOutput out)
This method is called when a row title needs to be rendered.
int overflowMode()
Returns the value of the overflowMode formal parameter.
void renderColTagsHtml(MarkupOutput out, int dpi, double zoom)
Renders the col tags for a grid column widths.
void renderContextMenus(MarkupOutput out)
Generates the HTML used for client-side context (right mouse click) menus.
void renderCustomGroups(MarkupOutput out, ReportGridCellRowTitle cell, int rowSpan)
Renders custom groups on the grid template.
void renderEmptyGridRows(MarkupOutput out)
void renderGridData(MarkupOutput out, boolean includeMetricValues)
Generates the data content of the grid, this includes both Row headers and metric values.
void renderGridHeaders(MarkupOutput out, boolean includeColumnHeaders)
Generates the top part of the report, that is, the row titles, column titles and column headers.
void renderGridTitles(MarkupOutput out)
Convenience method to generate only the grid titles, that is row and column titles.
void renderJavascript(MarkupOutput out)
This method renders the javascript code that needs to be generated on the server side because its content is dynamic.
void renderLockHeadersInfo(MarkupOutput out)
Generates divs that allows the headers to be "locked" in the browser window.
void renderRegisterBone(MarkupOutput out)
If a scriptClass is specified, this method registers the corresponding javascript bone for this component.
void renderRowHeaders(MarkupOutput out)
Convenience method to generate only the row headers (all row headers).
void renderRowTitlesAccessibility(MarkupOutput out, ReportBean rb, WebGridTitles rowTitles)
Renders an empty list of row titles.
void setBoneProperties(JsonGenerator boneProps)
Sets the necessary properties to the bone assigned to this transform (based on the scriptClass formal parameter)
Usually called by renderRegisterBone(MarkupOutput)
Can be overwritten to add or modify bone properties.
boolean showColHeaders()
Check whether the Template Formatting property ShowColumnHeaders is true or false.
boolean showEmptyAxis()
boolean showEmptyAxisCssLink()
boolean showEmptyColAxis()
boolean showEmptyMetricAxis()
boolean showEmptyRowAxis()
boolean showRowHeaders()
Check whether the Template Formatting property ShowRowHeaders is true or false.
void updateDynamicScriptFileInformation()
int widthMode()
This method is deprecated. Please query directly the widthMode formal parameter instead
[Expand]
Inherited Methods
From class com.microstrategy.web.app.transforms.AbstractReportGridTransform
From class com.microstrategy.web.app.transforms.AbstractReportDataTransform
From class com.microstrategy.web.app.transforms.AbstractReportTransform
From class com.microstrategy.web.app.transforms.AbstractWebBeanTransform
From class com.microstrategy.web.app.transforms.AbstractAppTransform
From class com.microstrategy.web.transform.AbstractLayoutTransform
From class com.microstrategy.web.transform.AbstractTransform
From class java.lang.Object
From interface com.microstrategy.web.app.transforms.AppTransform
From interface com.microstrategy.web.app.transforms.ReportDataTransform
From interface com.microstrategy.web.transform.LayoutTransform
From interface com.microstrategy.web.transform.Transform

Constants

public static final String FP_IS_HTML_EXPORT

Constant Value: "isHTMLExport"

Fields

protected SharedCellProperties _sharedCellProperties

protected FormalParameter containerHeight

Specifies the height (in any measure accepted by the web-browser) of the <div> tag enclosing the grid's table. Only used when the heightMode is set to be fixed.

protected FormalParameter containerWidth

Specifies the width (in any measure accepted by the web-browser) of the <div> tag enclosing the grid's table. Only used when the widthMode is set to be fixed.

protected FormalParameter cssParentFontSize

This is the report's base font size.
Used when generating the report's CSS classes with the WebCSSHelper.
Allowed Values: positive integer values.

protected FormalParameter cssPathParameter

Determines the CSS class path to for all CSS classes in a grid report.
This class will be appended as a prefix to all the CSS classes generated by the WebCSSHelper with a '.' at the beginning

protected FormalParameter cssUseRelativeFont

Determines whether to use relative font for the CSS.
Used when generating the report's CSS classes with the WebCSSHelper.
It should be of BOOLEAN type.

protected FormalParameter dpiConversion

Indicates the dpi conversion factor to convert between inches and pixels (inches=pixels/dpiConversion).

protected FormalParameter drillLinkExtraURL

This is the code which we will append with the drill hyperlink tag for DHTML.
Allowed Values: String values.

protected FormalParameter drillRetainParent

This is the FP which tells whether to retain the parent while drilling.
If a value is specified here, then the drill Preference on the preference page for the same is ignored.
Allowed Values:
PreferencesDrillTransform.DRILL_OPTION_DRILL_ANYWHERE = "1";
PreferencesDrillTransform.DRILL_OPTION_DRILL_HYPERLINKS = "2";
PreferencesDrillTransform.DRILL_OPTION_SIMPLE_DRILL = "3";
PreferencesDrillTransform.DRILL_OPTION_NO_DRILL = "4";
PreferencesDrillTransform.DRILL_OPTION_REPORT_DEFINITION = "5";

protected FormalParameter headerMetricValueOptimized

This is the parameter which decides if we move the common html attributes of non-metric headers and metric value cells to a map and is thus stored once. Allowed Values: TRUE/FALSE.

protected FormalParameter heightMode

Determines whether the <div> tag enclosing the grid should have a fixed height, or should expand to fit the height of the grid's content.

Allowed values:
  • 0-Fixed
  • 2-Fit to contents
When the height is set to be fixed, then the containerHeight property must also be specified.

protected FormalParameter hideMetricsLabel

Hides the 'Metrics' label on the grid's titles.
Allowed Values: TRUE/FALSE.

protected FormalParameter ignoreSubtotal

It is used in the transform to specify whether to display subtotal cells.
Allowed Values: TRUE/FALSE.

protected FormalParameter imgActiveSortAsc

This is the image name for showing the active sort icon for ascending values.
Allowed Values: The value to indicate should be a valid image file name, with any necessary path information not included already on the resourcesFolderImage application configuration parameter.

protected FormalParameter imgActiveSortDesc

This is the image name for showing the active sort icon for descending values.
Allowed Values: The value to indicate should be a valid image file name, with any necessary path information not included already on the resourcesFolderImage application configuration parameter.

protected FormalParameter imgInActiveSortAsc

This is the image name for showing the inactive sort icon for ascending values.
Allowed Values: The value to indicate should be a valid image file name, with any necessary path information not included already on the resourcesFolderImage application configuration parameter.

protected FormalParameter imgInActiveSortDesc

This is the image name for showing the inactive sort icon for descending values.
Allowed Values: The value to indicate should be a valid image file name, with any necessary path information not included already on the resourcesFolderImage application configuration parameter.

protected FormalParameter isHTMLExport

protected ReportGridCellRowTitle lastRowTitle

protected FormalParameter maxSortAllowed

This is the value used in the transform to specify how many nested sorts will be allowed in the report.
Allowed Values: positive integer values.

protected FormalParameter mergeColHeaderPara

It is used in the transform to specify merge or repeat column headers.
Allowed Values: TRUE/FALSE.

protected FormalParameter overflowMode

If the widthMode or heightMode is set to be fixed, this parameter specifies what should happen with the <div>'s content if it overflows the space specified by the containerHeight or containerWidth parameters.

Allowed values:
  • 0-Clipped: The content is clipped, and it's not visible
  • 1-Scroll: The content is clipped but scrollbars are enabled.

protected FormalParameter showBandingPara

It is used in the transform to specify whether to show banding. It only applies to reports that don't use built-in formattings (i.e. reports from old projects).
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillAdvanced

It is used in the transform to specify whether to allow advanced drilling.
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillCheckBox

It is used in the transform to specify whether to allow select filter - check box drilling.
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillDownOnly

It is used in the transform to specify whether to allow drilling to the child only.
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillHyperlink

It is used in the transform to specify whether to allow hyperlink drilling.
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillHyperlinkMetric

It is used in the transform to specify whether to allow hyperlink drilling for metrics.
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillMetric

It is used in the transform to specify whether to allow drilling on metrics.
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillRMC

It is used in the transform to specify whether to show Right Mouse Click menu for drill.
Allowed Values: TRUE/FALSE.

protected FormalParameter showDrillRMCMetric

It is used in the transform to specify whether to show Right Mouse Click menu for drill for metrics.
Allowed Values: TRUE/FALSE.

protected FormalParameter showFilterOnSelectionCheckBox

It is used in the transform to specify whether to allow filter on selection.
Allowed Values: TRUE/FALSE.

protected FormalParameter showSortButtonsForAttributes

This is the flag used in the transform to specify whether to show sort buttons for attributes (row titles).
Allowed Values: TRUE/FALSE.

protected FormalParameter showSortButtonsForMetrics

This is the flag used in the transform to specify whether to show sort buttons for metrics (column headers).
Allowed Values: TRUE/FALSE.

protected FormalParameter showSortRMCForAttributes

This is the flag used in the transform to specify whether to show sort right mouse click menu for attributes (row titles).
Allowed Values: TRUE/FALSE.

protected FormalParameter showSortRMCForMetrics

This is the flag used in the transform to specify whether to show sort right mouse click menu for metrics (column headers).
Allowed Values: TRUE/FALSE.

protected FormalParameter showUniqueDrillPaths

It is used in the transform to specify whether to show unique drill paths on context menus.
Allowed Values: TRUE/FALSE.

protected FormalParameter useImageOnEmptyCells

It is used in the transform to specify the use of transparent image on empty metric cells.
Allowed Values: TRUE/FALSE.
It is recommended for this formal paramter to be set to false, as using images for empty cells might degrade performance.

protected FormalParameter widthMode

Determines whether the <div> tag enclosing the grid should have a fixed width, or should expand to fit the width of the grid's content.

Allowed values:
  • 0-Fixed
  • 2-Fit to contents
When the width is set to be fixed, then the containerWidth property must also be specified.

protected FormalParameter wrapMetricValue

This is the parameter which decides if we wrap the metric values cells when displaying the report. It was added to support older browsers that ignore WordWrap in css (which is how the Word Wrap property in the grid formatting dialog works). In newer browsers, the user has complete control. It's usually mapped to the "wrapRowHeader" preference (set at the project level by the administrator) and set through the style catalog. It affects the transform's output as follow:

  1. If true, users with Internet Explorer 5.5 and greater-word wrapping is controlled by the "Wrap text" setting on the Format panel (on the Alignment tab); users with Internet Explorer 5.0 and less and Netscape Navigator 4.7-word wrapping is allowed in all attribute element cells.
  2. When false, users with IE 5.5 and greater-word wrapping for the attribute element cells that are in the rows (on the left of the grid) is not allowed. Word wrapping in all other cells is still controlled by the "Wrap text" setting on the Format panel (on the Alignment tab); users with Internet Explorer 5.0 and below-word wrapping for the attribute element cells that are in the rows (on the left of the grid) is not allowed. Word wrapping is allowed in all other cells.
Allowed Values: TRUE/FALSE.

protected FormalParameter wrapRowHeader

This is the parameter which decides if we wrap the row header cells when displaying the report. It was added to support older browsers that ignore WordWrap in css (which is how the Word Wrap property in the grid formatting dialog works). In newer browsers, the user has complete control. It's usually mapped to the "wrapRowHeader" preference (set at the project level by the administrator) and set through the style catalog. It affects the transform's output as follow:

  1. If true, users with Internet Explorer 5.5 and greater-word wrapping is controlled by the "Wrap text" setting on the Format panel (on the Alignment tab); users with Internet Explorer 5.0 and less and Netscape Navigator 4.7-word wrapping is allowed in all attribute element cells.
  2. When false, users with IE 5.5 and greater-word wrapping for the attribute element cells that are in the rows (on the left of the grid) is not allowed. Word wrapping in all other cells is still controlled by the "Wrap text" setting on the Format panel (on the Alignment tab); users with Internet Explorer 5.0 and below-word wrapping for the attribute element cells that are in the rows (on the left of the grid) is not allowed. Word wrapping is allowed in all other cells.
Allowed Values: TRUE/FALSE.

protected FormalParameter zoomFactor

Indicates the zoom factor to use for adjusting sizes. Fonts, column widths and other size related features will adjust their values by this percentage.

Default value: 100.

Public Constructors

public ReportGridTransformImpl ()

Default no-args constructor.
Creates and initializes formal parameters.

Public Methods

public boolean canAddThresholds ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to add thresholds to current element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canDrill ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to drill on one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canFilterOn ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to filter on one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canFormat ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to format one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canInsertShortcutMetric ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to insert shortcut metrics on the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canModifyAttributeForm ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to modify the attribute forms on one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canPivot ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to pivot one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canRemoveFromGrid ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to remove one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canRemoveFromReport ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to remove one element from the report

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canRename ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to rename one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canResize ()

Utility methood for determining if allowing users to resize columns of a linked template in rwd

Returns
  • boolean value indicating if the manipulation should be enabled

public boolean canSort ()

Utility methood for determining if all the privileges are enabled for displaying the user the option to sort on one element from the grid

Returns
  • boolean value indicating if the manipulation should be enabled

public WebEvent getAdvancedDrillEvent ()

public WebEvent getAdvancedDrillProcessEvent ()

public ContextMenuManager getContextMenuManager ()

Returns the ContextMenuManager instance used by this Transform. This method will return a non-null instance, even if context menus are not enabled for this transform (i.e. if isContextMenusEnabled() returns false).

public WebEvent getDerivedElementsEvent ()

public String getDescription ()

Returns a textual description of this transform to be used in WYSIWYG tools.

Returns
  • "The ReportGridTransformImpl generates the grid visualization of the data returned by a Report.";

public WebEvent getDrillEditorProcessEvent ()

public WebEvent getDrillEvent ()

public WebEvent getDrillFilterOnSelectionEvent ()

public WebEvent getOpenAccordionEvent ()

Returns the event to open the accordion. This is used in the case that the grid is empty so the users can open the browser and add objects.

Returns
  • WebEvent to open the obect browser in the report page.

public WebEvent getOpenObjectBrowserEvent ()

Returns the event to open the ObjectBrowser. This is used in the case that the grid is empty so the users can open the browser and add objects.

Returns
  • WebEvent to open the obect browser in the report page.

public WebEvent getRenameEvent ()

public WebEvent getRwdDrillOutEvent ()

public WebEvent getSortEvent ()

public boolean hasCenter ()

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, use a layout-xml to control the output.

Whether the transform has the center area. Out of box, it returns true.

Returns
  • Whether the transform has the center area

public void initializeProperties ()

Extends initializeProperties by invoking initializeTranformContext

public void initializeTranformContext ()

This method is deprecated.
please use instead the ReportGridTransformImpl.Context instance as context.

Initialize the transform context object. This object is later passed to the ReportGridDisplayCell instances so they have information about the transform.

public void initializeTransform (Transformable data)

Extends initializeTransform by initiliazing the grid cell classes by calling initializeCellClasses

Parameters
data the bean to transform.

public boolean isDrillRMCAvailableForMetricValue ()

Utility method to check if Drill RMC is available.

public boolean isReportTruncated ()

Returns the value of getReportBean().getReportData().isReportTruncated(). This indicates that this report has exceeded the maximum amount of rows allowed by the administrator, therefore the data has been truncated.

Returns
  • true if the report data has been truncated.

public ReportGridCellColHeader newColHeader (WebTemplateMetric metric)

Creates and initialize a new ReportGridCellColHeader with the given parameters.

public ReportGridCellColHeader newColHeader (WebHeader header)

Creates and initialize a new ReportGridCellColHeader with the given parameters.

public ReportGridCellColHeader newColHeader ()

Creates and initialize a new ReportGridCellColHeader with no underlying SDK object.

public ReportGridCellColTitle newColTitle (WebTemplateUnit unit, int subtitleIndex)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColTitle newColTitle (WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColTitle newColTitle (WebTemplateUnit unit)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColTitle newColTitle (WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex, boolean showSubTitleOnly)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColTitle newColTitle (WebTitle title)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColTitle newColTitle (WebTitle title, WebSubTitle subTitle, int subTitleIndex, boolean showSubTitleOnly)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColTitle newColTitle ()

Creates and initialize a new ReportGridCellColTitle with no underlying SDK object.

public ReportGridCellColTitle newColTitle (WebTitle title, int subTitleIndex)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColTitle newColTitle (WebTitle title, WebSubTitle subTitle, int subTitleIndex)

Creates and initialize a new ReportGridCellColTitle with the given parameters.

public ReportGridCellColHeader newEmptyColHeader ()

Create and initialize a new ReportGridCellColHeader with a drop units here message with no underlying SDK object.

public ReportGridCellMetricValue newEmptyMetricValue ()

Creates and initialize a new ReportGridCellMetricValue with a "drop objects here" message with no underlying SDK object.

public ReportGridCellRowHeader newEmptyRowHeader ()

Create and initialize a new ReportGridCellRowHeader with a "drop units here" message with no underlying SDK object.

public ReportGridCellRowHeader newEmptyRowHeader (int rowSpan)

Creates and returns an empty row header with the specified rowSpan.

Parameters
rowSpan The number of rows you expect the new header to span over.

public ReportGridCellRowTitle newEmptyRowTitle ()

Creates and initialize a new ReportGridCellRowTitle with no underlying SDK object.

public ReportGridCellMetricValue newMetricValue (WebRowValue rowValue)

Creates and initialize a new ReportGridCellMetricValue with the given parameters.

public ReportGridCellMetricValue newMetricValue ()

Creates and initialize a new ReportGridCellMetricValue with no underlying SDK object.

public ReportGridCellRowHeader newRowHeader (WebTemplateMetric metric)

Creates and initialize a new ReportGridCellRowHeader with the given parameters.

public ReportGridCellRowHeader newRowHeader (WebHeader rowHeader)

Creates and initialize a new ReportGridCellRowHeader with the given parameters.

public ReportGridCellRowHeader newRowHeader ()

Creates and initialize a new ReportGridCellRowHeader with no underlying SDK object.

public ReportGridCellRowTitle newRowTitle (WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTemplateUnit unit, int subtitleIndex, boolean showSubTitleOnly)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTemplateUnit unit, WebAttributeForm form, int subtitleIndex, boolean showSubTitleOnly)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTitle title, WebSubTitle subTitle, int subTitleIndex)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTitle title, int subTitleIndex)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTemplateUnit unit)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTitle title)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTitle title, int subTitleIndex, boolean showSubTitleOnly)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle ()

Creates and initialize a new ReportGridCellRowTitle with no underlying SDK object.

public ReportGridCellRowTitle newRowTitle (WebTemplateUnit unit, int subtitleIndex)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public ReportGridCellRowTitle newRowTitle (WebTitle title, WebSubTitle subTitle, int subTitleIndex, boolean showSubTitleOnly)

Creates and initialize a new ReportGridCellRowTitle with the given parameters.

public void renderBottom (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, users can control the output using a layout-xml.

Render bottom area of the transform.
Out of box, we are displaying a message if the report is truncated because the number of report cells is exceeding limit.
Then we display the incremental fetch for row, if the formal parameter "showIncreFetchForRowOnBottom" is true.
Sample source code for this method is provided below.

   if (isReportTruncated()) {
       renderMaxRowsLimitMessage(out);
   }

   if (isTrue(showIncreFetchForRowOnBottom)) {
       renderIncreFetchOnRow(out, getReportBean());
   }

 

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

public void renderCenter (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, users can control the output using a layout-xml.

Renders the center area of the Transform, that is, the grid.
This method first checks if the grid is emtpy, and calls renderEmptyGrid, otherwise it checks if its a datamart, and calls renderDatamartMessage. By default it just calls renderGrid. Sample source code for this method is provided below.

   if (isGridEmpty()) {
       renderEmptyGrid(out);

   } else if (isDatamart()) {
       renderDatamartMessage(out);

   } else {
       renderGrid(out);
   }
 

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

public void renderColTags (MarkupOutput out)

Generates the HTML for <col> tags for the main table.
This tags control the width of the column in the grid.

Parameters
out MarkupOutput to generate the HTML.

public void renderColumnHeader (MarkupOutput out, ReportBean rb, WebHeader header)

Renders a single column header.
Basically, it creates a new ReportGridCellColHeader using the newColHeader method, and calls onColumnHeader.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
header the corresponding WebHeader

public void renderColumnHeaders (MarkupOutput out, ReportBean rb, WebHeaders colHeaders)

Renders the column headers of the report.
Basically, it iterates through the colHeaders collection and calls renderColumnHeader, for example:

   for (int i = 0; i < colHeaders.size(); i++) {
       renderColumnHeader(out, rb, colHeaders.get(i));
   }
 

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
colHeaders the corresponding WebHeaders

public void renderColumnTitle (MarkupOutput out, ReportBean rb, WebTitle title, int colSpan)

public void renderColumnTitle (MarkupOutput out, ReportBean rb, WebTitle title)

Renders a single column title.
It creates the ReportGridCellColTitle using the newColTitle method, and calls onColumnTitle

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
title the corresponding WebTitle

public void renderColumnTitles (MarkupOutput out, ReportBean rb, WebGridTitles colTitles)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product.

This method has never been used, nor implemented. It's kept only for backwards compatibility.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
colTitles collection of grid titles being rendered.

public void renderCssLink (MarkupOutput out)

Extends renderCssLink to generate the <style> tag necessary for this report's format.
This can be controlled with the useBuiltInFormat FormalParameter: if it is false, even if the report has built-in format information from the iServer, this will not be generated and will just call super.renderCssLink

Parameters
out MarkupOutput to generate the HTML.

public void renderCubeReportMessage (MarkupOutput out)

Renders a message to the end user indicating that the results of the cube report has been published This method is called when the current report type is Cube.

Parameters
out MarkupOutput to generate the HTML.

public void renderData (MarkupOutput out, ReportBean rb, boolean renderMetricValues)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridData method.

Generates the data content of the grid, this includes both Row headers and metric values.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
renderMetricValues whether to include metric values or not

public void renderData (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridData method.

Generates the data content of the grid, this includes both Row headers and metric values.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

public void renderDatamartMessage (MarkupOutput out)

Renders a message to the end user indicating that the results of the report have been stored in a table. This method is called when the current report type is Datamart.

Parameters
out MarkupOutput to generate the HTML.

public void renderDropZones (MarkupOutput out)

public void renderEmptyCase (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderEmptyGrid method.

Generates the HTML when the grid contains no data.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

public void renderEmptyGrid (MarkupOutput out)

Generates the HTML when the grid contains no data.
It simply creates an empty table and call the renderEmptyMessage method.
In case this Transform is used in the context of Documents (ReportWriting), nothing is generated.

Parameters
out MarkupOutput to generate the HTML.

public void renderEmptyMessage (MarkupOutput out)

Generates the "no data" message for a grid.
It checks whether the grid is empty because the template contains no objects, or just because the current selection in the page-by generates no data, and renders the appropriate message.

Parameters
out MarkupOutput to generate the HTML.

public void renderExtraRowHeader (MarkupOutput out, WebHeader extraHeader, int rowSpan)

Renders an extra row header.
It creates the ReportGridCellRowHeader using the extraHeader method, and calls onRowHeader.
This method is mainly used for #809124, if row span is larger than 8190 we need to divide the original td cell and render extra td cells. This method uses the cached row header to render a new cell with expected row span.

Parameters
out MarkupOutput to generate the HTML.
extraHeader the cached rowHeader.
rowSpan the expected row span for this extra cell.

public void renderFirstSingleRow (MarkupOutput out, ReportBean rb, WebGridRows rows, boolean includeMetricValues)

Generates a single row of data with an empty metrics axis. It calls:

  1. onRowStart (to inform a new row is being rendered).
  2. renderRowHeaders (if showRowHeaders return true).
  3. onMetricValue(newEmptyMetricValue()) (if the includeMetricValues argument is true).
  4. onRowEnd (to inform a new row is being rendered).
The purpose of not including metric values is for situations when we would like to generate only the row axis and no data.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
rows entire WebGridRows collection
includeMetricValues true if metric values show be included. False otherwise.

public void renderGrid (MarkupOutput out)

Renders the grid.
It calls renderGridHeaders and renderGridData. It also calls renderLockHeadersInfo to generates divs necessary with this feature.
Sample source code for this method is provided below.

   Tag tableTag = generateGridTable();

   renderColTags(tableTag.getContent());
   renderGridHeaders(tableTag.getContent());
   renderGridData(tableTag.getContent());

  tableTag.render(out);

   renderLockHeadersInfo(out);
 

Parameters
out MarkupOutput to generate the HTML.

public void renderGridData (MarkupOutput out)

Generates the data content of the grid, this includes both Row headers and metric values.

Parameters
out MarkupOutput to generate the HTML.

public void renderGridHeaders (MarkupOutput out)

Generates the top part of the report, that is, the row titles, column titles and column headers.

Parameters
out MarkupOutput to generate the HTML.

public void renderIncRefresReportMessage (MarkupOutput out)

Renders a message to the end user indicating that the results of the cube report has been published This method is called when the current report type is Incremental Refresh.

Parameters
out MarkupOutput to generate the HTML.

public void renderLayout (MarkupOutput out, ReportBean rb, boolean renderRowTitles, boolean renderColTitles, boolean renderColHeaders)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridHeaders method.

Generates the top part of the report, that is, the row titles, column titles and column headers.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
renderRowTitles ignored, this argument is not used anymore.
renderColTitles ignored, this argument is not used anymore.
renderColHeaders to decide whether to include column headers in the output.

public void renderLayout (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. In its place, use/extend the renderGridHeaders method.

Generates the top part of the report, that is, the row titles, column titles and column headers.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

public void renderMaxRowsLimitMessage (MarkupOutput out)

Renders a message indicating that report exceeded the number of cells allowed by the MicroStrategy Server.

Parameters
out MarkupOutput to generate the HTML.

public void renderMetricValue (MarkupOutput out, ReportBean rb, WebRowValue rowValue)

Renders a single metric value.
If this cell is for a total, it will check the ignoreSubtotal Formal Parameter and if true, it will just ignore this cell, otherwise it creates a new ReportGridCellMetricValue using the newMetricValue method, and calls onMetricValue.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
rowValue the corresponding WebRowValue

public void renderMetricValues (MarkupOutput out, ReportBean rb, WebRow row)

Renders the metric values of a single row.
Basically, it iterates through the rowHeaders collection and calls renderMetricValue, for example:

   for (int j = 0; j < row.size(); j++) {
       renderMetricValue(out, rb, row.get(j));
   }
 

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
row the corresponding WebRow

public void renderNonViewableMessage (MarkupOutput out)

Renders a message to the end user indicating that the results of the report have been stored in a table. This method is called when the current report type is Datamart, Cube, Incremental Refresh.

Parameters
out MarkupOutput to generate the HTML.

public void renderRowHeader (MarkupOutput out, ReportBean rb, WebHeader rowHeader, boolean displayTotalLabel)

Renders a single row header.
It creates the ReportGridCellRowHeader using the newRowHeader method, and calls onRowHeader.
If this is a row header of a total, then it will first check the ignoreSubtotal Formal Parameter and if true, won't render the cell; if false, it will then check the displayTotalLabel argument, and when false, will set the cell's text to be a blank space.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
rowHeader the corresponding rowHeader
displayTotalLabel false if totals rowHeaders

public void renderRowHeader (MarkupOutput out, ReportBean rb, WebHeader rowHeader)

This method is deprecated.
This method is not used anymore by the Transform. Instead use renderRowHeader(MarkupOutput, ReportBean, WebHeader, boolean)

Renders a single row header.
It creates the ReportGridCellRowHeader using the newRowHeader method, and calls onRowHeader

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
rowHeader the corresponding rowHeader

public void renderRowHeaders (MarkupOutput out, ReportBean rb, WebRow row)

Renders the row headers of a single row.
Basically, it iterates through the rowHeaders collection and calls renderRowHeader, for example:

   WebHeaders rowHeaders = row.getHeaderElements();

  for (int j = 0; j < rowHeaders.size(); j++) {
       renderRowHeader(out, rb, rowHeaders.get(j), firstTotal);
   }
 

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
row the corresponding WebRow

public void renderRowTitle (MarkupOutput out, ReportBean rb, WebTitle title)

Renders a single rowTitle.
Basically, it creates a new ReportGridCellRowTitle using the newRowTitle method, and calls onRowTitle.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
title the corresponding WebTitle

public void renderRowTitles (MarkupOutput out, ReportBean rb, WebGridTitles rowTitles)

Renders the row titles of the report.
Basically, it iterates through the rowTitles collection and calls renderRowTitle, for example:

   for (int i = 0; i < rowTitles.size(); i++) {
       renderRowTitle(out, rb, rowTitles.get(i));
   }
 

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
rowTitles the corresponding WebGridTitles

public void renderSingleRow (MarkupOutput out, ReportBean rb, WebRow row)

Generates a single row of data. It calls:

  1. onRowStart (to inform a new row is being rendered).
  2. renderRowHeaders (if showRowHeaders return true).
  3. renderMetricValues.
  4. onRowEnd (to inform a new row is being rendered).

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
row the corresponding WebRow

public void renderSingleRow (MarkupOutput out, ReportBean rb, WebRow row, boolean includeMetricValues)

Generates a single row of data. It calls:

  1. onRowStart (to inform a new row is being rendered).
  2. renderRowHeaders (if showRowHeaders return true).
  3. renderMetricValues (if the includeMetricValues argument is true).
  4. onRowEnd (to inform a new row is being rendered).
The purpose of not including metric values is for situations when we would like to generate only the row axis and no data.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
row the corresponding WebRow
includeMetricValues true if metric values show be included. False otherwise.

Protected Methods

protected void buildDNDForEmptyGrid (MarkupOutput out)

This method is deprecated.
This method is not called anymore and it doesn't generate any HTML. It's kept just for backwards compatibility.

Parameters
out MarkupOutput to generate the HTML.

protected void checkAndRenderEmptyRowHeader (MarkupOutput out)

Renders the drag and drop zone as the empty row header at the left hand side of the grid

protected void checkAndRenderExtraColumn (MarkupOutput out)

protected String containerHeight ()

Returns the value of the containerWidth formal parameter (in pixels).

protected String containerWidth ()

Returns the value of the containerWidth formal parameter (in pixels).

protected Tag generateGridTable ()

Creates the TableTag instance that is used for the table holding the report's data.

Returns
  • The TableTag for the grid.

protected void generateJSForDrillCheckBoxesForIncFetch (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. It is expected that these functionality will be part of the grid's bone.

Generates the javascript used to initialize the drilling when using incremental fetch.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

protected void generateJavaScriptForDrill (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. It is expected that these control variables will be part of the grid's bone.

Generates the javascript control variables used to generate dynamic drill URLs.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

protected void generateJavaScriptForResizeColumns (MarkupOutput out, ReportBean rb)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. It is expected that these control variables will be part of the grid's bone.

Generates the javascript control variables used with the resize columns feature.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).

protected void generatePreHTMLForResizeColumns (MarkupOutput out)

This method is deprecated.
This method is not called anymore and it doesn't generate any HTML. It's kept just for backwards compatibility.

Parameters
out MarkupOutput to generate the HTML.

protected void generateReportGridTable (MarkupOutput out, ReportBean rb, boolean specifyUniqueReportID)

This method is deprecated.
This method has been deprecated and will be removed in future versions of the product. It's not used anymore. In its place you may call: generateGridTable().renderOpenTag(out);

Generates the open tag of the report's grid table.

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method). *
specifyUniqueReportID (ignored).

protected Map getAttributesBoneDiv ()

Generates the list of attributes used by a div surrounding the grid. This div includes the information used by grid's bone, such as scriptclass and subtype (sty).

Returns
  • Map with the Attributes to use

protected Map getAttributesEmptyGridTable ()

Generates the list of attributes used by an empty grid's table. This method may be extended to include extra/custom attributes.

Returns
  • Map with the Attributes to use

protected Map getAttributesGridTable ()

Generates the list of attributes used by the grid's table. This method may be extended to include extra/custom attributes.

Returns
  • Map with the Attributes to use

protected Map getAttributesRow (WebRow row)

Generates the list of attributes used by <tr> of a single row.

Parameters
row the corresponding WebRow
Returns
  • Map with the Attributes to use

protected String getCSSInformation (WebCSSHelper cssHelper)

protected int getColTitleCount ()

protected int getColTitleSpan ()

Returns how many columns, the title cell spans over.

Returns
  • {@link Integer)
Throws
WebObjectsException
WebBeanException
WebObjectsException

protected String getContextMenuManagerName ()

Returns the name to use for the ContextMenuManager of this Transform. By default, it uses _bean.getName() + "_GM" unless otherwise specified by the formal parameter

protected String getCssGrid ()

Returns the css class to be used by the grid table.

protected boolean getExtraColumn ()

protected Tag getLockHeaderTag ()

Generate the lock header tag information for the grid.

Returns
  • Tag instance with the lock header information. If not supported given the scenario, it might return null.

protected RWGridGraphDef getRWGridGraphDef ()

protected int getSubtitlesCount (WebTemplateUnit unit)

protected int heightMode ()

This method is deprecated.
Please query directly the heightMode formal parameter instead

Returns the value of the heightMode formal parameter.

protected boolean isDesignMode ()

This methods allows the transform to identify if concrete subclasses are designed to work in design mode, or in execute mode.

Returns
  • false by default. Any inherting class should override to implement its own version.

protected boolean isLockedHeaders ()

protected boolean isSpecifyIdForTitleCell ()

protected boolean isSpecifyWidthForCell ()

protected boolean mergeColHeader ()

This method is deprecated.
Please query directly the mergeColHeaderPara formal parameter instead

Returns the value of the mergeColHeader formal parameter.

protected ReportGridCellHeader newGridHeader (WebHeader header, String className)

protected ReportGridCellTitle newGridTitle (WebTitle title, String className)

protected void onColumnHeader (ReportGridCellColHeader cell, MarkupOutput out)

This method is called when a column header needs to be rendered. By default it just calls cell.generateOutput(out) (that is, it just delegates it to the cell itself).

Parameters
cell the corresponding cell
out MarkupOutput to generate the HTML.

protected void onColumnTitle (ReportGridCellColTitle cell, MarkupOutput out)

This method is called when a column title needs to be rendered. By default it just calls cell.generateOutput(out) (that is, it just delegates it to the cell itself).

Parameters
cell the corresponding cell
out MarkupOutput to generate the HTML.

protected void onMetricValue (ReportGridCellMetricValue cell, MarkupOutput out)

This method is called when a metric value needs to be rendered. By default it just calls cell.generateOutput(out) (that is, it just delegates it to the cell itself).

Parameters
cell the corresponding cell
out MarkupOutput to generate the HTML.

protected void onRowEnd (MarkupOutput out)

This method is called when row has finished. It is responsible to close the <tr> tag

Parameters
out MarkupOutput to generate the HTML.

protected void onRowEnd (WebRow row, MarkupOutput out)

This method is called when row has finished. It is responsible to close the <tr> tag

Parameters
row the corresponding WebRow
out MarkupOutput to generate the HTML.

protected void onRowHeader (ReportGridCellRowHeader cell, MarkupOutput out)

This method is called when a row header needs to be rendered. By default it just calls cell.generateOutput(out) (that is, it just delegates it to the cell itself).

Parameters
cell the corresponding cell
out MarkupOutput to generate the HTML.

protected void onRowStart (MarkupOutput out)

This method is called when a new row needs to be rendered. It is responsible to open the <tr> tag

Parameters
out MarkupOutput to generate the HTML.

protected void onRowStart (WebRow row, MarkupOutput out)

This method is called when a new row needs to be rendered. It is responsible to open the <tr> tag

Parameters
row the corresponding WebRow
out MarkupOutput to generate the HTML.

protected void onRowTitle (ReportGridCellRowTitle cell, MarkupOutput out)

This method is called when a row title needs to be rendered. By default it just calls cell.generateOutput(out) (that is, it just delegates it to the cell itself).

Parameters
cell the corresponding cell
out MarkupOutput to generate the HTML.

protected int overflowMode ()

Returns the value of the overflowMode formal parameter.

protected void renderColTagsHtml (MarkupOutput out, int dpi, double zoom)

Renders the col tags for a grid column widths.

Parameters
out MarkupOutput instance where the HTML contents to render are to be saved
dpi int containing the dpi of the client
zoom value for zoom property to use

protected void renderContextMenus (MarkupOutput out)

Generates the HTML used for client-side context (right mouse click) menus. These are registered into the ContextMenuManager by the Transform and the cells.

Parameters
out MarkupOutput to generate the HTML.

protected void renderCustomGroups (MarkupOutput out, ReportGridCellRowTitle cell, int rowSpan)

Renders custom groups on the grid template.

Parameters
out MarkupOutput
cell ReportGridCellRowTitle
rowSpan The number of rows you would want this particular row to span over.
Throws
WebObjectsException
WebBeanException
WebObjectsException

protected void renderEmptyGridRows (MarkupOutput out)

protected void renderGridData (MarkupOutput out, boolean includeMetricValues)

Generates the data content of the grid, this includes both Row headers and metric values.
The includeMetricValues argument controls whether the metric values will be included in the output. The purpose of not including metric values is for situations when we would like to generate only the row axis and no data (internally used for lock headers).

Parameters
out MarkupOutput to generate the HTML.
includeMetricValues whether to include metric values or not

protected void renderGridHeaders (MarkupOutput out, boolean includeColumnHeaders)

Generates the top part of the report, that is, the row titles, column titles and column headers.
The includeColumnHeaders argument allows to dynamically decide if the column headers should be rendered or not.

Parameters
out MarkupOutput to generate the HTML.
includeColumnHeaders to decide whether to include column headers in the output.

protected void renderGridTitles (MarkupOutput out)

Convenience method to generate only the grid titles, that is row and column titles. It calls renderGridHeaders(out, false);

Parameters
out MarkupOutput to generate the HTML.

protected void renderJavascript (MarkupOutput out)

This method renders the javascript code that needs to be generated on the server side because its content is dynamic. It extends renderJavascript by including control variables that informs the browser the grid status, and context (or right-mouse-click) menus.

Parameters
out MarkupOutput to generate the HTML.

protected void renderLockHeadersInfo (MarkupOutput out)

Generates divs that allows the headers to be "locked" in the browser window.
The row headers and column headers are generated again by this method, then using javascript these are positioned on top of the original headers, creating the illusion that the later are kept still.

Parameters
out MarkupOutput to generate the HTML.

protected void renderRegisterBone (MarkupOutput out)

If a scriptClass is specified, this method registers the corresponding javascript bone for this component.

Parameters
out MarkupOutput whether the output should be rendered.

protected void renderRowHeaders (MarkupOutput out)

Convenience method to generate only the row headers (all row headers). It calls renderGridData(out, false);

Parameters
out MarkupOutput to generate the HTML.

protected void renderRowTitlesAccessibility (MarkupOutput out, ReportBean rb, WebGridTitles rowTitles)

Renders an empty list of row titles.
This is a needed in accessibility mode because screen readers don't support "rowspan" attribute in table cells, so we need to expand the row titles when their rowspan is greater than 0. This method basically iterates through the list of rowTitles and generates an empty row title cell for each one of them, for example:

   for (int i = 0; i < rowTitles.size(); i++) {
       WebTitle title = rowTitles.get(i);

       for (int j = 0; j < title.getSpan(); j++) {
           onRowTitle(newRowTitle(), out);
       }
   }
 

Parameters
out MarkupOutput to generate the HTML.
rb ReportBean being transformed (ignored, always uses the bean passed to the initializeTransform method).
rowTitles the corresponding WebGridTitles

protected void setBoneProperties (JsonGenerator boneProps)

Sets the necessary properties to the bone assigned to this transform (based on the scriptClass formal parameter)
Usually called by renderRegisterBone(MarkupOutput)
Can be overwritten to add or modify bone properties.

Parameters
boneProps the JsonGenerator object that contains the collection of bone properties.

protected boolean showColHeaders ()

Check whether the Template Formatting property ShowColumnHeaders is true or false.

Returns
  • the boolean value of the property.

protected boolean showEmptyAxis ()

protected boolean showEmptyAxisCssLink ()

protected boolean showEmptyColAxis ()

protected boolean showEmptyMetricAxis ()

protected boolean showEmptyRowAxis ()

protected boolean showRowHeaders ()

Check whether the Template Formatting property ShowRowHeaders is true or false.

Returns
  • the boolean value of the property.

protected void updateDynamicScriptFileInformation ()

protected int widthMode ()

This method is deprecated.
Please query directly the widthMode formal parameter instead

Returns the value of the widthMode formal parameter.