MarvinView: parameters and events

Version @MARVINVERSION@

Contents

  1. Parameters
    1. Applet and JavaBeans parameters
      1. Display parameters
      2. Structure display parameters
      3. Structure parameters
      4. 3D and animation
      5. Molecule tables
        1. The layout parameter
        2. The param parameter
        3. The celli and celli_j parameters
      6. Other parameters
    2. Applet only parameters
  2. Events fired by the JavaBean
  3. Troubleshooting - MView and JMView tables
 

1   Parameters

1.1   Applet and JavaBeans parameters

Parameters of the MView and JMView applets can be set using the <param> HTML tag. Parameters of the MViewPane JavaBean can be set using the setParams function.
For parameter constants please visit the ParameterConstants and ViewParameterConstants API.

1.1.1   Display parameters

ParameterMeaningDefault
addRemoveHatomsEnabled Add/Remove -> Explicit Hydrogens is enabled or disabled in the Edit menu. It will be disabled if this parameter is false. true
autoTabScale Automatically change scale when component size changed. Only applicable to the MViewPane bean. false
background Background color in hexa. Sets the background color of the components (like menubar, toolbar, labels and buttons), excluding the molecule canvas. See also: molbg  
confirmTransfer Displays a confirmation dialog window upon closing the structure editor window in case the structure has been altered. false
detachable Enable or disable popping up detached viewer window. If this parameter is true, the selected molecule can be displayed in separate window by selecting "Window" menu item in the popup menu or by doubleclicking on the canvas. Viewer is not detachable if detachable parameter is false. (See also editable.) true
dispQuality Display quality.
  • 0 - low quality, faster rendering
  • 1 - high quality (antialiasing), slower rendering
1
molbg Molecule background color in hexa. To set different colors for some specified cells, use a comma separated list of "i:#rrggbb" settings, where i is the cell index. For example, to set the default color to white and the color of cell 2 to red, use "#ffffff,2:#ff0000". See also: background  
selectedIndex Select the specified cell.  
tabScale Magnification in the molecule table. Each cell has the specified magnification if positive. The scaling is automatic if negative (-1). -1
transferButtonIcon Sets the location of a custom icon for the Transfer action.  
transferButtonText Sets custom text for the Transfer action.  
transferButtonVisible Makes the Transfer button visible on the General Toolbar. true
winScale Magnification in the zoom window. A 1.54 Å long C-C bond is magnified to winScale pixels. 26.4

Simple viewer applet example:

<applet code="MView" width=100 height=100>
<param name="molbg" value="#a0ffa0">
<param name="escapeChar" value="\">
<param name="mol" value="Pyrrole\n
...
M  END\n"></applet>

1.1.2   Structure display parameters

ParameterMeaningDefault
atomFont Atom symbol/label font: Serif, SansSerif or Monospaced SansSerif
atomMappingVisible Show (true) or hide (false) atom mapping true
atomNumbersVisible Show (true) or hide (false) atom numbers false
atomsize Atom symbol font size in C-C bond length units:
atomsize*1.54 Å = atomsize*scale points,
where scale is the current magnification.
0.4
atomSymbolsVisible Show (true) or hide (false) atom symbols in 3D view true
bondLengthVisible Show (true) or hide (false) bond length labels false
bondSpacing Double bond spacing in C-C bond length units:
spacing*1.54 Å = spacing*scale pixels,
where scale is the current magnification.
0.18
chiralitySupport When to show atom chirality (R/S).
  • off - never
  • selected - if the chiral flag is set for the molecule or the atom's enhanced stereo type is absolute
  • all - always
off
colorScheme Color scheme.
  • mono - monochrome
  • cpk - Corey-Pauling-Kultun
  • shapely - shapely (residue types)
  • group - residue sequence numbers
cpk
downWedge Wedge bond display convention. Down wedge points downward in MDL's convention (mdl), upward (at the chiral center) in Daylight's (daylight). mdl
explicitH Show (true) or hide (false) explicit hydrogens. true
ezVisible Show (true) or hide (false) E/Z labels. false
grinv Show (true) or hide (false) graph invariants false
implicitH How to display H labels.
  • off
  • hetero - on heteroatoms
  • heteroterm - on hetero or terminal atoms
  • all - all atoms
