Trace: • Concat Mask of Linked Cell Editor
The linked cell editor is a combobox with a table in it. The table has one or more columns, and it's possible to choose one value from the table as display value. Here's an example:
The combobox is a very special control because not all GUI technologies show more than one column in a combobox. In desktop technologies like Swing, it's not a problem to show more than one column. In web technologies, it's unusual to show more than one column. Usually, only one column (= display value) will be used in a combobox. Here's an example:
If you want to show multiple columns in such GUI technologies, you have to use a calculated column which concats the values of different columns to one column. With JVx, this can be done very easily. Simply write one line of code:
((ILinkedCellEditor)book.getRowDefinition().getColumnDefinition("SALU").getDataType().getCellEditor()).setDisplayConcatMask("* (*)");
The example sets a concatenation mask (* (*)) for the cell editor (ILinkedCellEditor) of a specific column (= SALU). The concat mask supports wildcards (= *). Every * is a column from the ColumnView. The order is defined by the ColumnView column order. It's also possible to set a simple concat mask without wildcards:
((ILinkedCellEditor)book.getRowDefinition().getColumnDefinition("SALU").getDataType().getCellEditor()).setDisplayConcatMask(" ");
In this case, a space will be used to separate all columns. Here's an example with a wildcard concat mask:
It's a good idea to use the concat mask only in web environments. This can be configured with the following code:
if (getApplication().getLauncher().isWebEnvironment()) { //set the concat mask }