Class: I2CE CustomReport Display: Difference between revisions

From IHRIS Wiki
No edit summary
No edit summary
Line 1: Line 1:
This article desrcibes the1 class '''I2CE_CustomReport_Display''' which extends the class [[Class: I2CE_Fuzzy | I2CE_Fuzzy]]
This article desrcibes the1 class '''I2CE_CustomReport_Display'''.
*Extends the class: [[Class: I2CE_Fuzzy | I2CE_Fuzzy]].
It is contained in the module [[iHRIS Module List#CustomReports|CustomReports]] in the package [https://launchpad.net/i2ce I2CE]
It is contained in the module [[iHRIS Module List#CustomReports|CustomReports]] in the package [https://launchpad.net/i2ce I2CE]


Line 72: Line 73:
===$row_start===
===$row_start===
The starting row (if any) for limiting the results. If not used, it is false
The starting row (if any) for limiting the results. If not used, it is false
*Type: protected [http://www.php.net/manual/en/language.pseudo-types.php mixed] $row_start
*Type: protected [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $row_start


===$row_amount===
===$row_amount===
The number of rows (if any) for limiting the results. If not used, it is false
The number of rows (if any) for limiting the results. If not used, it is false
*Type: protected [http://www.php.net/manual/en/language.pseudo-types.php mixed] $row_amount
*Type: protected [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $row_amount


===$reportViewsFactory===
===$reportViewsFactory===
Line 91: Line 92:
Parameters:
Parameters:
* [[Class: I2CE_Page | I2CE_Page]] $page
* [[Class: I2CE_Page | I2CE_Page]] $page
* [http://www.php.net/manual/en/language.types.string.php string] $view
* [http://www.php.net/manual/en/language.types.string.php string ] $view
===canView()===
===canView()===
Abstract method that each display is resposbile for implementing.  Checks to see
Abstract method that each display is resposbile for implementing.  Checks to see
if it can display the given view.
if it can display the given view.
*Signature: abstract protected function canView()
*Signature: abstract protected function canView()
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean]
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
===display()===
===display()===
Display the report
Display the report
Line 103: Line 104:
*Returns: boolean. true on sucess
*Returns: boolean. true on sucess
Parameters:
Parameters:
* [http://www.php.net/manual/en/class.domnode.php domnode] $contentNode<br/>The DOM node we wish to display into. If null, we do not do any of the DOM processing stuff, do
* [http://www.php.net/manual/en/class.domnode.php DOMNode ] $contentNode<br/>The DOM node we wish to display into. If null, we do not do any of the DOM processing stuff, do
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $processResults<br/>Defaults to true meaning we run through the results.  If false, we do not process results.
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $processResults<br/>Defaults to true meaning we run through the results.  If false, we do not process results.
**Default Value: true
**Default Value: true
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $controls<br/>If null (default), we display all the report controsl.  If string or an array of string, we only display the indicated controls
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $controls<br/>If null (default), we display all the report controsl.  If string or an array of string, we only display the indicated controls
**Default Value: null
**Default Value: null
===displayMetaInfo()===
===displayMetaInfo()===
Line 116: Line 117:
*Signature: protected function displayReportControl($contentNode)
*Signature: protected function displayReportControl($contentNode)
Parameters:
Parameters:
* [http://www.php.net/manual/en/class.domnode.php domnode] $contentNode
* [http://www.php.net/manual/en/class.domnode.php DOMNode ] $contentNode
===displayReportControls()===
===displayReportControls()===
Adds any report display controls that can be added for this view.
Adds any report display controls that can be added for this view.
@param DOMNode $conentNode
@param DOMNode $conentNode
*Signature: protected function displayReportControls($contentNode,$controls)
*Signature: protected function displayReportControls($contentNode,$controls)
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean] $true on success
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ] $true on success
Parameters:
Parameters:
*$contentNode  
*$contentNode  
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $controls<br/>If null (default), we display all the report controsl.  If string or an array of string, we only display the indicated controls
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $controls<br/>If null (default), we display all the report controsl.  If string or an array of string, we only display the indicated controls
**Default Value: null
**Default Value: null
===displayReportLimit()===
===displayReportLimit()===
Line 131: Line 132:
*Signature: protected function displayReportLimit($contentNode,$limitNode,$limitConfig)
*Signature: protected function displayReportLimit($contentNode,$limitNode,$limitConfig)
Parameters:
Parameters:
* [http://www.php.net/manual/en/class.domnode.php domnode] $contentNode
* [http://www.php.net/manual/en/class.domnode.php DOMNode ] $contentNode
*$limitNode  
*$limitNode  
* [[Class: I2CE_MagicDataNode | I2CE_MagicDataNode]] $limitConfig
* [[Class: I2CE_MagicDataNode | I2CE_MagicDataNode]] $limitConfig
Line 138: Line 139:
*Signature: protected function displayReportLimits($contentNode)
*Signature: protected function displayReportLimits($contentNode)
Parameters:
Parameters:
* [http://www.php.net/manual/en/class.domnode.php domnode] $contentNode
* [http://www.php.net/manual/en/class.domnode.php DOMNode ] $contentNode
===findNumericFields()===
===findNumericFields()===
Find the numeric fields.  Returns it (and stores in in the variable $this->numeric)
Find the numeric fields.  Returns it (and stores in in the variable $this->numeric)
Line 157: Line 158:
Finally any options that have a key in $get are replaced by that value
Finally any options that have a key in $get are replaced by that value
*Signature: protected function getDefaultOptions($get,$options)
*Signature: protected function getDefaultOptions($get,$options)
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed] array or false on failure
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed ] array or false on failure
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $get
* [http://www.php.net/manual/en/language.types.array.php array ] $get
* [http://www.php.net/manual/en/language.types.array.php array] $options<br/>Default to the empty array.  The options that we want to be already set before we start goinng through
* [http://www.php.net/manual/en/language.types.array.php array ] $options<br/>Default to the empty array.  The options that we want to be already set before we start goinng through
**Default Value: array()  
**Default Value: array()  
===getDisplayFieldsData()===
===getDisplayFieldsData()===
Line 172: Line 173:
*Returns: array.  Index 0 is an I2CE_Form (on success, false on failure), Index 1 is an I2CE_FormField on succces, false on failure
*Returns: array.  Index 0 is an I2CE_Form (on success, false on failure), Index 1 is an I2CE_FormField on succces, false on failure
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $reportformfield<br/>of the re[prt form "$form" "$form+$field"  or "$form+$field+$aggregate"
* [http://www.php.net/manual/en/language.types.string.php string ] $reportformfield<br/>of the re[prt form "$form" "$form+$field"  or "$form+$field+$aggregate"
*$isReportForm  
*$isReportForm  
**Default Value: true
**Default Value: true
Line 181: Line 182:
If false, we are working with a form field.
If false, we are working with a form field.
*Signature: protected function getMappedValue($reportformfield,$value,$isReportForm)
*Signature: protected function getMappedValue($reportformfield,$value,$isReportForm)
*Returns: [http://www.php.net/manual/en/language.types.string.php string] the origina value of  on failure, the mapped value on success
*Returns: [http://www.php.net/manual/en/language.types.string.php string ] the origina value of  on failure, the mapped value on success
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $reportformfield<br/>or a report form field or a form field of the form "$reportform+$field" or "$reportform+$field+$aggreate" or "$form+field"
* [http://www.php.net/manual/en/language.types.string.php string ] $reportformfield<br/>or a report form field or a form field of the form "$reportform+$field" or "$reportform+$field+$aggreate" or "$form+field"
*$value  
*$value  
*$isReportForm  
*$isReportForm  
Line 196: Line 197:
*Returns: array;
*Returns: array;
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $getDisabled<br/>Defaults to false;
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $getDisabled<br/>Defaults to false;
**Default Value: false
**Default Value: false
*$all_aggregates  
*$all_aggregates  
Line 205: Line 206:
@param array $limits an nested array defining limiting values for particular fields. Defaults to the empty array.
@param array $limits an nested array defining limiting values for particular fields. Defaults to the empty array.
*Signature: protected function getResults()
*Signature: protected function getResults()
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed] false on failure on succes an array. at index 'results' and  MDB2 buffered result object  at index 'num_results' the
*Returns: [http://www.php.net/manual/en/language.pseudo-types.php mixed ] false on failure on succes an array. at index 'results' and  MDB2 buffered result object  at index 'num_results' the
number of results that would be found without the limit
number of results that would be found without the limit
===getSwissReport()===
===getSwissReport()===
Line 219: Line 220:
*Signature: protected function isMapped($reportformfield)
*Signature: protected function isMapped($reportformfield)
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $reportformfield<br/>of the form "$reportform+$fiedld(+$aggregate)"
* [http://www.php.net/manual/en/language.types.string.php string ] $reportformfield<br/>of the form "$reportform+$fiedld(+$aggregate)"
===mapReportFormField()===
===mapReportFormField()===
Sets the maps
Sets the maps
*Signature: protected function mapReportFormField($reportformfield)
*Signature: protected function mapReportFormField($reportformfield)
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $reportformfield
* [http://www.php.net/manual/en/language.types.string.php string ] $reportformfield
===mapResults()===
===mapResults()===
Maps any mapped  fields in a results.
Maps any mapped  fields in a results.
*Signature: protected function mapResults($result)
*Signature: protected function mapResults($result)
*Returns: [http://www.php.net/manual/en/language.types.array.php array] the mapped results
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] the mapped results
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $result<br/>A an array with inicies of the form "$reportform+$field(+$aggregate)"  with unmapped value
* [http://www.php.net/manual/en/language.types.array.php array ] $result<br/>A an array with inicies of the form "$reportform+$field(+$aggregate)"  with unmapped value
===processResultRow()===
===processResultRow()===
Process a result row.
Process a result row.
Line 237: Line 238:
*Returns: boolean. True on success
*Returns: boolean. True on success
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $row
* [http://www.php.net/manual/en/language.types.array.php array ] $row
* [http://www.php.net/manual/en/language.types.integer.php int] $row_num<br/>The current row number when processing results.  If there was a result limit, it starts the count from the beginning of the
* [http://www.php.net/manual/en/language.types.integer.php int ] $row_num<br/>The current row number when processing results.  If there was a result limit, it starts the count from the beginning of the
* [http://www.php.net/manual/en/class.domnode.php domnode] $contentNode<br/>Default to null. A node to append the result onto
* [http://www.php.net/manual/en/class.domnode.php DOMNode ] $contentNode<br/>Default to null. A node to append the result onto
**Default Value: null
**Default Value: null
===processResults()===
===processResults()===
Line 246: Line 247:
*Signature: protected function processResults($results_data,$contentNode)
*Signature: protected function processResults($results_data,$contentNode)
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.array.php array] $results_data<br/>an array of results.  indices are 'restults' and MDB2 Buffered result and 'num_results' the
* [http://www.php.net/manual/en/language.types.array.php array ] $results_data<br/>an array of results.  indices are 'restults' and MDB2 Buffered result and 'num_results' the
* [http://www.php.net/manual/en/class.domnode.php domnode] $contentNode<br/>Default to null a node to append the results onto
* [http://www.php.net/manual/en/class.domnode.php DOMNode ] $contentNode<br/>Default to null a node to append the results onto
**Default Value: null
**Default Value: null
===processWhere()===
===processWhere()===
Line 253: Line 254:
@param array $limits an array defining limiting values for particular fields
@param array $limits an array defining limiting values for particular fields
*Signature: protected function processWhere($limitValues)
*Signature: protected function processWhere($limitValues)
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
Parameters:
Parameters:
*$limitValues  
*$limitValues  
Line 260: Line 261:
*Signature: protected function processWhereByField($form,$field,$formObj,$limitStyles)
*Signature: protected function processWhereByField($form,$field,$formObj,$limitStyles)
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $form<br/>the (report) form
* [http://www.php.net/manual/en/language.types.string.php string ] $form<br/>the (report) form
* [http://www.php.net/manual/en/language.types.string.php string] $field<br/>the field
* [http://www.php.net/manual/en/language.types.string.php string ] $field<br/>the field
*$formObj  
*$formObj  
* [http://www.php.net/manual/en/language.types.array.php array] $limitStyles<br/>the limit values for this formfield indexed by limit type
* [http://www.php.net/manual/en/language.types.array.php array ] $limitStyles<br/>the limit values for this formfield indexed by limit type
===processWhereByFunction()===
===processWhereByFunction()===
*Signature: protected function processWhereByFunction($function,$limitStyles)
*Signature: protected function processWhereByFunction($function,$limitStyles)
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $function
* [http://www.php.net/manual/en/language.types.string.php string ] $function
* [http://www.php.net/manual/en/language.types.array.php array] $limitStyles<br/>the limit values for this formfield indexed by limit type
* [http://www.php.net/manual/en/language.types.array.php array ] $limitStyles<br/>the limit values for this formfield indexed by limit type
===saveDefaultView()===
===saveDefaultView()===
*Signature: public function saveDefaultView()
*Signature: public function saveDefaultView()
Line 279: Line 280:
*Signature: protected function setupMappedValues($reportformfield,$isReportForm)
*Signature: protected function setupMappedValues($reportformfield,$isReportForm)
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $reportformfield
* [http://www.php.net/manual/en/language.types.string.php string ] $reportformfield
*$isReportForm  
*$isReportForm  
**Default Value: true
**Default Value: true

Revision as of 22:24, 16 October 2009

This article desrcibes the1 class I2CE_CustomReport_Display.

It is contained in the module CustomReports in the package I2CE

The class is defined in the file: modules/CustomReports/lib/I2CE_CustomReport_Display.php

I2CE_CustomReport_Display @subpackage Core

  • Author: Carl Leitner <litlfred@ibiblio.org>

Variables

$formObjs

an array indexed by forms

  • Type: protected y $formObjs

$mappedFields

  • Type: protected $mappedFields

$formMaps

An array where keys are of the "$reportform(+field(+$aggregate))" and the values are the corresponding "$form+$field" (that is the real form for the later) @var protected array $maps

  • Type: protected $formMaps

$fieldMaps

An array where keys are of the "$reportform(+field(+$aggregate))" and the values are the corresponding "$form+$field" (that is the real form for the later)

  • Type: protected y $fieldMaps

$mappedValues

  • Type: protected $mappedValues

$display

The shortname for the display. E.g. 'Default'

  • Type: protected ng $display

$reportObj

$defaultOptions

The options for this display

  • Type: protected $defaultOptions

$view

the view we are displaying

  • Type: protected ng $view

$page

The page we are displaying on

$template

$displayConfig

The magic data node which holds the information about the display that is being used

$config

The magic data node which holds the information about this view

$reportConfig

The magic data node which holds the information about the report this view referes to

$relationshipConfig

The magic data node which holds the information about the relationship this view refers to

$numeric

array with keys the 'reportformfields' and values the data associated to it. these fields are those we assume have a numeric representation

  • Type: protected y $numeric

$row_start

The starting row (if any) for limiting the results. If not used, it is false

  • Type: protected mixed $row_start

$row_amount

The number of rows (if any) for limiting the results. If not used, it is false

  • Type: protected mixed $row_amount

$reportViewsFactory

  • Type: protected $reportViewsFactory

$displayedFields

  • Type: private $displayedFields

Methods

__construct()

The constuctor @throws Excecption on error

  • Signature: public function __construct($page,$view)

Parameters:

canView()

Abstract method that each display is resposbile for implementing. Checks to see if it can display the given view.

  • Signature: abstract protected function canView()
  • Returns: boolean

display()

Display the report not call the report display controls, limits etc. It will however still call processResults with a DOMNode of null

  • Signature: public function display($contentNode,$processResults,$controls)
  • Returns: boolean. true on sucess

Parameters:

  • DOMNode $contentNode
    The DOM node we wish to display into. If null, we do not do any of the DOM processing stuff, do
  • boolean $processResults
    Defaults to true meaning we run through the results. If false, we do not process results.
    • Default Value: true
  • mixed $controls
    If null (default), we display all the report controsl. If string or an array of string, we only display the indicated controls
    • Default Value: null

displayMetaInfo()

  • Signature: protected function displayMetaInfo($contentNode)

Parameters:

  • $contentNode

displayReportControl()

Adds any controls for this display to the content node

  • Signature: protected function displayReportControl($contentNode)

Parameters:

displayReportControls()

Adds any report display controls that can be added for this view. @param DOMNode $conentNode

  • Signature: protected function displayReportControls($contentNode,$controls)
  • Returns: boolean $true on success

Parameters:

  • $contentNode
  • mixed $controls
    If null (default), we display all the report controsl. If string or an array of string, we only display the indicated controls
    • Default Value: null

displayReportLimit()

Adds the report limit node to its content node @param DOMNode $limitnode

  • Signature: protected function displayReportLimit($contentNode,$limitNode,$limitConfig)

Parameters:

displayReportLimits()

Displays any report limits in the content node

  • Signature: protected function displayReportLimits($contentNode)

Parameters:

findNumericFields()

Find the numeric fields. Returns it (and stores in in the variable $this->numeric)

  • Signature: protected function findNumericFields($disabled)
  • Returns: @array. Keys are report for fields and values are the data associate defined in getDisplayedFields()

Parameters:

  • $disabled
    • Default Value: false

getBasePage()

  • Signature: protected function getBasePage()

getDefaultOptions()

returns an array of the default display options. Default options are read and overriddenb in the following order: /modules/CustomReports/displays/$display/display_options /modules/CustomReports/relationships/display_options/$display /modules/CustomReports/reports/display_options/$display /modules/CustomReports/reportViews/$view/display_options/$display Finally any options that have a key in $get are replaced by that value

  • Signature: protected function getDefaultOptions($get,$options)
  • Returns: mixed array or false on failure

Parameters:

  • array $get
  • array $options
    Default to the empty array. The options that we want to be already set before we start goinng through
    • Default Value: array()

getDisplayFieldsData()

Gets the data about the fields we are going to display.

  • Signature: protected function getDisplayFieldsData()

getFormFieldObjects()

Get the form and field objects associated to a formfield string. @parmam boolean $isReportForm Defaults to true. If true we a sending a report form field If false, we are working with a form field.

  • Signature: protected function getFormFieldObjects($reportformfield,$isReportForm)
  • Returns: array. Index 0 is an I2CE_Form (on success, false on failure), Index 1 is an I2CE_FormField on succces, false on failure

Parameters:

  • string $reportformfield
    of the re[prt form "$form" "$form+$field" or "$form+$field+$aggregate"
  • $isReportForm
    • Default Value: true

getMappedValue()

Gets the mapped value for a report form field. @param value @parmam boolean $isReportForm Defaults to true. If true we a sending a report form field If false, we are working with a form field.

  • Signature: protected function getMappedValue($reportformfield,$value,$isReportForm)
  • Returns: string the origina value of on failure, the mapped value on success

Parameters:

  • string $reportformfield
    or a report form field or a form field of the form "$reportform+$field" or "$reportform+$field+$aggreate" or "$form+field"
  • $value
  • $isReportForm
    • Default Value: true

getReportViewDisplayedFields()

Returns an array in (default display order) with keys reportformfields and values an array with indices 'header', 'link' The value of 'header' is the display header for this field The value of 'link' is false if there is no linked page associtated to this field or a string if there is. @param Mixed $all_aggerates Defaults to false. If true we include all information about aggregate and non-agregate versions of the fields. otherwise it can be an array of aggregate information that we want

  • Signature: protected function getReportViewDisplayedFields($getDisabled,$all_aggregates)
  • Returns: array;

Parameters:

  • boolean $getDisabled
    Defaults to false;
    • Default Value: false
  • $all_aggregates
    • Default Value: false

getReportViewsFactory()

  • Signature: protected function getReportViewsFactory()

getResults()

@param array $limits an nested array defining limiting values for particular fields. Defaults to the empty array.

  • Signature: protected function getResults()
  • Returns: mixed false on failure on succes an array. at index 'results' and MDB2 buffered result object at index 'num_results' the

number of results that would be found without the limit

getSwissReport()

  • Signature: protected function getSwissReport()

getSwissReportFunction()

  • Signature: protected function getSwissReportFunction($func)

Parameters:

  • $func

getSwissReportView()

  • Signature: protected function getSwissReportView()

isMapped()

Checks to see if a form field is mapped

  • Signature: protected function isMapped($reportformfield)

Parameters:

  • string $reportformfield
    of the form "$reportform+$fiedld(+$aggregate)"

mapReportFormField()

Sets the maps

  • Signature: protected function mapReportFormField($reportformfield)

Parameters:

mapResults()

Maps any mapped fields in a results.

  • Signature: protected function mapResults($result)
  • Returns: array the mapped results

Parameters:

  • array $result
    A an array with inicies of the form "$reportform+$field(+$aggregate)" with unmapped value

processResultRow()

Process a result row. result offset. Othwerwise, it starts counting form zero.

  • Signature: protected function processResultRow($row,$row_num,$contentNode)
  • Returns: boolean. True on success

Parameters:

  • array $row
  • int $row_num
    The current row number when processing results. If there was a result limit, it starts the count from the beginning of the
  • DOMNode $contentNode
    Default to null. A node to append the result onto
    • Default Value: null

processResults()

Process results number of results. (these values may be false on failure)

  • Signature: protected function processResults($results_data,$contentNode)

Parameters:

  • array $results_data
    an array of results. indices are 'restults' and MDB2 Buffered result and 'num_results' the
  • DOMNode $contentNode
    Default to null a node to append the results onto
    • Default Value: null

processWhere()

Process the fields to make limits based on their limiting values @param array $limits an array defining limiting values for particular fields

  • Signature: protected function processWhere($limitValues)
  • Returns: string

Parameters:

  • $limitValues

processWhereByField()

param I2CE_Form $formObj the instantiation of the form that the report form references

  • Signature: protected function processWhereByField($form,$field,$formObj,$limitStyles)

Parameters:

  • string $form
    the (report) form
  • string $field
    the field
  • $formObj
  • array $limitStyles
    the limit values for this formfield indexed by limit type

processWhereByFunction()

  • Signature: protected function processWhereByFunction($function,$limitStyles)

Parameters:

  • string $function
  • array $limitStyles
    the limit values for this formfield indexed by limit type

saveDefaultView()

  • Signature: public function saveDefaultView()

saveDisplayOptions()

  • Signature: public function saveDisplayOptions()

setupMappedValues()

Stores the array of mapped value for a formfield in {@var $formfield} @parmam boolean $isReportForm Defaults to true. If true we a sending a report form field If false, we are working with a form field.

  • Signature: protected function setupMappedValues($reportformfield,$isReportForm)

Parameters:

  • string $reportformfield
  • $isReportForm
    • Default Value: true

Inherited Fuzzy Methods

userMessage()

This method is inherited from I2CE_Fuzzy->userMessage()