21 March 2016

1. Miscellaneous Settings

This chapter contains other settings that typically can be applied to configure different behaviour of the structure browser.

One common way to configure something in TVC is by using so called "init parameters". These are typically applied in the WEB.XML file, within the section were the TVC Servlet is registered. An init param takes the form of:

<init-param>
    <param-name>THE NAME OF THE PARAMETER</param-name>
    <param-value>THE VALUE OF THE PARAMETER</param-value>
</init-param>

Another common way is to include a parameter within the URL that launches an instance of the structure browser. This could either be in the command that launches it, or in the page configuration object used. These parameters are called custom parameters.

1.1. Table Columns Selecting Attributes with ".value" Suffix

When selecting data for columns in the table, one might select the same attribute from two different columns. If one of these columns uses attribute[NAME].value and the other uses attribute[NAME], this results in problems. To avoid this, the table evaluator in TVC will by default remove the ".value" suffix from the select statements. This should not have any impact on existing code or functionality; however, it is possible to disable this behaviour if required. That is done by applying the below init-parameter:

<init-param>
    <param-name>tvc.core.db.table.evaluator.removeEndingValue</param-name>
    <param-value>false</param-value>
</init-param>

1.2. emxTableRowId Format

Since TVC 2009.1 the value of this parameter is compatible with the V6R2009 format. This means that the value of this parameter contains, in addition to the object id and relationship id, also the id of the parent object.

The name of this init parameter is tvc.structurebrowser.includeParentOID and accepted values are "true" or "false". It is also possible to specify this in the page config, if you want to override the default system value; this is done by adding the parameter submitParentOID in the page config.

Since TVC 2011.3 the value will also contain the level; which is the fourth parameter. This value is used in the ENOVIA OOTB structure browser, and is sometimes required when invoking an ENOVIA OOTB function. The system parameter to use to disable this is called tvc.structurebrowser.submitLevelInfo. The page config parameter used to override this is called submitLevel.

1.3. Pagination Settings

1.3.1. Override Pagination Settings per Page Configuration

The administration can override the user settings regarding pagination size, pagination on/off, and pagination threshold per structure browser instance (configuration is done within the page-configuration).

To do so, add parameters to the page configuration object:

<PageConfig>
    ...
    <Parameters>
        <Parameter name="paginationSize" value="10"/>
        <Parameter name="paginationOn" value="true"/>
        <Parameter name="paginationThreshold" value="100"/>
    </Parameters>
    ...
</PageConfig>

This example will force the page to be paginated and displaying 10 items per page. The pagination can only be disabled if the number of objects in the view is less or equal to 100 items.

1.3.2. Configuring Maximum Pagination Threshold (Globally)

The default behaviour of the structure browser is that when the number of rows in a table exceeds 250, there is no way to turn off the pagination. The reason for having such a limit is because the web-browsers tend to take some time when rendering a large table. However, this default value of 250 can be changed via a system parameter as below:

<init-param>
    <param-name>tvc.core.table.paginationThreshold</param-name>
    <param-value>500</param-value>
</init-param>

Changing this value might have negative impact of the overall performance.

Changing this parameter will also affect other TVC components, for example the TVC Grid Browser component.

1.3.3. Configuring Pagination On (Globally)

By default pagination is on system level. Which can be overridden by page level configuration or user selection.

Using below configuration pagination can be turned off by default.

<init-param>
    <param-name>tvc.structurebrowser.pagination</param-name>
    <param-value>false</param-value>
</init-param>

1.4. Configuring the Search Form Layout

The search form page can have three different layouts. The mode used can be chosen for each instance, through the request parameters or custom parameters. If the mode isn’t selected, the default mode is used, which is configured through init-parameters.

To configure the init parameter, use the name tvc.structurebrowser.searchFrameLayout and use the value old, drop-down or toolbar. The latter one is the default value.

To configure this for each use case, use the parameter searchFrameLayout (using any of the value that is used for the init-parameter).

1.5. Disabling Signature Approval

The promote/demote functionality allows signing signatures that is missing. This feature can be disabled by setting the init parameter tvc.structurebrowser.lifecycle.allowSign to false.

1.6. Auto-Promote

When all the signatures have been satisfied, then the selected objects will be automatically promoted. This feature can be enabled by setting the init parameter tvc.structurebrowser.lifecycle.autoPromote to true (default false).

<init-param>
    <param-name>tvc.structurebrowser.lifecycle.autoPromote</param-name>
    <param-value>true</param-value>
</init-param>

The navigation column could be populated with content of the first column of the table. The user can change navigation column by applying a custom table configuration. The navigation column is populated with the view mode content. If the table is in edit mode and the specified column is editable it is rendered twice, once in the navigation column in view mode and once at its normal position in edit mode.

This feature is activated by the parameter "navigationColumn=true/false" and could be disabled for certain columns using the "Navigation Column Enabled=true/false" setting.

Table calculations and group header are not rendered for the navigation column.
image
image