false
lonePairsVisible Show (true) or hide (false) lone pairs false
rgroupsVisible Show (true) or hide (false) R-group definitions true
selection0
selection1
selection2
...
Comma-separated list of atom numbers (0, ..., n-1).
Selected atoms are highlighted.
In a simple one-molecule viewer, selection0 must be used. In a molecule table, selectionn corresponds to molecule cell n.
 
showSets Show the specified atom sets only. Comma separated list of set sequence numbers (0, ..., 63). heteroterm
sketchAnyBond Display type of the Any bond in the sketcher:
  • auto - displayed as dashed line in most cases, solid line only when all bonds are generated from atom coordinates (e.g. XYZ and PDB files).
  • dashed - displayed as dashed line
  • solid - displayed as solid line
auto
valenceErrorVisibleInView Show (true) or hide (false) valence errors true
viewAnyBond Display type of the Any bond in the viewer:
  • auto - displayed as dashed line in most cases, solid line only when all bonds are generated from atom coordinates (e.g. XYZ and PDB files).
  • dashed - displayed as dashed line
  • solid - displayed as solid line
auto
viewCarbonVisibility Display the label of carbon atoms in structures.
  • on - Always show the atom labels of carbon atoms.
  • off - Never show the atom labels of carbon atoms.
  • inChain - Show the atom labels of carbon atoms at straight angles and at implicit Hydrogens.
inChain

1.1.3   Structure parameters

ParameterMeaningDefault
atomSet0.1 ... atomSet0.63
atomSet1.1 ... atomSet1.63
...
Atom sets. Comma separated list of atom indices (0, ..., n-1). An atom in molecule cell number N will be in set M if its number appears in the atomSetN.M list. By default, all atoms are in set 0.  
atomSetColor0
...
atomSetColor63
Atom set color in hexa.  
bondSet0.1 ... bondSet0.63
bondSet1.1 ... bondSet1.63
...
Bond sets. Comma separated list of atom index pairs in i-j format, where i, j = 0, ..., n-1. A bond in molecule cell number N will be in set M if the corresponding atom pair appears in the bondSetN.M list. By default, all bonds are in set 0.  
bondSetColor1
...
bondSetColor63
Bond set color in hexa.  
clean2dOpts Options for 2D cleaning (0D->2D) See base 2D cleaning options  
clean3dOpts Options for 3D cleaning (0D->3D) See base 3D cleaning options  
cleanDim Number of space dimensions for cleaning.
  • 2 - two-dimensional cleaning
  • 3 - three-dimensional cleaning
See also: cleanOpts, importConv.
2
cleanOpts Options for 2D or 3D cleaning.
cleanOpts accepts the same parameter values as clean2dOpts or clean3dOpts depending on the cleaning dimension (cleanDim).
 
importConv Conversion(s) after molecule loading. Currently the following options are implemented:
"a" or "+a"     General aromatization
"a_bas" or "+a_bas"     Basic aromatization
"-a" dearomatization
"H" or "+H"     add explicit H atoms
"-H" remove explicit H atoms
"c" automatic cleaning
 
setColoringEnabled Atom/bond set coloring. true

1.1.4   3D and animation

ParameterMeaningDefault
animate Start an XYZ animation sequence, or starts rotating the specified 3D molecule(s).
Possible values: off, all, or a comma-separated list of molecule indices (0...n-1).
Note: This parameter does not apply to beans, only to applet.
off
animDelay Delay (seconds) before repeating the animation. 0
animFPS Number of frames per second in 3D animation. 10
animSync Whether the animations in different cells should be synchronized. false
ballRadius Ball radius for "ballstick" rendering mode, in units of covalent radius. 0.5
rendering Rendering style.
  • wireframe - wireframe
  • wireknobs - wireframe with knobs
  • sticks - 3D sticks
  • ballstick - ball & stick
  • spacefill - balls
