Skip to content
The latest version of DbVisualizer was released 2024-04-15DOWNLOAD HERE ->

XML element - ObjectsActionDef

The ObjectsViewDef element define all views for the object types in the objects tree. These views are displayed in the Object View area for the selected object. Which views should appear when selecting a node in the tree is based on the object type for the tree node and the corresponding object view definition.

<ObjectsViewDef extends="true">
   <ObjectView type="xxx">
      <DataView id="yyy" label="yyy">
         ...
      </DataView>
   </ObjectView>
</ObjectsViewDef>

The extends="true" attribute specifies that this definition will extend the ObjectsViewDef definition in the database profile being extended.

All database profiles should extend generic profile as the very top level profile.

When an object is opened in the database tree (sa in the screenshot below) a corresponding object view tab is created (right in the sample). Each of the DataView elements in the ObjectView will appear as sub tabs in the object view tab. The selected object and its information is passed to each of the data views for processing and presentation. The following example show the Object View in DbVisualizer and its ObjectView element definition.

Representation in DbVisualizerXML definition
image2021 1 13 16 23 0
<ObjectView type="Logins">
<DataView type="Logins" label="Logins"
viewer="grid">
<Command idref="sybase-ase.getLogins"/>
</DataView>
</ObjectView>

<ObjectView type="Login">
<DataView type="Info" label="Info"
viewer="node-form"/>
<DataView type="Databases" label="Databases"
viewer="grid">
<Command idref="sybase-ase.getLoginDatabases"/>
</DataView>
<DataView type="Roles" label="Roles"
viewer="grid">
<Command idref="sybase-ase.getLoginRoles"/>
</DataView>
</ObjectView>

The screenshot and the database tree show both the Logins node and its child nodes, jstask, probe and sa. These nodes are instances of the object types Logins (labeled Logins in the screenshot) and Login (the three sub nodes: jstask, sa and probe).

The ObjectView XML definitions above shows the data views for these two types, Logins and Login. Opening the node labeled Logins in the tree will show the object view for the <ObjectView type="Logins"> definition while opening the node labeled jstask, probe or sa will show the object view for the <ObjectView type="Login"> .

The example shows sa being selected. Its DataView definitions displayed as tabs in the object view are (by label):

  • Info
  • Databases
  • Roles

XML element - ObjectView

The ObjectView element is associated with an object type and groups all DataView elements that appear when the object type is selected in the database objects tree. Here follows the ObjectView definition for the Login object type.

<ObjectView type="Login">
  ...
</ObjectView>

The type attribute value is used when a node is clicked in the database objects tree to map with the corresponding ObjectView definition. The following lists the attributes for ObjectView:

AttributeDescription
typeThe type of the ObjectView as declared in the GroupNode and DataNode elements in the ObjectsTreeDef section
layoutThe layout attribute is used to tile the contained DataViews so that they are all visible att once in the object view. The default (collapse) shows all DataViews as tabs in a single tab group while tile shows them all side-by-side - tilevertical <n> - tilehorizontal <n> - collapse (default) The number <n> specifies how many DataViews should be present in the first group (vertical or horizontal) of DataViews.
drop-on-conditionRead more in drop-on-condition attribute

The layout attribute is useful to tile DataViews side-by-side, either vertically or horizontally. Leaving it out will collapse the DataView tabs in a single tab group:

image2021 1 13 17 32 19

layout="tilevertical" Tiles all tabs vertically in a single columnlayout="tilevertical 2" Tiles the tabs vertically with two tabs in the first column and the rest in the second column
image2021 1 13 17 33 43image2021 1 13 17 34 58
layout="tilehorizontal" Tiles all tabs horizontally in a single rowlayout="tilehorizontal 2" Tiles the tabs horizontally with two tabs in the first row and the rest in the second row 2
image2021 1 13 17 36 14image2021 1 13 17 37 12

The previous tile examples all use the viewer="chart" for the DataView's. Please note that any supported viewer may be tiled.

XML element - DataView

