Logical and Display Tables
- Concepts
-
- Logical Table
-
sd-create-logical-table
sd-destroy-logical-table
sd-logical-table-p
sd-secure-logical-table
sd-unsecure-logical-table
sd-logical-table-secured-p
sd-get-logical-table-attribute
sd-set-logical-table-attribute
sd-logical-table-suspend-display-table-updates
sd-logical-table-resume-display-table-updates
sd-logical-table-update-display-tables
sd-logical-table-need-display-table-update-p
sd-change-logical-table-contents
sd-insert-logical-table-row
sd-remove-logical-table-row
sd-write-logical-table-cell
sd-read-logical-table-cell
sd-read-logical-table-row
sd-read-logical-table-column
sd-insert-logical-table-column
sd-get-logical-table-number-of-rows
sd-get-logical-table-column-identifiers
sd-get-logical-table-key-column-identifiers
sd-get-logical-table-column-type
sd-get-logical-table-types
sd-get-logical-table-column-name
sd-rename-logical-table-column
- Display Table
- sd-create-display-table
sd-destroy-display-table
sd-display-table-p
sd-get-display-table-logical-table
sd-get-display-table-columns
sd-get-display-table-selection
sd-set-display-table-selection
sd-reset-display-table-selection
sd-scroll-display-table-selection
sd-edit-display-table-cell
sd-sort-display-table
sd-reset-display-table-sort
sd-filter-display-table
sd-reset-display-table-filter
sd-allow-display-table-user-filter
sd-set-display-table-title
sd-set-display-table-column-title
sd-set-display-table-colors
sd-set-display-table-help-action
sd-set-display-table-help-page
sd-get-display-table-custom-top-form
sd-get-display-table-custom-bottom-form
sd-show-display-table
sd-hide-display-table
Logical and Display Table Concepts
Logical and display tables are techniques used to present a large amount
of data in tabular format. It helps the user read and understand the data.
By using these techniques the user can be assisted in providing correct
input data for a certain command.
A logical table is essentially an internal data-structure which
stores the actual data. A logical table consists of any number of columns
and rows. Each column may be typed, one of:
- String
- Number
- Length
- Angle
- Mass
or untyped. Each cell of an untyped column can contain any LISP data
where cells of typed columns can contain only values of the specific
type.
A logical table can be filled with data directly with its creation. After
creation the user has the possiblity to
- change the contents of single cells
- add/remove/overwrite complete rows
- add complete columns
- change the complete contents
A logical table can be secured against modifications. Here the user is
not allowed to change the table contents after table creation.
The user can retrieve single cell data or complete row data from the logical
table. A certain row of the logical table can be addressed by:
- the row number or
- values for the key columns or
- a property list composed out of column identifier - value pairs
A display table is used to display the contents of a logical table
on the screen. You can create multiple display tables for the same logical
table to have different views of the same data. That means the programmer of
a display table has the choice to display only some of the columns of the
logical table in any order.
With every change of the data kept in the logical table, each display table
which uses this logical table as data source will be updated
automatically.
If the logical table has columns where the cells are measured in units (i.e.
columns of type Length, Angle or Mass) each change of the system units will
lead to an update of the corresponding display tables.
A display table may look like this:
The main area of a display table displays the table data in rows and
columns. If more data is displayed as available space, horizontal and
vertical scrollbars will appear to allow access of hidden table parts.
As an option there is a sort interface above the table contents. Here the
user can sort each typed column - in reversed order too.
Another option is to display the current active filters in the filter
status line below the table data. Each typed column (String, Number, Length,
Angle or Mass) is labeled using a toggle button as interface to the column
fiter interface.
Untyped columns are labeled with pure label widgets. Here the user has not
the possibility to filter the column.
If the user hits a column toggle (indicates, that filtering on
this column is possible) the following UI comes up:
This column filter interface is reused for all tables and all columns. It
is not possible to have more than one filter interface visible at the
time.
If a filter was specified on that column, the UI shows the specified
values. Now, the user has the possibility to
- change these values
- to reset this column filter, or
- to reset all column filters of the table.
String filters are filters on lexical order.
That means for example: "Demo" < "Z" < "ab" < "abc" < "abd" <
"ac" < "b"
Filtering the column in one direction (one boundary specified) is
possible is this way:
- select a test from the option menu either for boundary 1 or 2.
The following tests are available:
- = (equal)
- < (less)
- <= (not-greater)
- > (greater)
- >= (not-less)
- <> (not-equal)
- enter a value into the text field next to the option menu and hit the
Return key or the Apply Button. (The entered value should be of the same
type as the column type).
Filtering the column by specifying a Range:
Reset all filters of table:
As the label says this button leads to a reset of all specified column
filters for this table. The resulting display table contains all
items of the corresponding logical table (since no filter is specified
anymore).
Display of current filter:
If the display table contains the filter status line, the current filter
will be displayed in this line. Filters on different columns are
concatenated using the character &.
Technical Remark:
Each column filter apply (either new or modification) leads to a complete
recalculation of displayed items starting from the full list of the
corresponding logical table.
All column filters are combined using the boolean expression AND.
So the order of column filter specification is irrelevant.
Logical Table
SD-CREATE-LOGICAL-TABLE
(sd-create-logical-table table
:secured boolean
:columns list-of-column-identifiers
:columnNames list-of-column-names
:keyColumns list-of-column-identifiers
:types list-of-type-identifiers
:units list-of-unit-keywords
:contents list-of-contents-lists
:attribute any-LISP-object)
- Description:
-
This function creates a new logical table. If a logical table with the
same identifier table exists, this old existing table (if it is
not secured) will be destroyed and all corresponding display
tables too. The new table will overwrite the old one
completly.
Values measured in units are converted automatically to internal units.
That means the logical table keeps values measured in length units
internally as mm, angle units as rad and mass units as
g.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :secured {BOOLEAN}
- indicates whether the logical table accepts modifications later on
or not.
- :columns {LIST of KEYWORDs}
- list of keywords to identify columns of logical table. A choice of
these keywords (or all) are used to build up corresponding display
tables (different views on the same logical table).
- :columnNames {LIST of STRINGs}
- list of label strings which will appear on top of each column in a
corresponding display table. If this list is omitted or a string for a
certain column is nil, the corresponding column identifier keyword
will appear as column label.
- :keyColumns {LIST of KEYWORDs}
- list of column identifier keyword, which is used as access key to
this logical table. For more information see sd-read-logical-table-row.
- :types {LIST of KEYWORDs}
-
each column must have a type. Depending on this type a units
conversion takes place or not.
The following types are available:
- nil - untyped value (any value)
- :string - only string values
- :number - units independent number (int/float)
- :length - a number measured in length units
(int/float)
- :angle - a number measured in angle units
(int/float)
- :mass - a number measured in mass units
(int/float)
- :units {LIST of KEYWORDs}
- this parameter makes only sense in conjunction with the
:contents parameter below. It states in which units the items
of the :contents list are measured. These units settings can
be overwritten by explicit unit keywords in the contents list (see
below).
- :contents {LIST of LISTs}
- List of rows to fill logical table. Each row is given through a
list of values for each column. Usually a cell item is measured in the
units set through the :units parameter, but this setting can
individually be overwritten by explicit unit statements. Instead of
number one can write
(number units-keyword)
to overwrite the setting in the :units parameter.
- :attribute {LISP OBJECT}
- Any LISP object (single value, struct, list, property list, ...)
can be attached as additional information to this logical table. To
retrieve the value use sd-get-logical-table-attribute.
- Return Value:
-
- t - if logical table could be created successfully
- nil - if creation failed
- Example:
-
(sd-create-logical-table
"Example-Table"
:columns '(:first :second :third :untyped :fifth :sixth)
:columnNames '("String" "Angle" "Length" nil "Mass" "Number")
:keyColumns '(:second :third)
:secured nil
:types '(:string :angle :length nil :mass :number)
:units '(nil :deg :mm nil :kg nil)
:contents '(("Eric" (17.2 :deg) (2 :inch) :test105 (42 :kg) 000)
("Alf" 0.57 22.4 :bla 23.6 111)
("Willie" 1.673 (143.85 :mm) "Eric" 62.3 222)
("Lynn" (33.33 :deg) (0.5 :km) 105 (17.5 :kg) 333)
("Kate" 2.222 (422.2 :mm) 'hugo (23.5 :mg) 444)
("Brian" 3.1415 65.5 15 345.85 555)
("Jake" 1.2354 (15.6 :mm) :foo 42.5 666)
("Raquel" 0.03745 (99.89 :mm) :zip 234.645 777)
("Bill" 0.8765 (126 :mm) :bar 0.42 888)))
SD-DESTROY-LOGICAL-TABLE [function]
(sd-destroy-logical-table table)
- Description:
-
Destroys logical table and all associated display tables.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - if logical table could be destroyed successfully
- nil - if destroy failed
SD-LOGICAL-TABLE-P [function]
(sd-logical-table-p table)
- Description:
-
Checks whether the identifier string table represents a logical
table or not.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - if a logical table with the specified name exists
- nil - otherwise
SD-SECURE-LOGICAL-TABLE [function]
(sd-secure-logical-table table)
- Description:
-
Secures table table against modifications
(change/insert/delete/destroy cells/rows from/to logical table).
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - if logical table could be secured successfully
- nil - if secure failed
SD-UNSECURE-LOGICAL-TABLE [function]
(sd-unsecure-logical-table table)
- Description:
-
Opens logical table and allows modification of cells/rows.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - if logical table could be unsecured successfully
- nil - if unsecure failed
SD-LOGICAL-TABLE-SECURED-P [function]
(sd-logical-table-secured-p table)
- Description:
-
Returns secured status of logical table table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - if logical table is secured or does not exist
(an error message will indicate this).
- nil - if logical table is unsecured.
SD-GET-LOGICAL-TABLE-ATTRIBUTE [function]
(sd-get-logical-table-attribute table)
- Description:
-
Retrieves the attribute value of the logical table table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- value {LISP OBJECT} - value of attribute
- nil - if no value could be retrieved
SD-SET-LOGICAL-TABLE-ATTRIBUTE [function]
(sd-set-logical-table-attribute table value)
- Description:
-
Sets the attribute of the logical table table to
value.
- Parameters:
-
- table {STRING} - identifier string for logical table
- value {LISP OBJECT} - the value of the attribute
- Return Value:
-
- t - if attribute set was successful
- nil - failure
SD-LOGICAL-TABLE-SUSPEND-DISPLAY-TABLE-UPDATES [function]
(sd-logical-table-suspend-display-table-updates table)
- Description:
-
Suspends automatic updates of all associated display tables if a change
in the logical table occurs.
This function is very useful, if the user has to do a sequence of
changes to the logical table. Normally each change will cause an update
of all attached display tables and this might consume a lot of time. In
case of change sequences (write/change) suspend the automatic update, do
the changes and resume automatic update afterwards using the function
sd-logical-table-resume-display-table-updates.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - success
- nil - failure
SD-LOGICAL-TABLE-RESUME-DISPLAY-TABLE-UPDATES [function]
(sd-logical-table-resume-display-table-updates table)
- Description:
-
After a call to this function, each change to the logical table
table will cause an update of all associated display tables. If
the logical table table was changed since automatic update of
display tables was suspended, all attached display tables will be
updated immediately.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - success
- nil - failure
SD-LOGICAL-TABLE-UPDATE-DISPLAY-TABLES [function]
(sd-logical-table-update-display-tables table)
- Description:
-
If the automatic update of attached display tables is suspended for the
logical table table, this call causes an update of all associated
display tables. The function does not change the automatic update
behavior.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t - success
- nil - failure
SD-LOGICAL-TABLE-NEED-DISPLAY-TABLE-UPDATE-P [function]
(sd-logical-table-need-display-table-update-p table)
- Description:
-
Returns whether any modification of the logical table table has
taken place while updates of corresponding display tables was suspended.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- t
- if display tables need to be updated. See sd-logical-table-update-display-tables
on how to update display tables, or sd-logical-table-resume-display-table-updates
how to enable automatic display table updates including a possibly
necessary update.
- nil - nothing has changed in logical table => no update
of display tables necessary.
SD-CHANGE-LOGICAL-TABLE-CONTENTS [function]
(sd-change-logical-table-contents table
:units list-of-unit-keywords
:contents contents-list)
- Description:
-
Changes the contents of the logical table. The items must be of the same
type as requested from the logical table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :units - same meaning as in sd-create-logical-table.
- :contents - same meaning as in sd-create-logical-table.
- Return Value:
-
- t - success
- nil - failure
How to specify a certain row in a logical table
All functions which need to specify a certain row in a logical table can
do this in one of three ways:
- a row number:
:row row-number {NUMBER from 0 to (# of Rows - 1)}
- value(s) for the key column(s):
:keyValues list {LIST of VALUES}
- a property list containing pairs of column identifier keyword and
value:
:pList list {PROPERTIY LIST}
If more rows match the value(s) of :keyValues or :pList
the first row found is returned or used to retrieve the cell value.
The values for :keyValues must be specified in the same
order as the key columns were defined in sd-create-logical-table.
The value for :pList is a property list of any column - value
pair combinations. The column keywords must fit to the columns of the
logical table and the value must be of the type as the column is
defined.
Values for columns passed in :keyValues or :pList which
are measured in units are considered to be in internal units. That
means values for columns of type :length are measured in
:mm, of type :angle in :rad and of type
:mass are measured in :g.
SD-INSERT-LOGICAL-TABLE-ROW [function]
(sd-insert-logical-table-row table
:position position
:row row-number
:keyValues list-of-values
:pList property-list
:overwriteIfExists boolean
:units list-of-unit-keywords
:contents contents-list)
- Description:
-
Funtion to insert a new row or to replace an existing row in logical
table table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :position {KEYWORD [:bottom]}
-
indicates where the new row should be inserted.
The keyword can be one of the following:
- :top
- :bottom
- :above-specific
- :below-specific
The keywords :top and :bottom are
self-explaining. :above/:below-specific means, that the new
row will be inserted above/below the row which is specified through
one of :row, :keyValues or :pList. If
this specific row is not found, the new row will be inserted at the
end (same as :bottom).
- :row, :keyValues, :pList
- see "How to specify a
certain row in a logical table"
- :overwriteIfExists {BOOLEAN}
-
boolean value to indicate, whether the row specified through one of
:row, :keyValues or :pList shall be
overwritten or not.
This parameter controls the behavior of this function as follows:
- nil - the new row is inserted as specified in parameter
:position.
- t and the specific row exists:
- the new row values will overwrite the old row values.
- t and the specific row does not exist:
- the new row will be inserted corresponding to the value of
:position if this value is either :top or
:bottom. But if the value of :position was set
to :above/:below-specific this setting is ignored and the
new row will be inserted at the end.
- :units {LIST of KEYWORDs}
- same meaning as in sd-create-logical-table.
- :contents {LIST}
- same meaning as in sd-create-logical-table except that
here the contents of only one row can be passed (i.e. a single list of
cell items).
- Return Value:
-
- t - success
- nil - failure
SD-REMOVE-LOGICAL-TABLE-ROW [function]
(sd-remove-logical-table-row table
:row row-number
:keyValues list-of-values
:pList property-list)
- Description:
-
Removes one particular row or all rows from logical table table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :row {NUMBER or KEYWORD} - a specific row number or the
keyword :all
- :keyValues, :pList
- see "How to specify a
certain row in a logical table"
- Return Value:
-
- t - success
- nil - failure
SD-WRITE-LOGICAL-TABLE-CELL [function]
(sd-write-logical-table-cell table
:row number
:keyValues list-of-values
:pList property-list
:column column-identifier
:value value)
- Description:
-
Changes the contents of a single cell of the logical table. The new
value must be of the defined column type and has to be passed in
internal units.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :row, :keyValues, :pList
- see "How to specify a
certain row in a logical table"
- :column {KEYWORD}
- Keyword of column to identify cell where to write to.
- :value {LISP OBJECT}
- cell value. If :column values are measured in units, this
value must be passed in internal units.
- Return Value:
-
- t - success
- nil - failure
SD-READ-LOGICAL-TABLE-CELL [function]
(sd-read-logical-table-cell table
:row number
:keyValues list-of-values
:pList property-list
:column column-identifier
:units unit-type)
- Description:
-
Retrieves the item of a certain cell which is specified through a column
identifier keyword and through one of :row, :keyValues
or :pList.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :row, :keyValues, :pList
- see "How to specify a
certain row in a logical table"
- :column {KEYWORD}
- column identifier keyword to identify the right column in the
logical table where the cell should be read from.
- :units {KEYWORD [:external]}
-
Possible values are:
This keyword determines, whether a value which is measured in
units is returned in internal or external units.
- Return Value:
-
- cell {LISP OBJECT} - contents of cell
- nil - failure
SD-READ-LOGICAL-TABLE-ROW [function]
(sd-read-logical-table-row table
:row row-number
:keyValues list-of-values
:pList property-list
:units unit-type)
- Description:
-
Retrieves the items of a certain row and returns a property list of
pairs of column identifier keywords and values.
- Parameters:
-
- table {STRING} - identifier string for logical table
-
- For more information on the parameters see sd-read-logical-table-cell
- Return Value:
-
- row {PROPERTY LIST}
- list of column-keyword and value pairs of all
columns in logical table.
- nil - failure
SD-READ-LOGICAL-TABLE-COLUMN [function]
(sd-read-logical-table-column table
:column column-identifier
:units unit-type)
- Description:
-
Retrieves the items of a certain column.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :column {KEYWORD} - keyword of column of which the values
should be returned
- :units {KEYWORD [:external]}
-
Possible values are:
This keyword determines, whether a value which is measured in
units is returned in internal or external units.
- Return Value:
-
- column-values {LIST} - list of all values of the specified
column (as copy).
- nil - failure
SD-INSERT-LOGICAL-TABLE-COLUMN [function]
(sd-insert-logical-table-column table
:column column-identifier
:columnName column-name
:type column-type
:initialValue a-value
:unit a-unit-keyword)
- Description:
-
Inserts a new column with the identifier
column-identifier into the logical table table.
If a column with the same identifier already exists, the insertion of
this column fails.
The new column can be filled with an initial value passed through
:initialValue. That means all existing rows of the
logical table will have this value for this column.
A call to this function will not affect any attached display
tables.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :column {KEYWORD} - keyword to identify new column
- :columnName {STRING [column-identifier-keyword]}
- a label string which will appear on top of the column in a
corresponding display table. If this string is omitted, the column
identifier keyword will appear as column label.
- :type {KEYWORD}
- type of new column. For more information see sd-create-logical-table.
- :initialValue {LISP OBJECT}
- value with which the new column will be filled initially. The type
of the value must fit to the type of the column.
- :unit {KEYWORD}
- if the new column values are measured in units, this keyword
indicated in which units the :initialValue is measured.
- Return Value:
-
- t - success
- nil - failure
SD-GET-LOGICAL-TABLE-NUMBER-OF-ROWS [function]
(sd-get-logical-table-number-of-rows table)
- Description:
-
Returns the current number of rows of the logical table table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- number {NUMBER} - number (count) of rows in table
- nil - failure
SD-GET-LOGICAL-TABLE-COLUMN-IDENTIFIERS [function]
(sd-get-logical-table-column-identifiers table)
- Description:
-
Returns a list of column identifier keywords of logical table
table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- column-identifiers {LIST} - list of column identifier
keywords
-
- NOTE:
- The list which this function returns is the original list of
the logical table and NOT A COPY. DON'T modify this
list destructively (using nconc, rplaca
...)!!!
- nil - failure
SD-GET-LOGICAL-TABLE-KEY-COLUMN-IDENTIFIERS [function]
(sd-get-logical-table-key-column-identifiers table)
- Description:
-
Returns a list of key column identifier keywords of logical table
table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- key-column-identifiers {LIST} - list of key column
identifier keywords
- nil - failure or no key columns specified
SD-GET-LOGICAL-TABLE-COLUMN-TYPE [function]
(sd-get-logical-table-column-type table :column column-identifier)
- Description:
-
Returns the type of the specified column.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :column {KEYWORD} - keyword to identify column
- Return Value:
-
- column-type {KEYWORD}
- column type as it was passed as part of the columns list in
sd-create-logical-table
- nil - untyped column or failure
SD-GET-LOGICAL-TABLE-TYPES [function]
(sd-get-logical-table-types table)
- Description:
-
Returns a list of column type keywords of logical table table.
- Parameters:
-
- table {STRING} - identifier string for logical table
- Return Value:
-
- column-types {LIST} - column type list as it was passed to
sd-create-logical-table
-
- NOTE:
- The list which this function returns is the original list of
the logical table and NOT A COPY. DON'T modify this
list destructively (using nconc, rplaca
...)!!!
- nil - failure
SD-GET-LOGICAL-TABLE-COLUMN-NAME [function]
(sd-get-logical-table-column-name table :column column-identifier)
- Description:
-
Returns the name of the specified column.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :column {KEYWORD} - keyword to identify column
- Return Value:
-
- column-name {STRING}
- column name as it was passed as part of the columns list in
sd-create-logical-table
- nil - untyped column or failure
SD-RENAME-LOGICAL-TABLE-COLUMN [function]
(sd-rename-logical-table-column table
:oldColumn old column-identifier
:oldColumnName old Column Name
:newColumn new column-identifier
:newColumnName new Column Name)
- Description:
-
Renames the column identifier from oldColumn to newColumn or the column
name from oldColumnName to newColumnName depending on the arguments
passed by the user.
- Parameters:
-
- table {STRING} - identifier string for logical table
- :oldcolumn {KEYWORD} - keyword to identify old Column
- :oldColumnName {STRING} - identifier string for old Column
Name
- :newColumn {KEYWORD} - keyword to identify old Column
- :newColumnName {STRING} - identifier string for new Column
Name
- Return Value:
-
- t - success
- nil - failure
Display Table
SD-CREATE-DISPLAY-TABLE
(sd-create-display-table table-name
:tableTitle table-title
:mapToggle Toggle-Button-Widget-Name
:logicalTable table-identifier
:columns list-of-column-identifiers
:applyColumns list-of-column-identifiers
:keyColumnsApplyToken keyword
:keyColumnsApplyUnits keyword
:displayWidth width
:displayHeight height
:columnSortUI boolean
:filterStatusLine boolean
:customTopForm boolean
:customBottomForm boolean
:bottomLine buttons
:customButtonLabel label-string
:customButtonAction action
:entryAlignment list-of-keywords
:formatFunctions list-of-function-symbols
:selectionMode mode
:selectionAction action
:applyAction action
:doubleClickAction action
:editCellCheckFunction check-function
:afterEditAction action
:afterApplyBehavior behavior
:helpAction action
:helpPageId Help-Page-Identifier)
- Description:
-
This function creates a display table. If a display table with the same
table-name exists, the old table will be destroyed and
overwritten by the new display table.
Use sd-show-display-table to show a
display table on the screen and sd-hide-display-table to hide the table
again.
- Parameters:
-
- table-name {STRING} - string to identify table
- :tableTitle {STRING [table-name]}
- String which is displayed between pin and close button.
- :mapToggle {STRING}
- If this toggle button widget is specified the button will reset if
the user closes the display table either via the top right close
button or via the close button in the bottom line (if available).
- :logicalTable {STRING [""]}
- string to identify corresponding logical table. The data which
should be displayed is retrieved from this table.
- :columns {LIST of KEYWORDs}
- list of column kewords. The keywords must be identical to the
keywords of the logical table. With this parameter it is possible to
create more display tables with different views (restriction on
certain columns) of the same logical table.
- :applyColumns {LIST of
KEYWORDs}
- list of column keywords. Only relevant if :selectionMode
is set to :single-row or :multiple-rows and
:applyAction to :default or
:default-tokens. In these cases the value(s) behind the
applyColumn cells of the selected row(s) is (are) put into the input
buffer. For more information see parameter :applyAction.
- :keyColumnsApplyToken {KEYWORD}
- A value for this parameter is only relevant, if :applyAction is set to
:default-tokens.
If a keyword (e.g. :this_keyword) is specified for this
parameter, the following additional two tokens will be put into the
input buffer just behind the tokens generated by the apply action:
:this_keyword '(:columnX Value :columnY Value
...)
where the second token is the property list of the key columns, i.e.
list of key column identifier, value, identifier, value ... If values
of this list are measured in units, the parameter
:keyColumnsApplyUnits decides, whether the values are passed
in internal (:mm, :rad or :g) or external units.
- :keyColumnsApplyUnits {KEYWORD [:external]}
-
decides, whether the values of the key column property list (see
parameter :keyColumnsApplyToken above) which are measured
in units are given in internal or external units.
Possible values are:
- :internal - internal units
- :external - external units
- :displayWidth {KEYWORD, NUMBER or LIST [:automatic]}
-
Possible values are:
- :automatic
the function tries to resize the scrolled window to fit all rows
and columns without creating scrollbars. The default size range is
between 100 and 600 pixels.
- Number - Pixel value
the scrolled window will have exactly this width.
- (minWidth maxWidth)
the function tries to resize the scrolled window to fit all rows
and columns without creating scrollbars in the range between
minWidth and maxWidth.
- :displayHeight {KEYWORD, NUMBER or LIST [:automatic]}
-
Possible values are:
- :automatic
the function tries to resize the scrolled window to fit all rows
and columns without creating scrollbars. The default size range is
between 80 and 500 pixels.
- Number - Pixel value
the scrolled window will have exactly this height.
- (minHeight maxHeight)
the function tries to resize the scrolled window to fit all rows
and columns without creating scrollbars in the range between
minHeight and maxHeight.
- :columnSortUI {BOOLEAN}
- creates an user interface above the table data area which allows
the user to sort the table contents interactively by a typed column.
The Reverse button allows sort in the reverse order.
- :filterStatusLine {BOOLEAN [t]}
- creates a non editable text widget below the display lists which
contains the current active table filter(s).
Example contents: Name > "C" & 10 < Length < 100
- :customTopForm {BOOLEAN}
- creates an additional empty area above the table which can
be filled with a grid area of any size which itself can contain
any number of additional controls. For more information on how to
create UICT controls see here. Use
sd-get-display-table-custom-top-form
to retrieve the name of the area to be used as parent of a grid
area.
- :customBottomForm {BOOLEAN}
- creates an additional empty area below the table which can
be filled with a grid area of any size which itself can contain
any number of additional controls. For more information on how to
create UICT controls see here. Use
sd-get-display-table-custom-bottom-form
to retrieve the name of the area to be used as parent of a grid
area.
- :bottomLine {KEYWORD [:apply-close-help]}
-
keyword which determines what buttons should be created in the
bottom line.
Possible values are:
- :apply-close-help
- :apply-custom-close-help
- :help
- nil
- :customButtonLabel {STRING [" "]}
- if :bottomLine is set to
:apply-custom-close-help an additional button between
Apply and Close is created. This parameter sets the
label string of this button.
- :customButtonAction {LISP-form}
- the LISP-form which should be evaluated when the user hits the
custom button in the bottom line.
- :entryAlignment {LIST of
KEYWORDs}
- determines whether the column entries are left or right aligned.
For each column specified in :columns
you can set either :left (default) or :right. If you
don't specify a value for this parameter, all displayed columns will
be left aligned.
- :formatFunctions {LIST of
SYMBOLS}
-
this parameters allows you to determine the display value of the
real logical table value by invocation of a format function. The
Integration Kit provides you with 6 predefined format functions:
- sd-display-table-format-1-digit
- sd-display-table-format-2-digits
- ...
- sd-display-table-format-6-digits
These functions can be used for any column of type
:number, :length, :angle or
:mass. These format functions convert the real value form
the logical table to a display value with exactly N (1 - 6)
digits after the decimal point. Missing digits will be filled up
with zeros.
To create your own format function you have to define a
function with the following specification:
(defun my-own-format-function (logical-table-name
real-value
row-number
column-identifier)
...
;; has to return a string!
)
That means your format function has to accept exactly four
parameters and has to return a string value. This string will
appear in the display table. With automatic invocation of your format
function, the function will be supplied with the necessary parameters.
Input parameters:
- logical-table-name {STRING}
- name of the logical table where the real value is taken
from.
- real-value {any type}
- exact value retrieved from the logical table. Values in unit
columns are measured in internal units.
- row-number {NUMBER}
- logical table row number where the real-value is
taken from.
- column-identifier {KEYWORD}
- logical table column identifier keyword where the
real-value is taken from.
Output value:
- display-string {STRING}
- value which will be displayed in the display table.
Example:
(defun format-length-2-digits (ltab-name real-length row column)
(declare (ignore ltab-name row column))
;; those parameters are not necessary in this format function
(if (numberp real-length)
(format nil "~,2F" (sd-sys-to-user-units :length real-length))
"value of unexpected type"))
- :selectionMode {KEYWORD
[:single-row]}
-
determines the selection method of the display table.
The following keywords are possibile:
- :single-cell
- :single-row
- :multiple-rows
- :selectionAction {Function
Symbol}
- Symbol of a function which will be called as soon as one cell, one
row or more rows were selected. The function has to be defined
before you create the display table. The function has to accept
exactly one parameter. With invocation of this function the name of
the table will be passed as parameter to this function.
- :applyAction {KEYWORD or quoted
LISP-form [:default-tokens]}
-
the following values are possible:
- nil
no action occurs if the user hits the apply button or double
clicks an item.
-
:default
depending on :selectionMode the following
item(s) is (are) put into the input buffer:
- :single-cell set as :selectionMode
the value of this cell
-
:single-row set as :selectionMode
- single column specified in :applyColumns:
This item:
Item
- multiple columns specified in
:applyColumns:
List of all :applyColumns items:
(Item Item ...)
-
:multiple-rows set as :selectionMode
- single column specified in :applyColumns:
List of item(s) of this :applyColumns:
(Item) or (Item Item
...)
- multiple columns specified in
:applyColumns:
List of column item lists:
((ColA-Item) (ColB-Item) ...) or
((ColA-Item ColA-Item ...)
(ColB-Item ColB-Item ...) ...)
-
:default-tokens
depending on :selectionMode the following
item(s) is (are) put into the input buffer:
- :single-cell set as :selectionMode
:columnIdentifier cellValue
- :single-row set as :selectionMode
:applyColumnIdentifierA Value
:applyColumnIdentifierB Value ...
- :multiple-rows set as :selectionMode
:applyColumnIdentifierA (ValueX ValueY
...) ...
- LISP-form
the custom apply function can retrieve the selected item(s) using
the function sd-get-display-table-selection.
- :doubleClickAction
{KEYWORD or function}
-
the following values are possible:
- nil
the :applyAction will be executed for the selected cell,
row or rows
- :edit-cell
only valid if :selectionMode is set to
:single-cell.
Pops up a little edit box next to the cell with the current cell
value as contents. Now the user is allowed to interactively edit
that value. To terminate editing, hit the Return key
(= "OK") in the edit field, or the Close button
(= "Cancel") of the edit box. See :afterEditAction for more
information on which action takes place after hitting the
Return key.
Entering values which don't fit to the type of the cell/column
will be rejected automatically.
- function {Function Symbol}
Symbol of a function which will be called as soon as a double
click occured on one cell, one or more rows. The function has to
be defined before you create the display table. The
function has to accept exactly one parameter. With invocation of
this function the name of the table will be passed as parameter to
this function.
- :editCellCheckFunction
{function}
-
the purpose of this function is to determine whether the current
selected cell can be edited by the user or not. Therefore this
option applys only for tables with :selectionMode set to
:single-cell. If you omit this parameter, all cells in your
table will be editable.
The function could be either a lambda expression or a symbol of a
function which takes exactly three parameters and which returns
:ok or :error. In detail:
- Parameters:
-
- table-name - name of the display table
- row - row number of the selected cell in the
logical table
- column - column keyword of the selected cell
- Return Value:
-
- :ok - cell can be edited
- :error - cell can not be edited (no error
message)
- (values :error "Error Message")
- the cell can not be edited and the "Error Message"
will be displayed to inform the user about this.
- Example:
-
:editCellCheckFunction #'(lambda (table-name row column)
(cond
((eq column :first)
(values :error "You can't edit cells in the first column."))
((and (= row 4) (eq column :second))
:error)
(t ;; in all other cases
:ok)))
- :afterEditAction {KEYWORD or
function}
-
this paramter applys only for tables with :selectionMode set to
:single-cell.
The default action after editing a cell (hitting the Return
key) is to simply hide the cell edit field and nothing else. If you
want to handle the new cell value, you can set one of the following
for this parameter:
- :modify-ltab-value
- the new cell value replaces the cell value in the logical
table accordingly. This replacement causes an automatic update of
all display tables belonging to this logical table.
- function
-
this function will be called with exactly two parameters:
table-name and new cell value. Here you can do
your action based on the new entered cell value.
- Example:
-
:afterEditAction #'(lambda (table-name new-value)
(format t "~%The new cell value is ~S" new-value))
- :afterApplyBehavior {KEYWORD or quoted LISP-form
[:force-close]}
-
controls the closing behavior of the table dialog shell.
This parameter may have one of these values:
- nil
nothing happens after the user has double clicked an item or
clicked the Apply button.
- :force-close
the table dialog shell will disappear from the screen even if the
Pin is set.
- :close-if-not-pinned
if the Pin is not set, the table dialog shell will disappear. If
the Pin is set, the dialog shell will stay on the screen.
- LISP-form
this customer defined LISP function will be evaluated after an
Apply occured.
- :helpAction {quoted
LISP-form}
- LISP form which will be executed when the users hits the help
button of this display table
- :helpPageId {KEYWORD or STRING [:default]}
- name of help page which will be searched in the "pesd" help
context, if the user hits the help button of the table.
If you pass :default as value for this parameter a press on
the help button will cause a lookup of the help page with the name
"table-name_DS" where all possible "-" in
table-name are replaced with "_".
- Return Value:
-
- t - if display table could be created successfully
- nil - if creation failed
- Example:
-
(defun example-table-selection-action (table)
(format t "~%Row selected in table ~S." table))
(sd-create-display-table "EXAMPLE-TABLE"
:logicalTable "Example-Table"
:tableTitle "Example Table"
:columns '(:first :second :third :fifth :sixth)
:columnSortUI t
:bottomLine :apply-custom-close-help
:customButtonLabel "Show"
:entryAlignment '(:left :right :right :right :left)
:formatFunctions '(nil sd-display-table-format-3-digits
format-length-2-digits)
;; for definition of format-length-2-digits see :formatFunctions
:applyColumns '(:first :third)
:applyAction :default-tokens
:afterApplyBehavior :close-if-not-pinned
:keyColumnsApplyToken :keyValues
:selectionMode :single-row
:selectionAction #'example-table-selection-action
:helpAction '(sd-display-url
(format nil "~A/help/osdm/Common/documentation/integration_kit/home.html"
(sd-inq-install-dir))))
SD-DESTROY-DISPLAY-TABLE [function]
(sd-destroy-display-table table)
- Description:
-
Destroys a display table with the identifier string table
- Parameters:
-
- table {STRING} - the table name
- Return Value:
-
- t - if display table could be destroyed successfully
- nil - if destroy failed
SD-DISPLAY-TABLE-P [function]
(sd-display-table-p table)
- Description:
-
Checks whether the identifier string table represents a display
table or not.
- Parameters:
-
- table {STRING} - the table name
- Return Value:
-
- t - if a display table with the specified name exists
- nil - otherwise
SD-GET-DISPLAY-TABLE-LOGICAL-TABLE [function]
(sd-get-display-table-logical-table table)
- Description:
-
Returns the name of the logical table where the display table
table gets its data from.
- Parameters:
-
- table {STRING} - the table name
- Return Value:
-
- logical-table-name {STRING} - name of logical table if
display table exists
- NOTE:
This string is the original string which is kept in the display table
data structure and NOT A COPY. DON'T modify this string
destructively!!!
- nil - otherwise
SD-GET-DISPLAY-TABLE-COLUMNS [function]
(sd-get-display-table-columns table)
- Description:
-
Returns the list of column identifiers as the display table was created
with.
- Parameters:
-
- table {STRING} - the table name
- Return Value:
-
- columns {LIST of KEYWORDs} - the columns of the display
table
- NOTE:
This list is the original list which is kept in the display table data
structure and NOT A COPY. DON'T modify this list
destructively!!!
- nil - otherwise
SD-GET-DISPLAY-TABLE-SELECTION [function]
(sd-get-display-table-selection table :units unit type)
- Description:
-
Retrieves the data of the last selection in display table
table out of the corresponding logical table. The value for the
parameter :units decides, whether values measured in units are
returned in internal or external units.
- Parameters:
-
- table {STRING} - the table name
- :units {KEYWORD [:external]}
-
possible values:
- :external - external units
- :internal - internal units
- Return Value:
-
depending on :selectionMode the
following list will be returned:
- :single-cell set as :selectionMode:
a list of the selected row number in the corresponding logical table,
the column identifier keyword and the cell value:
(Row# :columnIdentifier cellValue)
- :single-row set as :selectionMode:
a list of the selected row number in the corresponding logical table
(as list (to be consistent with multiple rows)) and the property list
(column identifier - value pairs) of all columns belonging to the
corresponding logical table:
((Row#) (:columnIdentifierA ValueA
:columnIdentifierB ValueB ...))
- :multiple-rows set as :selectionMode:
a list of a list of selected row numbers in the corresponding logical
table and the property list of all columns belonging to the
corresponding logical table. The values are lists of all row
items:
((RowX# RowY# ...) (:columnIdentifierA
(ValueAa ValueAb ...) :columnIdentifierB
(ValueBa ValueBb ...) ...))
SD-SET-DISPLAY-TABLE-SELECTION [function]
(sd-set-display-table-selection table
:mode mode
:column column-identifier-keyword
:row row-number
:keyValues list-of-values
:pList property-list
:callAction call-action)
- Description:
-
Sets the current selected cell or row(s) in display table table.
In display tables with :selectionMode set to
:single-cell or :single-row you can only
replace the current selection. In :multiple-rows display
tables you can add other rows to the currently selected ones or
you can replace the whole selection.
- Parameters:
-
- table {STRING} - the table name
- :mode {KEYWORD [:replace]}
-
possible values:
- :replace - specified cell/row will replace any other
currently selected cell/row(s)
- :add - adds row to the currently selected row(s) (only
valid for :multiple-rows tables)
- :column {KEYWORD}
- only valid for display tables with :selectionMode set to
:single-cell. Use this parameter in combination with the
following to determine the cell you want to select.
- :row, :keyValues, :pList
- Specification of a row in the corresponding logical table (!). For
more information on the values for these parameters see "How to specify a certain row in a
logical table"
- :callAction {BOOLEAN [t]}
- If a :selectionAction is
specified for this display table and this parameter is set to
t then the function passed for :selectionAction is
called immediately after the row is selected.
- Return Value:
-
- t - success
- nil - failure
- Example:
-
(sd-set-display-table-selection "EXAMPLE-TABLE"
:pList '(:first "Alf"))
SD-RESET-DISPLAY-TABLE-SELECTION [function]
(sd-reset-display-table-selection table
:column column-identifier-keyword
:row row-number
:keyValues list-of-values
:pList property-list)
- Description:
-
Resets the current selection of a specific cell, row or the whole table.
- Parameters:
-
- table {STRING} - the table name
- :column {KEYWORD}
- used in combination of the next parameter to determine the
specific cell in display tables with :selectionMode set to
:single-cell.
- :row {NUMBER or SYMBOL [t]}
- if you pass t for this parameter, all cells and rows of
the display table will be deselected. In :multiple-rows display
tables you can deselect specific rows by passing either the number of
the row in the corresponding logical table (!) or by specifying one of
the other two parameters.
- :keyValues, :pList
- Specification of a row in the corresponding logical table (!). For
more information on the values for these parameters see "How to specify a certain row in a
logical table".
- Return Value:
-
- t - success
- nil - failure
SD-SCROLL-DISPLAY-TABLE-SELECTION [function]
(sd-scroll-display-table-selection table
:column column-identifier-keyword
:row row-number)
- Description:
-
Scrolls to specific column or row, and make them visible in client area
of the display table.
- Parameters:
-
- table {STRING} - the table name
- :column {KEYWORD}
- used in combination of the next parameter to determine the
specific cell in display tables
- :row {NUMBER}
- Specification of a row in the corresponding logical table (!). For
more information on the values for these parameters see "How to specify a certain row in a
logical table"
- Return Value:
-
- t - success
- nil - failure
SD-EDIT-DISPLAY-TABLE-CELL [function]
(sd-edit-display-table-cell table
:selected flag
:column column-identifier-keyword
:row row-number
:keyValues list-of-values
:pList property-list)
- Description:
-
This function can be used to initiate the interactive editing of a
specific cell in a display table with :selectionMode set to
:single-cell.
Note that the display table must be visible on the screen and in
addition to that the cell must be visible in the display table too. If
the cell is invisible due to an active filter, this function will
fail.
The parameters :editCellCheckFunction and
:afterEditAction of your call
to sd-create-display-table as you created your display table
apply to this call as well.
- Parameters:
-
- table {STRING} - the table name
- :selected {BOOLEAN}
- if this parameter is set to t, the currently selected
cell will be edited. If no cell was selected before, an error message
will occur. If you omit this parameter, you have to specify the cell
to edit with the following parameters.
- :column {KEYWORD}
- used in combination of the next parameter to determine the
specific cell in the display table.
- :row, :keyValues, :pList
- Specification of a row in the corresponding logical table (!). For
more information on the values for these parameters see "How to specify a certain row in a
logical table".
- Return Value:
-
- t - success
- nil - failure
SD-SORT-DISPLAY-TABLE [function]
(sd-sort-display-table table
:column column-identifier
:reverse boolean)
- Description:
-
Sorts the values displayed in the display table table or not. If
nil is passed for :column the table is displayed
unsorted, that means the order of the logical table is taken.
This call has no effect on the corresponding logical table. If the
display table contains the sort UI (:columnSortUI is set to
t) the sort button, the option menu and the reverse button are
set accordingly. If the table displays the data unsorted, the sort
button will be reset.
- Parameters:
-
- table {STRING} - the table name
- :column {KEYWORD or BOOLEAN} - the column to sort by or
nil
- :reverse {BOOLEAN} - reverse order or not
- Return Value:
-
- t - if display table could be sorted successfully
- nil - if sort failed
SD-RESET-DISPLAY-TABLE-SORT [function]
(sd-reset-display-table-sort table)
- Description:
-
Resets the display table sort to the order which is given through the
corresponding logical table.
- Parameters:
-
- table {STRING} - the table name
- Return Value:
-
- t - success
- nil - failure
SD-FILTER-DISPLAY-TABLE [function]
(sd-filter-display-table table
:column column-identifier-keyword
:test1 test-keyword1
:value1 value1
:test2 test-keyword2
:value2 value2)
- Description:
-
Filters the contents of display table table in regard to
:test1 / :value1 and/or :test2 /
:value2. The passed values must be of the same type as
:column. Values measured in units must be passed in
internal units, i.e. in mm for :length, in
rad for :angle and in g for
:mass.
To specify a range you have to pass :test1 /
:value1 and :test2 / :value2.
To specify a semi bounded item list you can specify either the
combination :test1 / :value1 or :test2
/ :value2.
It is possible to do a hidden filtering on columns which are not part
of the display table but part of the logical table. Here you can pass
the column identifier of a logical table column and the contents of the
display table will be filtered accordingly. This filter will not show up
in the filter status line.
- Parameters:
-
- table {STRING} - the table name
- :column {KEYWORD} - column identifier keyword of column
which shall be filtered
- :test1 {KEYWORD} - one of the following:
-
- :less
- :not-greater
- :greater
- :not-less
- :equal
- :not-equal
- :value1 {STRING or LONG-FLOAT} - value for
:test1
- :test2 {KEYWORD} - see :test1
- :value2 {STRING or LONG-FLOAT} - value for
:test2
- Return Value:
-
- t - success
- nil - failure
SD-RESET-DISPLAY-TABLE-FILTER [function]
(sd-reset-display-table-filter table
:column column-identifier-keyword)
- Description:
-
Resets the filter for a specific column or for the whole table. Pass
t to reset all active filters of table.
- Parameters:
-
- table {STRING} - the table name
- :column {KEYWORD or BOOLEAN} - the column to reset or
t for the whole table
- Return Value:
-
- t - success
- nil - failure
SD-ALLOW-DISPLAY-TABLE-USER-FILTER [function]
(sd-allow-display-table-user-filter table
:column column-identifier-keyword
:allow flag)
- Description:
-
Enables or disables access to the column filter user interface for a
specific column or the complete table. Disabled columns display the
column header button greyed out.
Note even if a column is disabled for a user to filter its
contents you can still apply filters in a programmatic way using the
function sd-filter-display-table.
- Parameters:
-
- table {STRING} - the table name
- :column {KEYWORD or BOOLEAN}
- the column keyword for a specific column or t for the
whole table to enable or disable user access to the filter user
interface
- :allow {BOOLEAN [t]}
- pass t to enable the specified column or whole table or
nil to disable the column(s).
- Return Value:
-
- t - success
- nil - failure
SD-SET-DISPLAY-TABLE-TITLE [function]
(sd-set-display-table-title table
:title title-string)
- Description:
-
Sets the title of the display table table shown between pin and
close buttons in the top line of the table.
- Parameters:
-
- table {STRING} - the table name
- :title {STRING} - the new table title
- Return Value:
-
- t - success
- nil - failure
SD-SET-DISPLAY-TABLE-COLUMN-TITLE [function]
(sd-set-display-table-column-title table
:column column
:title title-string)
- Description:
-
Sets the title of the column specified with column in display
table table.
- Parameters:
-
- table {STRING} - the table name
- :column {KEYWORD} - the column identifier of a visible
column
- :title {STRING} - the new column title
- Return Value:
-
- t - success
- nil - failure
SD-SET-DISPLAY-TABLE-COLORS [function]
(sd-set-display-table-colors table
:columnSeparators columnSeparators
:columnSeparatorColor columnSeparatorColor
:rowColors rowColors
:rowColor1 rowColor1
:rowColor2 rowColor2)
- Description:
-
Enables column separator lines and/or alternating row colors and allows
you to specify which colors should be used.
- Parameters:
-
- table {STRING} - the table name
- :columnSeparators {BOOLEAN}
- Flag to indicate whether column separator lines should be drawn or
not
- :columnSeparatorColor {STRING or t}
- Color of separators if column separators are drawn. The color
needs to be specified in "#RRGGBB" notation. If you set this parameter
to T the default color will be used.
- :rowColors {BOOLEAN}
- Flag to indicate whether alternating rows should be drawn with
different background colors or not
- :rowColor1 {STRING or t}
- If rowColors is set to T, all rows with odd row
numbers (Rows 1, 3, 5, ...) will be drawn in this color. The color has
to be specified in "#RRGGBB" notation. If you set this parameter to
T the default color will be used.
- :rowColor2 {STRING or t}
- If rowColors is set to T, all rows with even row
numbers (Rows 2, 4, 6, ...) will be drawn in this color. The color has
to be specified in "#RRGGBB" notation. If you set this parameter to
T the default color will be used.
- Return Value:
-
- t - success
- nil - failure
- Example:
-
Even rows in cyan with column separators in default color:
(sd-set-display-table-colors "EXAMPLE-TABLE"
:columnSeparators t
:columnSeparatorColor t
:rowColors t
:rowColor2 "#00FFFF")
SD-SET-DISPLAY-TABLE-HELP-ACTION [function]
(sd-set-display-table-help-action table
:action help-form)
- Description:
-
Redefines the action behind the help button of display table
table.
- Parameters:
-
- table {STRING} - the table name
- :action {quoted LISP-from} - action which will be executed
when the user hits the help button
- Return Value:
-
- t - success
- nil - failure
- Example:
-
(sd-set-display-table-help-action "EXAMPLE-TABLE"
:action '(sd-display-url
(format nil "~A/help/osdm/Common/documentation/integration_kit/home.html"
(sd-inq-install-dir))))
SD-SET-DISPLAY-TABLE-HELP-PAGE [function]
(sd-set-display-table-help-page table
:pageId help-page-name)
- Description:
-
Used to define the help page which should be called when the user hits
the help button.
- Parameters:
-
- table {STRING} - the table name
- :pageId {STRING or KEYWORD}
- name of the help page in "pesd" context or :default. If
you pass :default, then a click on the tables help button
will popup a help page with the name "table-name_DS" where all
"-" characters in table-name will be replaced by "_"
characters.
- Return Value:
-
- t - success
- nil - failure
SD-GET-DISPLAY-TABLE-CUSTOM-TOP-FORM [function]
(sd-get-display-table-custom-top-form table)
- Description:
-
Retrieves the name of the custom top area if the display table was
created with one. See sd-create-display-table for more
information.
Use this name as parent for a grid area to be created as child of
this custom top area. See the UICT
manual for more information on areas, grid areas and controls.
- Parameters:
-
- table {STRING} - the table name
- Return Value:
-
- name {STRING} - the custom top area name
- nil - no custom top area for table available
SD-GET-DISPLAY-TABLE-CUSTOM-BOTTOM-FORM [function]
(sd-get-display-table-custom-bottom-form table)
- Description:
-
Retrieves the name of the custom bottom area if the display table was
created with one. See sd-create-display-table for more
information.
Use this name as parent for a grid area to be created as child of
this custom bottom area. See the UICT
manual for more information on areas, grid areas and controls.
- Parameters:
-
- table {STRING} - the table name
- Return Value:
-
- name {STRING} - the custom bottom area name
- nil - no custom bottom area for table available
SD-SHOW-DISPLAY-TABLE [function]
(sd-show-display-table name :position position)
- Description:
-
This function is used to display display tables at certain positions on
the screen.
- Parameters:
-
- name {STRING} - Name of the display table.
- :position {quoted LIST}
-
Specification of a certain location on the screen. If you don't pass
a value, the display table will appear in the upper left corner of
the screen.
If the display table contains a pin button and this button is
pressed (that means the display table is pinned), this parameter
will be ignored and the display table will be shown at its last
location.
The position is a list of the following form:
'(reference-widget attachment x-offset y-offset)
- reference-widget {STRING or KEYWORD}
- Name of an existing widget where the display table should
attach to or the keyword :application in order to
identify the application's widget.
- attachment {KEYWORD}
-
Specifies the way how the display table attach to the
reference-widget. One of the following keywords is
allowed:
- :bottomleft, :bottomcenter or
:bottomright
- :lefttop, :leftcenter or
:leftbottom
- :righttop, :rightcenter or
:rightbottom
- :topleft, :topcenter or :topright
- x-offset {FIXNUM [0]}
- X offset value of the display table to the reference widget
measured in screen pixels. To have a tight attachment use the
default value 0. The X value increases from the left border
of the screen to the right.
- y-offset {FIXNUM [0]}
- Y offset value of the display table to the reference widget
measured in screen pixels. To have a tight attachment use the
default value 0. The Y value increases from the top border
of the screen to the bottom.
- Return Value:
-
- t - success
- nil - failure
- Example:
-
(sd-show-display-table "EXAMPLE-TABLE" :position '(nil :mouse_relative 10 10))
SD-HIDE-DISPLAY-TABLE [function]
(sd-hide-display-table name :ignorePin ignorePin)
- Description:
-
This function is used to hide display tables.
- Parameters:
-
- name {STRING} - Name of the display table.
- :ignorePin {BOOLEAN}
- If this value is set to t then the state of the pin button
of the display table is not taken into account. That means even if the
display table is pinned it will be removed from the screen.
If this value is set to nil, the display table will stay on the
screen if it is pinned.
- Return Value:
-
- t - If the display table was removed from the screen
successfully.
- nil
- Either if the display table does not exist, or it is pinned and
the parameter ignorePin is set to nil, that means the
display table will stay on the screen.
- Example:
-
(sd-hide-display-table "EXAMPLE-TABLE")
© 2023 Parametric
Technology GmbH
(a subsidiary of PTC Inc.), All Rights Reserved |