wireframe
script
script0
script1
script2
...
Script containing a subset of RasMol commands delimited by semicolons. If this applet parameter is specified, then the mol parameter is neglected. The molecule(s) must be loaded using the load command in the script.
Note: To load the script from a file, use the script command:
<param name="script" value="script myscript.spt">
 
spin
spin0
spin1
spin2
...
Spinning rate and axis for animated molecules. Spinning rate is specified in degrees per second, the axis is specified with a 3D vector. Numbers are separated by commas.
Note: XYZ animations do not spin by default, only if this parameter is set.
36,0,1,0
stickThickness 3D stick diameter for "sticks" and "ballstick" rendering modes, in Angstroms. 0.1
wireThickness line thickness for "wireframe" and "wireknobs" rendering modes, in Angstroms. 0.064

1.1.5   Molecule tables

The cells in the multi-cell molecule table mode of MarvinView can be divided further and they can have they own layout, which however is uniform for all cells in the table. The parameters described here are used to define the structure of such a cell.
Example of using molecule tables: MarvinView Table View Example
A utility class is also available to generate parameter values: MViewParam

rows Number of "molecule rows", including the optional header row.
cols Number of "molecule columns".
visibleRows Number of visible rows. The table is scrollable if less than rows. Default value: visibleRows = rows.
visibleCols Number of visible columns. The table is scrollable if less than cols. Default value: visibleCols = cols.
layout Layout of molecule, label, button and checkbox components in a cell.
layoutH Layout for the header row.
param Parameters of the components.
paramH Parameters for the header row.
cell0
cell1
cell2
...
Contents of the cells.
Use these instead of the mol parameter.
border Border width in pixels. Default: 0 (no border between cells).
Increases the total applet WIDTH by border*(cols-1), and the HEIGHT by border*(rows-1).
1.1.5.1   The layout parameter
The layout and layoutH parameters are in the following format: ":rows:cols:type:k:l:h:w:anchor:fill:[weighty:[weightx:]]type:k:l:...", where : is the field separator, rows is the number of rows in the cell, cols is the number of columns, type is the type of the component in row k, column l of the current cell, h is the height of the component (rows), w is the width (columns).
The anchor parameter determines where to place the component if its size is smaller than its display area. It the component size is larger than the size of its text label, then anchor also sets the label alignment. Possible values: c (center), n (north), s (south), e (east), w (west), ne (northeast), etc.
The fill parameter determines how to resize the component if its size is smaller then its display area. Possible values: n (none), h (horizontal), v (vertical) or b (both).
The weights are nonnegative integers, zero by default. They determine how to distribute space. If all the weights are zero, all the components clump together in the center of the applet.

If you are familiar with Java, you might have noticed that anchor, fill, weightx and weighty have the same names as the fields of the GridBagConstraints class. The reason is that MarvinView uses the GridBagLayout class to determine the places and sizes of the components.

Component types: M (molecule), L (label), B (button), C (checkbox), T (text field) and I (image).

Example:

<param name="layout" value=":4:3:
M:0:0:4:1:c:n:
L:0:2:1:1:c:n:0:10:
L:1:2:1:1:c:n:0:10:
C:0:1:1:1:c:n:
C:1:1:1:1:c:n:
C:2:1:1:1:c:n:
B:3:1:1:1:c:n:10">

