Interface Builder -- Data-driven HTML table-based form builder
Generates HTML forms based on an input file that describes the elements of the form.
The default table is four columns wide and is filled in row-major order.
If you wish you build your own interface inside the standard table you can build a single Literal input record and put whatever you wish inside of it.
Spaces and tabs after the colon (``:'') that terminates a keyword, upto the first newline, are ignored. Comment lines begin with a pound sign (``#'') and are ignored (and they do not count as blank lines seperating records either).
The `value' portion of an entry may be continued on extra lines by begining the lines with white space (which is removed):
Long-Input: This is a very long input field.
which has continuation lines.
or by an initial greater-than (``>'') [possibly preceded by white space] which allows you to have input lines with leading white space:
Long-Input: Another long input field with
continuation lines.
> But this line contains leading
white space that has been escaped with a
>>. Only B<leading> greater-than (``>'')
signs need to be escaped.
An initial greater-than can be used to escape the meaning of any special characters (initial greater-than's, open brackets (``[''), open curly braces (``{''), and comments (``#'')):
Literal: >{this_is_a_literal_not_code}
# this is a comment and is ignored
Literal: >more literal text
># this is literal text also, not a comment
> This is a line with some leading white space.
There are three types of values: Literal, List, and Code.
Name: thing
To generate Literals with a leading {'s or ['s you can use the greater-than (``>'') escape:
Name: >{thing}
Actions: [ 'Create', 'Test' ]
You can even embed perl code in the expression:
Actions: [ @actions ]
Actions: { ['Create', 'Test']; }
or
Actions: { function_returning_an_array_ref_of_actions(); }
The field datatypes are: String, Array, and Hash.
Strings can be input as either a Literal, List (the elements of list will be joined together with spaces), or Code (which can return an ordinary perl scalar or an ARRAY REF).
Arrays can be input as either a Literal (interpreted as an array with only one element), Array, or Code (which must return a perl ARRAY REF [e.g., ``{ my @list =
(``one'', ``two''); \@list ; }'' or more simply ``{ [``one'', ``two''];
}'']).
Hashes (an array indexed by a string instead of a number, aka an associative array) can be input as either an List or Code (which must return a perl HASH REF or ARRAY REF):
Hash: [ 'keyword', 'value' ]
Hash: { {'keyword' => 'value'}; }
Hash: { \%somehash; }
Hash: { function_returning_hash_ref(); }
A Literal value is not meaningful in this context.
In all cases, if the ``Label'' keyword is present an extra element of type ``Header'' is generated first.
Package -- String. Optional. Default: main
Name of package (e.g., SysAdmin::Accounts::Create)
used for all perl code eval's.
Initialize -- String. Optional.
A place to put an initialization code eval
(e.g., { require Application::Module; }).
The value is not used except for it's side effects.
TitleBar -- String. Required.
String to be used for the <TITLE>
Header -- String. Required.
String to be used in the first <H1> header.
HeaderNote -- String. Optional.
Extra information under header.
Dynamic -- String. Optional.
Indicates that the browser should always reload this
page if the string is affirmative (Enabled).
Actions -- Array. Required.
List of actions valid for this interface.
They are used to build the submit buttons.
I<Reset> is added automatically.
Trailer -- String. Optional.
An HTML trailer, used to add any extra markup,
like hypertext links and copyrights, to
to the end of the interface. It is placed
outside the <TABLE> but still inside the FORM.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Required.
Header label.
Label -- String. Optional.
Header label.
Name -- String. Required.
HTML <INPUT> tag name.
Size -- String. Optional.
HTML <INPUT> field size.
Value -- String. Optional.
Default value for field.
MaxLength -- String. Optional.
Maximum input length for field.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Optional.
Header label.
Name -- String. Required.
HTML <INPUT> tag name.
Size -- String. Optional.
HTML <INPUT> field size.
Value -- String. Optional.
Default value for field.
MaxLength -- String. Optional.
Maximum input length for field.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Name -- String. Required.
HTML <INPUT> tag name.
Value -- String. Optional.
Default value for field.
Label -- String. Optional.
Header label.
Name -- String. Required.
HTML <SELECT> tag name.
Size -- String. Optional.
HTML <SELECT> size.
List -- Array. Required.
List of options to select from.
Selected -- String. Optional.
Item from List that is initially selected.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Optional.
Header label.
Name -- String. Required.
HTML <SELECT> tag name.
Size -- String. Optional.
HTML <SELECT> size.
List -- Array. Required.
List of options to select from.
Selected -- Array. Optional.
Items from List that are initially selected.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Optional.
Header label.
Name -- String. Required.
HTML <SELECT> tag name.
List -- Array. Required.
List of options to select from.
Selected -- String. Optional.
Item from List that is initially selected.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Optional.
Header label.
Name -- String. Required.
HTML <INPUT> tag name.
Fill -- String. Optional. Default: Column-Major
Fill style, one of: Row-Major, Column-Major
XXX: only Column-Major is currently supported
Columns -- String. Required.
Number of table columns to use.
List -- Array. Required.
List of options to select from.
Links -- Hash. Optional.
Hash of list option to URL. Used to make
hypertext links out of the table elements.
Checked -- String. Optional.
Option selected by default. This is a single
string unlike Select_Checkbox where you can
have multiple entries checked.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Optional.
Header label.
Name -- String. Required.
HTML <INPUT> tag name.
Fill -- String. Optional. Default: Column-Major
Fill style, one of: Row-Major, Column-Major
XXX: only Column-Major is currently supported
Columns -- String. Required.
Number of table columns to use.
List -- Array. Required.
List of options to select from.
Links -- Hash. Optional.
Hash of list option to URL. Used to make
hypertext links out of the table elements.
Checked -- Array. Optional.
List of options selected by default.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Optional.
Header label.
Select_Name -- String. Required.
HTML <SELECT> tag name.
Select_List -- Array. Required.
List of options to select from.
Select_Selected -- String. Optional.
The item from Select_List that is to be initially selected.
Input_Label -- String. Optional.
Text label for input box.
Input_Name -- String. Required.
HTML <INPUT> tag name.
Input_Size -- String. Optional.
HTML <INPUT> field size.
Input_Value -- String. Optional.
Default value for field.
Input_MaxLength -- String. Optional.
Maximum input length for field.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Rowspan -- String. Optional. Default: 1
Number of rows to span.
XXX: A value of 1 is all that is currently supported
Colspan -- String. Optional. Default: 1
Number of columns to span.
XXX: A value of 4 is all that is currently supported
Elements -- String. Required unless Literal is used.
Number of input elements to read.
Columns -- String. Required unless Literal is used.
Number of table columns to use in sub-table.
Literal -- String. Optional.
If used, will place Literal HTML inside the
sub-table.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Label -- String. Optional.
Header label.
Markup -- String. Required.
Literal HTML Markup to use.
Help -- String. Optional.
HTML help text to be used when building
the help screen.
Early Prototyping, November 1995, BSDI.
Conversion to Data-driven model, March 1996, BSDI.
Currently under development.
Copyright 1995, 1996 Berkeley Software Design, Inc.
http://www.bsdi.com/