The DataView element is comparable with the DataNode element in the ObjectsTreeDef. It defines what SQL (command) should be executed, labeling, viewer type (presentation form) and other characteristics. The following is the DataView definitions for the Login object type. (The ObjectView element is part of the sample just for clarification).

<ObjectView type="Login">
  <DataView type="sybasease-login-info" icon="Info" label="Info" viewer="node-form"/>
  <DataView type="sybasease-login-databases" icon="Databases" label="Databases" viewer="grid">
    <Command idref="sybase-ase.getLoginDatabases"/>
  </DataView>
  <DataView type="sybasease-login-roles" icon="Roles" label="Roles" viewer="grid">
    <Command idref="sybase-ase.getLoginRoles"/>
  </DataView>
</ObjectView>

All three DataView elements have a viewer attribute identifying how the data in the view should be be presented, e.g., as a grid or a form. See the next sections for a list of viewers. The following lists all attributes for DataView:

AttributeDescription
idEvery DataView element must have a unique id which is not only unique in the current profile but also with all id's in extended profiles !!! info "To make sure the id is unique use the following recommended format: profileName-objectViewType-viewerLabel. Ex: sybasease-login-databases (The id should not contain any empty space or special characters other than dash ("-"))."
labelThe label for the viewer as it will appear in the tab
iconThe icon as defined in the icons.prefs file(s)
viewerOne of: - chart - ddl - form - grid - message - navigator - node-form - procedure-editor - table-data - table-refs - tables-refs - table-rowcount - text See the viewers section in this document for more information
drop-label-not-equalDrop the viewer if its label is not equal to the value of this attribute
classUsed to specify a custom Java class used as the viewer
classargsUsed to pass arguments to a custom viewer
drop-on-conditionRead more in drop-on-condition attribute
doclinkRelative HTML link to the related chapter in the users guide.
order-beforeSpecifies the order of this DataView among a collection of viewers having the same parent ObjectView. It can either be an index starting at 0 (first) or a node type. Ex. order-before="sybasease-login-databases" will order this DataView before viewers defined by the id="sybasease-login-databases" attribute
order-afterSpecifies the order of this DataView among a collection of viewers having the same parent ObjectView. It can either be an index starting at 0 (first) or a node type. Ex. order-after="sybasease-login-databases" will order this DataView after viewers defined by the id="sybasease-login-databases" attribute

Viewers

The viewer attribute for a DataView define how the data for the viewer should be presented. The following sections walk through the supported viewers:

  • chart
  • ddl
  • form
  • grid
  • message
  • navigator
  • node-form
  • procedure-editor
  • table-data
  • table-refs
  • tables-refs
  • table-rowcount
  • text

The following sample illustrates the viewer attribute.

<ObjectView type="Login">
  <DataView type="Info" label="Info" viewer="node-form"/>
</ObjectView>

DataView definitions may be nested and the viewers are then presented with the nested DataView in the lower part of the screen.

Viewer - chart

The chart viewer presents a result set as a chart. This is typically useful for displaying monitoring metrics, statistics, and any result set from a query from the database. Using it with the layout attribute for the ObjectView element allows creating dashboards with charts and other viewers.

Here is a simple example defining the DataView using the chart viewer:

<DataView id="exasol-monitoringlastday-cpu" icon="Monitoring" 
          label="CPU / Load" viewer="chart">
   <Command idref="exasol.getMonitorLastDay"/>

   <Input name="displayMode" value="chart"/>
   <Input name="toolbarVisible" value="false"/>

   <Input name="chart.category_column" value="Measure time"/>

   <Input name="chart.serie.0.name" value="Load"/>
   <Input name="chart.serie.0.visible" value="true"/>
   <Input name="chart.serie.1.name" value="CPU in %"/>
   <Input name="chart.serie.1.visible" value="true"/>

   <Input name="chartTitle" value="CPU/Load last hour"/>
   <Input name="xaxisHandleTimeAsText" value="false"/>
   <Input name="xaxisTitle" value="Time"/>
   <Input name="yaxisTitle" value=""/>
</DataView>

Here is the Command used in the previous example:

