Developing pages that use Synthesis is easy, and can be done by anyone able to create a web page. You paste the appropriate HTML <object> tags into the page, and set a few <param> tags indicating how you want things to behave. The tags you add are proper HTML, so you can continue to use your favorite tools as you like.
Synthesis provides drag-and-drop functions through the use of HTML
<object> tags. The objects that handle the drop actions are called
Generators, and represented as the Processing Folders (
).
There are two parts to embedding a Generator into a web page: you need to define the appropriate Java object to execute the drop, and you need to identify the targets, or location, within the web page that the Generator will act on. Both steps are simple, and are discussed below.
Objects can nest, and this nesting provides a simple programming language for creating more complex updates. Dropping a file into a Processing Folder results in the file also being dropped into any nested Processing Folders.
Embedding the Synthesis objects into HTML pages is done using the following markup:
<object declare classid="HTMLDropOps" title="Folder Name"> <param name="Parameter Name" value="Parameter Value"> ... </object>
This <object> declaration would be displayed within Synthesis as:

The required <object> attributes are:
Creating the targets within the web pages can be done two ways: IDs and tags.
Objects can be nested, and will produce nested Processing folders. These nested folders can respond directly to drops, or automatically to redrops from drops into the containing folders. The nested <objects> look exactly like the others.
For example, the following nested <object> declarations:
<object declare classid="HTMLDropOps" title="Folder Name">
<param name="Parameter Name" value="Parameter Value">
<object declare classid="HTMLDropOps" title="Subfolder Name">
<param name="Parameter Name" value="Parameter Value">
</object>
</object>
This <object> declaration would be displayed within Synthesis as:

Both the Folder Name and Subfolder Name folders can respond to drops and/or redrops if they are defined as specified below.
Before you can drop content into a generator, you must specify the drop parameter within the Generator object. This parameter, besides indicating that the object should respond to drop actions, identifies the method to invoke. For example, the following <object> definition:
<object declare classid="HTMLDropOps" title="Folder Name"> <param name="drop" value="replace"> ... </object>
indicates that the the replace method of an HTMLDropOps object should be executed. (In Java, we would say that this invokes the HTMLDropOps.replace() method. You won't be tested on this.) The value for the drop <param> will be given in the documentation for the operation.
Note: you can define both drop and redrop parameters within the same object.
Redrops occur when this folder is contained within a folder that is dropped into. To put this the other way, when we drop content into a folder, it is redropped into all of the subfolders that have defined redrops. As with drops, we need to define a redrop parameter indicating that the object should respond to redrop actions, and identifying the method to invoke.
For example the following <object> definition:
<object declare classid="HTMLDropOps" title="Folder Name"> <param name="redrop" value="insert"> ... </object>
indicates that the insert method of an HTMLDropOps object should be executed when something is dropped in a containing folder.
Note: you can define both drop and redrop parameters within the same object.
Resets occur when the user does a Reset from the Generator's popup menu. Unlike the drop and redrop parameters, the reset parameter does not need to be defined for a reset action to take place. If you explicitly define the reset parameter, it is done exactly like the drop and redrop parameters. For example, the following <object> definition:
<object declare classid="HTMLDropOps" title="Folder Name> <param name="reset" value="resetInsert"> </object>
indicates that the resetInsert method of an HTMLDropOps object should be executed during a reset. If the reset parameter is not given explicitly, Synthesis will automatically invoke a default reset operation based on the drop or redrop operation. So, if the drop action is foo, the default reset action will be resetFoo. If there isn't a drop action, the redrop action will be used instead.
For example, the following <object> definition:
<object declare classid="HTMLDropOps" title="Folder Name"> <param name="drop" value="append" <param name="reset" value="resetAppend"> </object>
is the same as:
<object declare classid="HTMLDropOps" title="Folder Name"> <param name="drop" value="append" </object>
HTMLDropOps is a Java Object that provides a basic set of page maintenance tools. Simple and flexible, they'll cover the bulk of your page layout needs.