The options table

This is a 'database table' parameter. Please refer to passing database tables for a detailed explanation of the database table format. In all the following examples we assume that the recordseparator is ^ and the fieldseparator is | .

options records are mappings

The options table is special kind of database table. It has records that contain mappings between keys and their associated values.
We will use the terms "key" and "value" instead of "field 0" and "field 1". 

all options are optional

All options are optional. diputree has reasonable defaults for every option in the options parameter. Although defaults exist you should not count on the values of these defaults, they may change over time. So, if you want to implement a special ‘look and feel’ you should declare your own options.

colors

backgroundcolor, linecolor, textcolor, selectedcolor, selectedbackgroundcolor, tipcolor, tipbackgroundcolor, mouseovercolor, underlinecolor, foldercolor, folderhighcolor, folderlowcolor, doccolor and boxcolor

Colors are represented by a hexadecimal value. The first 2 digits are for the red component, the next 2 for the green component and the final 2 for the blue component.
The value of a color component can range from 00 to FF ( 00 = no intensity, FF = full intensity)
e.g. FFFFFF is the hexadecimal representation of white, 000000 is black.

key value
name type description
backgroundcolor hexadecimal integer the color of the background
linecolor hexadecimal integer the color of the lines connecting the icons together
textcolor hexadecimal integer the color of the text
selectedcolor hexadecimal integer the color of the entry when it has been selected (clicked)
selectedbackgroundcolor hexadecimal integer the background color of the entry when it has been selected (clicked)
tipcolor hexadecimal integer the color of the pop up tip
tipbackgroundcolor hexadecimal integer the background color of the pop up tip
mouseovercolor hexadecimal integer the color of an entry when the mouse moves over it
underlinecolor hexadecimal integer the color of the line shown under an entry when the mouse moves over it
foldercolor hexadecimal integer the color of the default folder
folderhighcolor hexadecimal integer the color of the default folder (high intensity)
folderlowcolor hexadecimal integer the color of the default folder (low intensity)
doccolor hexadecimal integer the color of the default document
boxcolor hexadecimal integer the color of expander box

example

<param name="options" value="
^backgroundcolor|0099CC
^linecolor|000080
^textcolor|FFFF00
^selectedcolor|FFFFFF
^selectedbackgroundcolor|008000
^tipcolor|008000
^tipbackgroundcolor|FFFFFF
^mouseovercolor|FFFFFF
">

applet margins

marginleft and marginright

key value
name type description
marginup decimal integer the upper margin
margindown decimal integer the lower margin
marginleft decimal integer the left margin
marginright decimal integer the right margin
 

A: marginup, B: marginleft, C: margindown, D: marginright

tree margins

textshiftx, containershiftx, containershifty, noncontainershiftx and noncontainershiftx

key value
name type description
textshiftx decimal integer the value that the text should shift in the horizontal direction, relative to its icon
containershiftx decimal integer the value that a child container should shift in the horizontal direction, relative to its parent container.
containershifty decimal integer the value that the container should shift in the vertical direction, relative to the previous icon (be it a container or a noncontainer).
noncontainershiftx decimal integer the value that a noncontainer should shift in the horizontal direction, relative to its container.
noncontainershifty decimal integer the value that a noncontainer should shift in the vertical direction, relative to the previous icon (be it a container or a noncontainer)

a:containershifty,b:noncontainershifty, c:containershiftx, d: noncontainershiftx e: textshiftx

scrollbars

scrollbarhorizontaldivider, scrollbarverticaldivider, scrollbarwidth, scrollbuttonsize, unitdivider, blockdivider and scrollspeed

The initial size (100%) and the scrollbardivider value control the representation of the scrollbar. It can be divided by an integer value of 1 or greater.
e.g. a divider value of 3 will give a 33% coverage of the scrollbar.

key value
name type description
scrollbarhorizontaldivider decimal integer the divider value for the horizontal scrollbar
(value can not be 0 )
scrollbarverticaldivider decimal integer the divider value for the vertical scrollbar
(value can not be 0 )
scrollbarwidth decimal integer the width of the scrollbar in pixels
scrollbuttonsize decimal integer the width and height of the buttons
unitdivider decimal integer the amount (divider value) that should be scrolled when the user wants
to scroll by 1 unit ( by clicking on the scroll button )
blockdivider decimal integer the amount (divider value) that should be scrolled when the user wants
to scroll by 1 unit ( by clicking on the scroll button )
scrollspeed decimal integer the amount of time between 2 consecutive scrollings in milliseconds

Example