<Command id="exasol.getMonitorLastDay">
   <SQL>
      <![CDATA[
SELECT
    MEASURE_TIME 'Measure time',
    LOAD 'Load',
    CPU 'CPU in %',
    TEMP_DB_RAM 'Temp DB RAM [MiB]',
    HDD_READ 'HDD Read [MiB/sec]',
    HDD_WRITE 'HDD Write [MiB/sec]',
    NET 'Network [MiB/sec]',
    SWAP 'Swap [MiB/sec]'
FROM
    EXA_STATISTICS.EXA_MONITOR_LAST_DAY
WHERE  MEASURE_TIME >= add_minutes(CURRENT_TIMESTAMP,-60)
ORDER BY 1
      ]]>
   </SQL>
</Command>

And here is how it looks having the Measure Time column in the result set as the category (along the X axis) and the Load, and CPU in % as series.

image2021 1 13 17 38 45

All the options available to configure a chart in the DbVisualizer GUI are available as parameters using this syntax:

<Input name="displayMode" value="chart"/>

These are the parameters controlling what series should be available in the chart.

For chart.serie.<n>... parameters below, the <n> should be replaced with sequential integers starting with 0 and are increased with 1 for every serie.

ParameterDescriptionValues
chart.category_columnIdentifies the column in the original result set that should represent the category column. These are the labels that should be displayed along the X axis.
chart.serie.<n>.nameDefines the column in the result set that should appear as a serie. If you are using aliases to rename columns, use the alias name here.
chart.serie.<n>.visibleDefines whether the serie should be initially visible or not. It will still be selectable in the chart series drop-down.Valid values: true (default) or false
chart.serie.<n>.labelIf the name of the column in the result set defined by chart.serie.<n>.name needs to be changed, this parameter can be used to set an alternative name.

The following parameters controls the appearance and content of the chart:

ParameterDescriptionValues
displayModeDefines how the result set should be presented when displayed. The mode can be changed by the user using the toolbar or right-click menu.chart, grid or text
toolbarVisibleSpecifies if the toolbar should be visible.true (default) or false
statusBarVisibleSpecifies if the status bar in the grid or text mode should be visible.true (default) or false
Chart
chartTitleThe chart title displayed in big text at the top
chartTypeThe type of chart- result-set-chartviewer-line-chart-command(default) - result-set-chartviewer-point-chart-command - result-set-chartviewer-area-chart-command - result-set-chartviewer-stacked-area-chart-command - result-set-chartviewer-bar-chart-command - result-set-chartviewer-stacked-bar-chart-command - result-set-chartviewer-pie-chart-command
chartFontThe font for all text in the chartSyntax: <FontFamily>-<Style>-<Size> Example: Lucida Grande-plain-13 Default: same
chartTopBackgroundThe top background color. This is used as start color for a gradient backgroundExample: #ffffff Default is based on the current theme.
chartBottomBackgroundThe bottom background color. This is the end color for a gradient backgroundExample: #ccffcc Default is based on the current theme.
Legend
legendVisibleCheck this to show legend box with labels for all series in the charttrue (default) or false
legendLocationThe position of the legend boxNorth, West, South or East (default)
X Axis
xaxisTitleThe X axis title displayed below the X axis
xaxisTitleVisibleCheck this to display the X axis titletrue (default) or false
xaxisRotationThe rotation of the X axis labelsHorizontal, 45 (default) or Vertical
xaxisLabelOverlapCheck this to allow X axis labels to overlap each othertrue or false (default)
xaxisMajorGridLinesCheck this to display X axis major grid linestrue or false (default)
xaxisHandleTimeAsTextCheck to handle datetrue (default) or false
Y Axis
yaxisTitleThe Y axis title displayed to the left of the Y axis
yaxisTitleVisibleCheck this to display Y axis titletrue (default) or false
yaxisMajorGridLinesCheck this to display of Y axis major grid linestrue (default) or false
yaxisMinorGridLinesCheck this to display of Y axis minor grid linestrue or false (default)
yaxisAutoStartValueCheck to adjust the Y-axis start value based on the datatrue (default) or false
yaxisStartValueThe start value for the Y-axis0.0
yaxisAutoEndValueCheck to adjust the Y-axis end value based on the datatrue (default) or false
yaxisEndValueThe end value for the Y-axis0.0
yaxisNumberFormatThe number format for value labels#,##0.# Format documentation.
Series
chartColorSchemeChoose color scheme for the chart seriesThese are the available color schemes. Make sure the name is specified as presented below. - Qualitative Set1 (9) - Qualitative Set3 (10) - Diverging Spectral (10) - HTML Color Names (140) - New Tau (10) - Tau (20) (default) - Tau Color Blind (10) - Divirgent Color Scale (13)
chartShadowCheck this to display a shadow border for seriestrue (default) or false
Line & Area Chart
chartLineTypeRender straight or smooth lines for line chartsStraight (default) or Smooth
chartLineWidthThe line width in pixels2
chartShowPointsCheck this to display points for each valuetrue (default) or false
chartShowPointLabelsCheck this to display point labelstrue or false (default)
Bar Chart
chartBarTypeRender bars as raised or flatFlat (default), Raised, Cylinder or 3D
chartBarGapThe gap in pixels between bars2
chartBarGroupGapThe gap in pixels between groups of bars4
Pie Chart
chartPieTypeRender pie as raisedFlat (default), Raised or 3D
chartPieLabelTypeUse this setting to specify how slice labels will be displayedLineLabels (default), Simple Labels or No Labels

