The Sapphire Java framework contains three packages: Sa, SaVj, SaC.
The Sa package is the base framework and contains the key framework classes. The SaVj package is a framework extension which allows the building of framework views from any Java development system. The SaC package contains a number of classes which implement key interfaces of the framework. These provide field validation, field formatting, statistics, and data transforms instances. The source for the framework is also provided. We included the source for several reasons: as a form of documentation (some learn by looking at code), as a way of learning Java, and to allow inspection of the client framework code that you will be using. Java is too important for us to hide. The code is built on JDK 1.0 and is written purely in Java. A vendor who does not provide source is either proprietary, hiding lots of native methods, or has lots of bad design issues to hide. Either way they are not meeting an important "requirement" of the Web: openness and standards. The source is however protected by the license agreements that come with the Sapphire tool. The docs directory under the saclasses directory contains HTML files generated from javadoc which further document the framework.
To install the framework on a Web site, just copy the Sa, SaVj, and SaC directories from the saclasses directory of Sapphire to an saclasses directory at the document root of the Web server. Do this for any framework updates. Install additional classes in the same directory. If you wish to change this directory just change the codebase tag in the applets and move the class files to the corresponding directory. The class files were built using the JDK 1.0.2 Java compiler with optimization turned on. If for any reason you rebuild these class files (not recommended) you should build the same way that we did.
The Framework contains two classes derived from java.applet.Applet. One, Sa.SaJavaDrill.class, is capable of building a large scale database application of arbitrary complexity from simple applet tags. The other, Sa.SaJavaRowSet.class, is an invisible Java data control that provides a programming interface which is scriptable from either JavaScript or VBScript. The data control responds to a subset of the applet tags that Sa.SaJavaDrill.class responds to. The Sapphire distribution contains several tutorials that show the use of these two classes. In addition, a pre-built Sapphire project showing several applications built around the drill down applet, javaclient, demonstrates key framework capabilities and contains a set of on-line HTML documentation files.
The Sapphire framework works off the paradigm of a master view of a data row set and as many detail views related (although not required) to the selected row of the master.Each can perform insert, update, delete, login, and refresh. You specify an instance of a framework application through the applet tags. This minimizes the number of classes used, which reduces the download time to the client and its memory usage on the client box. It also produces a common look and feel across many applications which can be updated easily when a newer version of the framework is installed. It also allows many applications to be written and deployed without writing any Java or even using a Java complier.
Applet tags whose name ends in a number are sent to a detail of the same number. Tags without the trailing number apply to the master view. The framework uses generic text view classes for the master and detail views by default. You can change any view with the applet tag rsview. The framework also contains a graph view.
The framework is extensible. For example you could add you own generic view classes (inherit from the Sapphire base classes). These can then be used by others in your development team, who will again have to write no lines of code. Just add a parameter tag to the applet and the Sapphire framework will load the your view class dynamically. You can design view classes by plugging in existing Java classes (spreadsheets, graphics, statistical analysis, ORB's). There are two types of view classes: pop-up detail views and master views. Usually you implement the later and the former is simple wrapper
code around it. The framework contains 2 base classes specifically designed for building specific view classes which integrate with your Java development system. A typical setup is as follows.