<param name="options" value="
^scrollbarhorizontaldivider|1
^scrollbarverticaldivider|1
">
<param name="options" value="
^scrollbarhorizontaldivider|3
^scrollbarverticaldivider|3
">

frame

Your web document can be divided into different frames. Every frame acts as a container for another web document, effectively creating a hierarchy of (contained) subdocuments.

You can assign a name to each frame individually. By default your browser assigns names to some special frames, such as: _blank (a new frame), _self (this frame), _parent (this frame’s parent) and _top (the uppermost parent frame, the root of the frame hierarchy).

key value
name type description
frame String the name of the default frame where the pages will be displayed,
can be overridden in the links parameter.

fontprofile

key value
name type description
fontprofile String the default font profile, can be overridden in the entries parameter

showstatus

key value
name type description
showstatus integer boolean showing status messages can be switched on or off
( 0 = off, 1 = on )

mouse movements

mouseover and underline

When the mouse moves over an entry, the entry can respond by highlighting or underlining itself.

key value
name type description
mouseover integer boolean highlighting due to the mouse being rolled over can be switched on or off
(0 = off, 1 = on)
underline integer boolean underlining due to the mouse being rolled over can be switched on or off
(0 = off, 1 = on)

tips

tipwait and tipfontprofile

Pop up tips are small messages that pop up whenever there is no user action during a specified period.

key value
name type description
tipwait decimal integer the period before a tip pops up defined in milliseconds (1000ms = 1sec)
tipfontprofile decimal integer the default font profile to use for the tips. If the tip extends beyond the applet’s boundaries the font size is decremented until it can fit within the boundaries (the default font profile for pop up tips is tipdefaultfont).

selected

The key of the entry that should be selected when the applet is first loaded.

key value
name type description
selected string the key from the entries table, that should be set as the selected record.

externalhandlers

Not all browsers support external handlers. If this option is set, then the applet shall check during initialization if external handlers are supported.

If this feature is supported then the applet will leave this option as is ( a value of 1), if this feature is not support then the applet will unset this option ( new value will be 0 ).

In your script you can get the value of this option to determine if external handlers are enabled.

IMPORTANT

External handlers require the MAYSCRIPT attribute to be present in the applet definition.

key value
name type description
externalhandlers boolean integer instructs the applet to test if external handlers are supported
(values: 0 = don't test an consequently don't allow external handlers
1= test for external handlers support, if support is not available set value to 0)

asyncload

For utter compatibility you can disable ( a value of 0 ) the asynchronous loading of images. This will prevent the applet from showing a "please wait while loading" message during image loading.

key value
name type description
asyncload boolean integer tells the applet to enable asynchronous loading of images
(values: 0 = don't load asynchronously, 1= load asynchronously,)

baseurl

If you use relative URL’s then baseurl is used to complete your URL.

So if all your link URL’s are located in a directory " /mydirectory" at your web site "http://www.mywebsite.com" than you can define a baseurl "http://www.mywebsite.com/mydirectory".
Now you only have to use the filename part of your URL instead of the complete URL in your links parameter.

The default URL for baseurl is the URL of the directory that contains the applet.
So if your applet is located in "http://www.mysite.com/mydirectory/diputree.class", then the baseurl will be "http://www.mysite.com/mydirectory".

baseurl is used in the links parameter.

key value
name type description
baseurl String the url that will be used to complete relative and/or uncomplete URL references
(values: a Fully Qualified URL or a relative URL)

showing icons, lines and expanders

showlines, showicons and showexpanders

You can individually show or hide icons, their lines and/or their expanders.

key value
name type description
showlines decimal integer switch showing lines on or off
(Values: 0 = hide, 1 = show ).
showicons decimal integer switch showing icons on or of
(Values: 0 = hide, 1 = show ).
showexpanders decimal integer switch showing expanders in status bar on or off
(Values: 0 = hide, 1 = show ).

Special feel when expanders are shown or hidden

examples

<param name="options" value="
^showlines|0
">

<param name="options" value="
^showicons|0
">

grouping

Non-containers can be grouped together. If grouping is disabled entries will be displayed in the order they were entered.

key value
name type description
grouping decimal integer switch grouping lines on or off
(Values: 0 = no grouping, 1 = grouping ).

autoclose

If a top level container is opened and autoclose is enabled, then will all other top level containers be closed automatically. This feature is especially useful when top level containers have a large amount of children.

key value
name type description
grouping decimal integer switch grouping lines on or off
(Values: 0 = no grouping, 1 = grouping ).