As a reference to the chart configuration in the DbVisualizer GUI, here are the same parameters (and order of appearance) as the list of parameters explained above:

image2021 1 13 17 39 54

Viewer - ddl

The ddl viewer is special as it requires support in the DbVisualizer codebase to work properly. When supported it will show the DDL based on the actual object's catalog, schema, and objectname variables.

<DataView id="oracle-table-ddl" icon="Source" label="DDL" viewer="ddl">
   <Input name="formatSQL" value="true"/>
   <Input name="objectType" value="Table"/>
</DataView>

The formatSQL parameter specifies if the generated DDL should be formatter (false by default). The objectType parameter is used by some DDL generators to distinguish what object type is being processed.

Viewer - form

The form viewer displays row(s) from a result set in a form. If several rows are in the result, they are presented in a list. Selecting one row from the list presents all columns and data for that row in a form.

Here is a sample of the XML for the form viewer:

<DataView id="mysqlbase-table-info" icon="Info" label="Info" viewer="form" order-before="0">
   <Command idref="mysqlbase.getTable">
      <Input name="catalog" value="${catalog}"/>
      <Input name="table" value="${objectname}"/>
   </Command>
</DataView>

And here is a screenshot of the Info tab based on the previous definition.

image2021 1 15 12 41 1

Viewer - grid

The grid viewer presents a result set in a grid with standard grid features such as search, copy, fit columns, export and so on. The result set is presented exactly as it is produced by the associated Command and any optional Output processing.

Here is a sample of the XML for the grid viewer:

<DataView id="mysqlbase-table-columns" icon="Columns" label="Columns" viewer="grid" order-after="mysqlbase-table-info">
   <Command idref="mysqlbase.getColumns">
      <Input name="catalog" value="${catalog}"/>
      <Input name="table" value="${objectname}"/>
   </Command>
</DataView>

And here is a screenshot of the standard grid viewer created from the above definition.

image2021 1 15 12 42 50

Drill-down view

The nesting capability for grid viewers is really powerful, as it can be used to create a drill-down view of the data. Consider the scenario with a grid viewer showing all Trigger objects. Wouldn't it be nice to offer the user the capability to display the trigger source when selecting a row in the list? This is easily accomplished with the following definition:

<DataView id="oracle-table-triggers" icon="Trigger" label="Triggers" viewer="grid">
   <Command idref="oracle.getTriggers">
      <Input name="owner" value="${schema}"/>
      <Input name="condition" value="${triggersCondition}"/>
   </Command>
   <DataView id="oracle-table-triggers-source" icon="Source" label="Source" viewer="text">
      <Input name="dataColumn" value="text"/>
      <Input name="formatSQL" value="true"/>
      <Command idref="oracle.getTriggerSource">
         <Input name="owner" value="${OWNER}"/>
         <Input name="name" value="${TRIGGER_NAME}"/>
      </Command>
   </DataView>
   <DataView id="oracle-table-triggers-info" icon="Info" label="Info" viewer="node-form"/>
