The celli and celli_j parameters

The parameter values of components in cell i can be specified either by listing them in one single list, using the celli parameter, or by assignments for each component separately, using celli_j, where i = 0, 1, ..., rows* cols -1 is the cell index and j = 0, 1, 2, ... is the component index inside the cell.

The contents of celli_j parameters are listed in the following table for the different component types:

Component

Parameters

Description

M

molfile

molfile: the molecule URL or the molecule itself (inline) in a molecule file format (MDL mol, compressed mol, MRV etc.)

L

label

label: the label string.

B

|label|spec|action

label: the button label,
spec: the special character (% from now),
action: the action string.

C

|||||
|||state||
|||state|-|-
...
|label0|label1|state|action0|action1

label0: label for the unchecked state,
label1: label for the checked state,
state: default state (0, 1 or nothing),
action0: action string for unchecking,
action1: action string for checking.
For a "real" checkbox, both labels have to be empty string, otherwise the "checkbox" will be buttonlike.
If both action strings are empty, then the checkbox is disabled. To make it enabled without specifying JavaScript actions, the action values must be "-". Example: "|||1|-|-"

T

string

string: initial value.

I

|iconfile||
|iconfile|action|title

iconfile: GIF or JPEG file containing the icon,
action: image file or js:JavaScript code
title: window title, only used if action is an image file.

Since newlines are usually neglected in applet parameters by the browsers, each newline should be replaced or preceded by \n, where \ is an escape character defined using the escapeChar parameter. If it is defined, then occurrences of this character must also be escaped as "\\". The parameter lists of the B, C and I components should start with "E\|" or "|", where \ is an escape character which overrides the escapeChar setting and | is the separator character (can also be colon, comma or anything else). If the separator occurs inside the parameter string of a component, then it must be escaped: "|" should be replaced by "\|".

Note that specifying the applet parameters in JavaScript (instead of directly inside an HTML applet tag) requires backslash to be escaped once more, except in case of the newline (\n) which does not need without extra escaping.

The action string for the B, C and I components can be an URL for buttons, a JPEG, PNG or GIF file for images, or js:javascript expression for buttons, checkboxes and images. The button action string may contain %C (where % is the special character), which is substituted with the checkbox states represented as a hexadecimal number. The nth bit in this number is the state of the nth checkbox.

A javascript expression can be used only if you specify the MAYSCRIPT attribute in the applet tag.

Example:

<param name="escapeChar" value="\">
<param name="cell2_0" value="\n
MSketch 04169816382D\n
\n
66 72 0 0 0 0 0 0 0 0999 V2000\n
mcIWFRwV60\n
...
M END\n">
<param name="cell2_1" value="1002">
<param name="cell2_2" value="not bad">
<param name="cell2_3" value="|||1|js:cbx(1002,'not selected')|js:cbx(1002,'selected')">
<param name="cell2_4" value="| Include | Include ||js:cbx(1002,'no include')|js:cbx(1002,'include')">
<param name="cell2_5" value="| Exclude | Exclude ||js:cbx(1002,'no exclude')|js:cbx(1002,'exclude')">
<param name="cell2_6" value="| Search |%|js:searchmore(1002)">

A celli parameter contains the parameter values for all components in a single list. The list starts either with "E\|" or "|", where \ and | are the escape and separator characters. (Not necessarily backslash and vertical line.)

Example:

<param name="cell2" value="E\|\n
MSketch 04169816382D\n
\n
66 72 0 0 0 0 0 0 0 0999 V2000\n
mcIWFRwV60\n
...
M END\n
|1002|not bad|||1|js:cbx(1002,'not selected')|js:cbx(1002,'selected')
| Include | Include ||js:cbx(1002,'no include')|js:cbx(1002,'include')
| Exclude | Exclude ||js:cbx(1002,'no exclude')|js:cbx(1002,'exclude')
| Search |%|searchmore.cgi?mol=1002&n=5&cbx=%C">

It is suggested to use celli parameter in MViewPane JavaBean to create an advanced layout (containing more visual elements than one molecule with a label, such as, checkboxes, buttons, images, etc.). Since Javascript is not supported in MarvinBeans: use java.awt.event.ActionListeners and java.awt.event.ItemListeners in your code instead of action strings. See marvinbeans/examples/view-checkbox/MViewExampleWithCheckbox.java.