1.8. Persistent Expand State

The expand state of an object view can be configured to be persistent i.e. the structure will be expanded the same way the next time the same object view is loaded.

Persistence is controlled through the parameter persistentExpandState=true/false or globally through the init-param tvc.structurebrowser.persistentExpandState (default false).

The number of object expand states that are stored can be controlled through the init-param tvc.structurebrowser.persistentExpandState.maxcount. If the maximum number of stored expand states is reached the oldest will be no longer be stored.

It is configurable if you like a load message to appear as a persistent expand state has been loaded through the init-param tvc.structurebrowser.persistentExpandState.showLoadMessage (default false).

To ensure consistent behavior, avoid using persistentExpandState with disableExpandOnLoad. Enabling the latter prevents the former from functioning correctly.
image

1.9. Evaluate Expandable Nodes

Structure Browser can be configured to evaluate if a node is a leaf node and if it is make it non expandable. This will improve usability as leaf nodes are indicated without expand symbol (plus sign) and it is clear to the end user what nodes are expandable. The evaluation will affect performance (often very little) and is default off.

Expandable node evaluation is controlled through the parameter evaluateExpandableNodes=true/false or globally through the init-param tvc.core.structure.evaluate.expandable.node (default false).

Expandable node evaluation will only work with the default mql based expander (tvc.core.structure.expandWithMQL=true).
image
image

1.10. In Cell Edit

To simplify occasional modifications, edit of single cells is default enabled. When activated a single cell is toggled to edit mode just by clicking it.

In cell edit is controlled through the parameter inCellEdit=true/false, globally through the init parameter tvc.structurebrowser.inCellEdit (default true) or at column level through the setting In Cell Edit

It is configurable to have content of a cell by default selected, when cell opened in edit mode. This can either be done globally via init-parameter tvc.structurebrowser.inCellEdit.selectAllContent (default false) or over ridden by page config parameter editSelectAllContent=true/false:

<init-param>
    <param-name>tvc.structurebrowser.inCellEdit.selectAllContent</param-name>
    <param-value>true</param-value>
</init-param>
<Parameter name="editSelectAllContent" value="true" />
image

1.11. Expand Pane Detail UI

When the structure browser supports full expansion, expand all command supports advanced options.

image

Using the advanced expand pane, selected or all nodes can be expanded to cutom expand level (1-10 or All)

Also all nodes can be collapsed as well.

If the "use expand level on navigation" is checked, then the selected expand level is used when manually expanding the node.

1.12. RelId parameter behavior

In earlier releases, when relId parameter passed with objectId, it was used in root nodes. This behavior has been changed from 2015.3.0 which skips the relId parameter by default.

Below configuration enables old behavior system level if required.

<init-param>
    <param-name>tvc.structurebrowser.param.include.relId</param-name>
    <param-value>true</param-value>
</init-param>

Below configuration enables the behaviour page level.

<PageConfig>
    ...
    <Parameters>
        <Parameter name="includeRelId" value="true" />
    </Parameters>
    ...
</PageConfig>

For Href on a column, link is generated dynamically adding objectId, relId etc. if suppose for an URL, relId is not required below configuration can be used.

Below configuration can be used to skip relId in links system level if required.

<init-param>
    <param-name>tvc.structurebrowser.link.exclude.relId</param-name>
    <param-value>true</param-value>
</init-param>

Below configuration can be used to skip relId in link column level.

<Column>
    ...
    <Setting name="link.excludeRelationshipId">true</Setting>
    ...
</Column>

1.14. Toggle Sort Icon Direction

The direction of "sorting icon" can be toggled. For ascending (upwards) it will go from 0 to 10 / a to z and vice versa for descending (downwards). This feature can be enabled by setting the init parameter tvc.structurebrowser.toggleSortIconDirection to true (default false).

<init-param>
    <param-name>tvc.structurebrowser.toggleSortIconDirection</param-name>
    <param-value>true</param-value>
</init-param>

1.15. Remember Row on Sorting

By default, the column sorting action remembers the top displayed row to set scroll position to remembered row. This feature can be disabled by setting the init parameter tvc.structurebrowser.rememberRowOnSort to false (default true).

<init-param>
    <param-name>tvc.structurebrowser.rememberRowOnSort</param-name>
    <param-value>false</param-value>
</init-param>

The below configuration disables the behavior at the page level.

<PageConfig>
    ...
    <Parameters>
        <Parameter name="rememberRowOnSort" value="false" />
    </Parameters>
    ...
</PageConfig>

1.16. Disable Expand On Load

By default, Structure Browser expands root objects one level deep on load. This feature will prevent initial expansion, loading only root objects.

This configuration is incompatible with persistentExpandState. Enabling disableExpandOnLoad prevents state persistence. Avoid using both settings together.

The below configuration enables the behavior at the page level.

<PageConfig>
    ...
    <Parameters>
        <Parameter name="disableExpandOnLoad" value="true" />
    </Parameters>
    ...
</PageConfig>