</DataView>
  • The first DataView element define the top grid viewer labeled Triggers and the command to get the result set for it
  • The next DataView is the nested text viewer labeled Source, specifying various input parameter for the viewer along with the command to get the source for the trigger. The difference here is that the input parameters for this command reference column names in the top grid. Since this viewer is nested, it will automatically be notified whenever an entry in the top grid is selected
  • The third DataView labeled Info is presented as a tab next to the Source viewer, and presents additional information about the selected trigger

The following screenshot illustrates the above sample:

image2021 1 18 8 41 22

A drill-down type of setup can also be done with a chart as drill-down viewer showing data in the chart based on the selection in the top grid:

image2021 1 18 8 58 16

Adding custom menu items in the grid

The grid right-click menu contain a lot of standard actions. Custom commands can be defined in the DataView element and these will appear last in the menu.

<Input name="menuItem" value="Open in New Tab...">
   <Input name="action" value="open-object-in-new-tab-command ${schema||OWNER}${object||TABLE_NAME}"/>
</Input>
<Input name="menuItem" value="Open in Floating Tab...">
   <Input name="action" value="open-object-in-floating-tab-command ${schema||OWNER}${object||TABLE_NAME}"/>
</Input>
   <Input name="menuItem" value="Script: SELECT ALL">
   <Input name="command" value="select * from ${schema||OWNER}${object||TABLE_NAME}"/>
</Input>
   <Input name="menuItem" value="Script: DROP TABLE">
   <Input name="command" value="drop table ${schema||OWNER}${object||TABLE_NAME}"/>
</Input>

The <Input name="menuItem"> element define a menu item entry that should appear in the grid right-click menu. The value for the menuItem is the label for the item as it will appear in the menu while the child Input element with name="command" is the SQL command that should be produced for all selected rows when the menu item is selected. Invoking a custom menu item will not execute the produced SQL directly but rather copy the statements to a SQL Editor. In the SQL Editor you will then need to manually execute the script and track the result.

The name="action" attribute declare that the value is a pre-defined action. Valid actions are:

  • open-object-in-new-tab-command
  • open-object-in-floating-tab-command

Any variables in the SQL statement should identify column names in the result set. The user may select any cells in the grid and choose a custom menu item. It is only the actual rows that are picked from the selection as the columns are predefined by the menuItem declaration.

The variables specified in these examples starts with ${schema=...} and ${object=...}. These define that the first variable represents a schema variable while the second defines an object. This is needed for DbVisualizer to determine whether delimited identifiers should be used and if identifiers should be qualified, as defined in the connection properties for the database.

Here is a sample:

image2021 1 18 9 0 4

Setting initial max column width

Some result sets may contain wide columns. The following parameter sets an initial maximum width for all columns in the grid.

<Input name="columnWidth" value=""/>
Viewer - message

The message viewer is really simple as it just shows a message in the DataView.

<DataView id="mimer-auto-properties" icon="properties" label="Mimer SQL Auto" viewer="message">
   <Message>
      <![CDATA[
<html>
Mimer SQL Auto database server type has no capabilities to list the contents of the database schema. <br/>
Please enter the precompiled statement names in the command window to perform operations
towards the database.
</html>
      ]]>
   </Message>
</DataView>

It may also be useful to define viewers based on conditions such as in this example:

<If test="#ROLE_IS_SECURITY_ADMIN eq 1">
   <DataView id="snowflake-users-users" icon="Users" label="Users" viewer="grid">
      <Command idref="snowflake.getUsers">
         <Input name="catalog" value="${catalog}"/>
      </Command>
   </DataView>
</If>
<Else>
   <DataView id="snowflake-users-users" icon="Users" label="Users" viewer="message">
      <Message>
         <![CDATA[
<html>
Insufficient privileges. SECURITYADMIN Role is required to view Users.
</html>
         ]]>
      </Message>
   </DataView>