1.1.5.2   The param parameter
In a param or paramH parameter, the first character is the field separator (`:' here). The first field is the type of the first component (M, L, B, C or T), followed by its n parameters in the forthcoming n fields. Then the same for the second component, etc. Component parameters:
:M:width:height width and height are in pixel units.
:L:fontprops fontprops: font properties.
:B:fontprops::
:B:fontprops:description:
:B:fontprops:description:frame
fontprops: font properties,
description: description string,
target: target frame for the URL ("_self" = show in the window and frame that contain the applet, "_parent" = show in the applet's parent frame, "_top" = show in the top-level frame of the applet's window, "_blank" = show in new window).
:C:fontprops:
:C:fontprops:description
fontprops: font properties,
description: description string.
You may specify the checkbox group number in the type field, by writing gn next to the type-specifying character C, where n is the group number. No more than one button in a group can be pressed at the same time.
:T:fontprops
:T:fontprops:columns
:T:fontprops:columns:editable
fontprops: font properties,
columns: number of columns,
editable: editable (rw) or read only (r).
The fontprops field usually contains only one number, the font size. Additional properties are "b" (bold font) and "i" (italic). A 12pt bold italic font is specified as "12bi".

Example:

<param name="param" value=":
M:100:100:
L:10b:
C:10:select this molecule:
Cg0:10:include this structure:
B:10:search for more molecules like this:_self:
T:10:
T:10:15:
T:10:15:rw">

1.1.5.3   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:

ComponentParametersDescription
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 ActionListeners and ItemListeners in your code instead of action strings. See marvinbeans/examples/view-checkbox/MViewExampleWithCheckbox.java.

1.1.3   Other parameters

ParameterMeaningDefault
copyAsFormat Default clipboard format by Copy As action. platform dependent
copyOpts Enabled output formats at copy command To specify more formats, enumerate them in a comma separated list.
  • text - Copy As Text
  • bitmap - Copy As Bitmap Image
  • emf - Copy As Vector Graphical Image (EMF)
platform dependent
debug Debug mode. Possible values: 0, 1, 2. 0
defaultSaveFormat Determines the default chemical file format in the Save As dialog. mrv
draggable Allows (true) or denies (false) mouse dragged events in cells. true
editable Modes: display only (0) or editable (1, 2). If editable=2, then doubleclick launches MarvinSketch (instead of a viewer window). 0
escapeChar Escape character to use for parsing the values of mol and cell parameters.  
importEnabled Allow or forbid molecule import. If this parameter is false, paste function is disabled in MarvinView, also Import option is disabled in the Molecule Source window. (Use editable parameter to forbid the editing of the molecules.) true
molFormat Default file format: mol, csmol, smiles, cxsmiles, cml, pdb, pov, sybyl, or xyz. mol
navmode Mouse drag action.
  • translate - move the structure
  • zoom - change magnification
  • rotZ - rotate in the screen's plane
  • rot3d - 3D rotation
rotZ
selectable Use selectable=false to forbid molecule selection with mouse click. true
sketchHelp Sketcher help contents. chemaxon/marvin/help
/sketch-index.html
sketchQuickHelp Sketcher quick help. chemaxon/marvin/help
/sketch.html
viewHelp Viewer help contents. chemaxon/marvin/help
/view-index.html
viewQuickHelp Viewer quick help. chemaxon/marvin/help
/view.html

1.2   Applet only parameters

ParameterMeaningDefault
mol The URL of the molecule file or the file itself (inline) in any supported structure format such as MDL mol, compressed mol, SMILES, SMARTS, etc format.
For multiline values of this parameter, it is recommended to specify escapeChar="\" and replace or precede each newline occurring in the string with "\n". The escape character should also be escaped as "\\".
The file format and/or import options can be specified if one of the following forms is used:
"file{options}",
"file{MULTISET,options}",
"file{format:}",
"file{format:options}", or
"file{format:MULTISET,options}".
If the MULTISET option is specified, then a multi-molecule file is read into one molecule object containing multiple atom sets.
Examples: "foo.xyz{f1.4C4}", "foo.xyz.gz{gzip:xyz:MULTISET,f1.4C4}"
 
preload Deprecated  
cacheMols Store loaded molecules in an internal cache (true or false).  
loadMols Comma-separated list of molfiles to preload. Useful for caching molecules in JavaScript "slideshows".  
molChanged0
molChanged1
molChanged2
...
Evaluates a JavaScript code when the molecule is loaded or changed in the specified cell. The number in the parameter name determines the cell index. If no molecule table, use molChanged0 to refer to the molecule. The parameter value should be a JavaScript code. E.g.:
    <param name="molChanged0" value="alert('First molecule is modified')">
    
 
listenpropertychange Enable/disable property change event listener of the applet. If the listener is enabled the applet will call the propertyChange(prop) JavaScript method. The code snippet below demonstrates the handling of property change events in JavaScript. Note: If the MAYSCRIPT option is not specified, JavaScript can not be evaluated from the applet.
     function propertyChange(prop) {
        if(document.eventform != null) {
            var s = document.eventform.txt.value;
            document.eventform.txt.value = s + "\n" + prop;
        }
     }

     mview_mayscript=true;
     mview_begin("marvin",400,300);
     mview_param("listenpropertychange","true");
     mview_end();
     
Live applet example: MarvinView Example - Listening for events in applets
If you also specify the "appletid" parameter, its value will appearin the name of the property as prefix (e.g.: "firstapplet.mol").
false
appletid Identify applet in property change event notifications to JavaScript. Use this parameter with listenpropertychange when more than one applet are located on the same web page. It helps to identify which applet sent the notification.
listenmouseevent Enable/disable mouse event listener of the applet. If the listener is enabled the applet will call the mouseEvent(evt) JavaScript method.
The code snippet below demonstrates the handling of mouse events in JavaScript. Note: If the MAYSCRIPT option is not specified, JavaScript can not be evaluated from the applet.
    function mouseEvent(evt) {
        var s = document.mouseform.txt.value;
        s = s + evt + "\n";
        document.mouseform.txt.value = s;
    }

     mview_mayscript=true;
     mview_begin("marvin",400,300);
     mview_param("listenmouseevent","true");
     mview_end();
     
Live applet example: MarvinView Example - Listening for events in applets
false
skin Change the component's Look & Feel (only in SWING applet). If you do not specify this parameter, Marvin will use the default LookAndFeel style.
This parameter value is the name of the new LookAndFeel class.
javax.swing.plaf
.metal
.MetalLookAndFeel
splashScreenImage Change the component's Splash Screen displayed at startup. If you do not specify this parameter, Marvin will use its default splash screen.
This parameter value is the relative path of the image, specify relatively to the CODEBASE
Note: Animated gif files can be displayed badly(flashing, or too fast animation)
null
license Sets the contents of a pre-read license file to the license manager to read and validate licenses from.  
licenseFile Sets the license file location to the license manager to read and validate licenses from.  
legacy_lifecycle The "legacy_lifecycle" is a general Java applet parameter. If its value is true, it helps avoid destroying the applet when you leaves the applet page. If you use "marvin.js", it sets its value to true automatically unless you specify its value explicitly. By the way, the defalut value of this parameter in Java is false. See the discussion about it on the forum.  

2   Events fired by the JavaBean

To handle the property change events of MViewPane, the java.beans.PropertyChangeListener interface must be implemented.

Property nameTypeMeaning
"mols#" Molecule[] Molecule(s) changed in the specified cell (# = 0, ..., n-1).
"implicitH" String Implicit Hydrogen display style changed.
"explicitH" Boolean Explicit Hydrogen display style changed.
true: show explicit H atoms
false: hide explicit H atoms
"navmode" String Drag action changed.
translate: Translate, zoom: Zoom, rotZ: Rotate, rot3d: Rotate in 3D
"tabScale" Double Magnification for molecule cells changed.
"winScale" Double Zoom window magnification changed.
"colorScheme" String Color scheme changed.
"rendering" String Rendering style changed.
"wireThickness" Double Wire thickness changed.
"stickThickness" Double Sticks diameter changed.
"ballRadius" Double Ball radius changed.
"grinv" Boolean Graph invariants displayed/not displayed.
"downWedge" String Down wedge bond orientation changed.
"animFPS" Double Animation frame rate changed.
"animDelay" Double Animation repeat delay changed.
"animSync" Double Animation synchronization changed.
"invisibleSets" Long Visibility of atom sets changed.
"atomNumbersVisible" Boolean Visibility of atom numbers changed.
"atomMappingVisible" Boolean Visibility of atom mapping changed.
"popupMenusEnabled" Boolean Popup menus are enabled/disabled.
"detachable" Boolean Detachability of viewer is changed.
"selectedIndex" Integer The selected cellis changed.
"draggable" Boolean The draggable property is changed.

Since the behaviour of buttons and checkboxes in molecule cells are similar as AbstractButton objects, they can fire ActionEvents and ItemEvents.


3   Troubleshooting - MView and JMView tables