</Else>
Viewer - navigator

The navigator viewer defines the Navigator tab for table objects in the DbVisualizer UI.

<DataView id="generic-table-navigator" icon="Navigator" label="Navigator" viewer="navigator"/>
Viewer - node-form

The node-form viewer presents all data associated with the selected DataNode (variables). Here is a sample of the XML for the node-form viewer:

image2021 1 18 10 33 40

Hiding columns

There may be data associated with the object that you don't want to present in the node form. The hidecolumn input parameter control what data for the object that should be invisible and you may repeat this option as many times you like to handle multiple variables that shouldn't be displayed.

<Input name="hidecolumn" value="oracle.getKeys.TABLE_OWNER"/>
Viewer - node-text

The node-text viewer presents data from a single cell in a DataNode in a text browser (read only).

This viewer is typically used to present large chunks of data, such as source code, SQL statements, etc. where the data is already loaded and no queries needs to be executed.

<DataView id="presto-base-queries-queries-query" icon="Query" label="Query" viewer="node-text">
   <Input name="dataColumn" value="text"/>
   <Input name="formatSQL" value="true"/>
</DataView>

The node text viewer requires the name of the column to be specified.

<Input name="column" value="query"/>
Enable SQL formatting of the data

The node text viewer has the SQL Formatting function, which when invoked formats the SQL buffer in the viewer. The formatSQL input parameter is used to control whether formatting should be made automatically when the data first displayed. If formatSQL is not specified, no initial formatting is made.

<Input name="formatSQL" value=""/>
Viewer - procedure-editor

The procedure-editor is special as it requires support in the DbVisualizer codebase to work properly. When supported it will open the procedure editor for the selected code object such as procedure, function, package, package body, etc.

<DataView id="mimer-function-functioneditor" classargs="FUNCTION" icon="SourceEditor" label="Function Editor" viewer="procedure-editor"/>
Viewer - table-data

The table-data viewer shows the data for a table in a grid with various features such as filtering and editing (if licensed) functionality. This viewer is referred as Data tab in the DbVisualizer UI.

Information presented in the grid is obtained automatically by the viewer via a standard SELECT * FROM table statement, i.e., the object type having this viewer defined must be able to support getting a result set via this SQL statement.

It is important that the Database Type in the connection setup is properly set to match the database being accessed. The reason is that the identifiers (schema, database, table) are delimited automatically. Delimiters are database specific and if having the wrong database type set it may result in an error getting the result.

Here is a sample of the XML for the table-data viewer:

<DataView id="oracle-view-data" icon="Data" label="Data" viewer="table-data"/>

And here is a screenshot of the Data tab based on the previous definition.

image2021 1 18 10 48 8

Disable data editing

The default strategy for the table-data viewer is to automatically check whether the data can be edited or not. If editing is allowed a few related buttons will appear in the toolbar. However, sometimes you may want to disable editing completely for the table-data viewer. Do this with the following input element:

<DataView ...>
   <Input name="editDisabled" value="true"/>
</DataView>
Trim cell values

Data is presented as-is as retrieved from the database. Some databases returns whitespace padded data which may not be desired. Use the following input element to trim (remove leading and trailing whitespaces) the data in every cell:

<DataView ...>
   <Input name="trimCellValues" value="true"/>
</DataView>
Viewer - table-refs

The table-refs viewer shows the references graph for the current object (this must be an object supporting referential integrity constraints, such as a Table),

Here is a sample of the XML for the table-refs viewer:

<DataView id="generic-table-references" icon="References" label="References" viewer="table-refs"/>

And here is a screenshot of the References tab based on the previous definition.

image2021 1 18 10 49 58

Viewer - tables-refs

The tables-refs viewer shows the references graph for several tables in the result set (the result set must contain objects supporting referential integrity constraints, such as a Table). Here is a sample of the XML for the tables-refs viewer:

<DataView id="oracle-tables-references" icon="References" label="References" viewer="tables-refs">
   <Command idref="oracle.getTables">
      <Input name="owner" value="${schema}"/>
      <ProcessDataSet action="renamecolumn" index="OWNER" name="TABLE_SCHEM"/>
      <ProcessDataSet action="renamecolumn" index="TABLE_NAME" name="TABLE_NAME"/>
   </Command>
</DataView>

And here is a screenshot of the References tab based on the previous definition.

image2021 1 18 10 53 5

Viewer - table-rowcount

The table-rowcount viewer shows the row count for a (table) object.

The row count is obtained automatically by the viewer via a traditional SELECT COUNT(*) FROM table statement, i.e., the object type having this viewer defined must be able to support getting a result set via this SQL statement.

It is that the Database Type in the connection setup is properly set to match the database being accessed. The reason is that the identifiers (schema, database, table) are delimited automatically. Delimiters are database specific and if having the wrong database type set it may result in an error getting the result.

Here is a sample of the XML for the table-rowcount viewer:

<DataView id="generic-table-rowcount" icon="RowCount" label="Row Count" viewer="table-rowcount"/>
Viewer - text

The text viewer presents data from one column in a result set in a text browser (read only). This viewer is typically used to present large chunks of data, such as source code, SQL statements, etc. If the result set contain several rows, the text viewer reads the data in the column for each row and present the combined data.

Here is a sample of the XML for the text viewer:

<DataView id="oracle-table-triggers-source" icon="Source" label="Source" viewer="text">
   <Input name="dataColumn" value="text"/>
   <Input name="formatSQL" value="true"/>
   <Input name="newline" value""/>
   <Command idref="oracle.getTriggerSource">
      <Input name="owner" value="${OWNER}"/>
      <Input name="name" value="${TRIGGER_NAME}"/>
   </Command>
</DataView>

And here is a screenshot of the Source tab based on the previous definition.

image2021 1 18 10 54 41

Specify what column to browse

By default, the text viewer uses the data in first column. This behavior can be controlled by using the dataColumn input parameter. Simply specify the name of the column in the result set or its index (starting at 1 from the left).

<Input name="dataColumn" value=""/>
Enable SQL formatting of the data

The text viewer has the SQL Formatting function, which when invoked formats the SQL buffer in the viewer. The formatSQL input parameter is used to control whether formatting should be made automatically when the data first displayed. If formatSQL is not specified, no initial formatting is made.

<Input name="formatSQL" value=""/>
Adding newline to each row

For a result set containing multiple rows and all rows should be displayed in a text viewer, the newline parameter define the character(s) that should separate the rows in the viewer. A \n somewhere in the value will be converted to a platform dependent newline sequence in the viewer. By default there is no newline sequence between multiple rows.

<Input name="newline" value="\n"/>
<Input name="newline" value="as-sql"/>

The as-sql value will append an SQL statement delimiter and a platform specific newline sequence at the end of every row.

XML element - Command

Check the commands section for more information.

XML element - Input

The Input element is supported for some of the viewers. Check the viewer sections for more information.

XML element - Message

The Message element is very simple as it just define a message that should appear at the top of the viewer. The text in the message may contain HTML tags such as <b> (bold), <i> (italic), <br> (line break), etc.

Here is a sample of the XML for using the message element in a grid viewer:

<ObjectView type="RecycleBin">
   <DataView id="oracle-recyclebin-recyclebin" icon="RecycleBin" label="Recycle Bin" viewer="grid">
      <Command idref="oracle.getRecycleBin">
         <Input name="schema" value="${schema}"/>
         <Input name="login_schema" value="${dbvis-defaultCatalogOrSchema}"/>
      </Command>
      <Message>
         <![CDATA[
<html>
These are the tables currently in the recycle bin for this schema. Right click on a bin
table in objects tree to restore or permanently purge it. 
<b>Note: The recycle bin is always empty if not looking at the bin for your
login schema (default).</b>
</html>
         ]]>
      </Message>
   </DataView>
</ObjectView>

And here is a screenshot of the Recycle Bin tab based on the previous definition.

image2021 1 18 11 0 0