README File - JClass BWT 2.0.1 for JDK 1.1

Copyright (c) 1997 by KL Group, Inc. All Rights Reserved. 

Products
--------

This release of BWT is composed of 2 products corresponding to the 
2 JDK versions:

BWT 2.0.1T - "transitional Bean" library for JDK 1.0
BWT 2.0.1 - library for JDK 1.1

Both products have the same programming interface and methods. BWT 2.0.1T
supports a JDK 1.1-style of event processing which replaces the
JDK 1.0 event handling model with a callback mechanism similar to that
used by previous versions of BWT.

If you develop applications using JDK 1.0 and BWT 2.0.1T, you can
later move to JDK 1.1 (and BWT 2.0.1), and your code can remain
unchanged.

Programs developed with an earlier version of BWT are not compatible
with this release. See the end of the file for conversion instructions.

NOTE: JDK 1.1 is not currently (Mar 1997) supported by any browser
except for Sun's HotJava, which may be downloaded from
http://www.javasoft.com/nav/download/index.html).
HTML pages containing JDK 1.1 applets can only be viewed by
the JDK 1.1 appletviewer.


Files Contained Within This Release
-----------------------------------
Once you have obtained the file jcbwt201.zip or jcbwt201.tar.Z, 
extract (unarchive) its contents. Both the zip and tar files
are functionally equivalent; the only difference between the two 
is the compression scheme used to compress their contents. When 
the files are extracted, the following directories and files will be available:

- jclass/bwt/api/ [directory]
- jclass/bwt/examples/ [directory]
- jclass/bwt/demos/ [directory]
- jclass/bwt/lib/jcbwt201-classes.zip [file]
- jclass/readme-bwt201.txt [file]

The jclass/bwt/api/ directory contains hypertext documentation of 
all of the JClass BWT classes. To view the information contained 
on the .html files, open jclass_bwt.html within a Frames-capable 
browser (such as Netscape Navigator 2.0 or higher, or Internet 
Explorer 3.0). If you do not have a Frames-capable Web browser, 
open default.html within your browser instead, which explains 
how the JClass BWT API is arranged, and then proceed to 
toc.html, the Table of Contents file. The information in these 
files can also be found in a non-hypertext format in Appendices 
A, B and C of the JClass BWT manual.

The jclass/bwt/examples/ and jclass/bwt/demos/ directories contain
sample Java programs that incorporate JClass BWT components. 
An index.html file has been provided, which
provides a convenient way of accessing the Java applets within 
the directory. The Java programs can also be run directly from 
the command prompt. A complete listing of these programs can be 
found in Appendix F of the JClass BWT manual.

The jclass/bwt/lib/jcbwt201-classes.zip file contains all of the 
BWT Java class files. 
Add a statement to your CLASSPATH that points to this file. If you are 
using the BWT release files in a development environment, 
do not attempt to extract (unarchive) the contents of the 
jcbwt201-classes.zip file, as its contents are automatically read by Java. 

jclass/readme-bwt201.txt (this file) is an ASCII text file containing 
information about the files contained in this release. The file
can be viewed through any text viewer (such as Notepad or 
WordPad) or a word processor.

BWT 2.0.1 Requirements
----------------------
- JDK 1.1


BWT 2.0.1 Tested Platforms
--------------------------
The following platforms have been tested:
- Sun Solaris JDK 1.1
- MS Windows NT JDK 1.1


Closed bugs
-----------
- the temporary line drawn when moving a JCSplitterWindow's separator
  was not visible
- adding data to a JCMultiColumnList after it was visible would not
  resize its columns, and would only show the first column
- double-clicking a JCOutliner's non-folder node would not cause a JCActionEvent
  to be dispatched
- if a JCSplitterWindow's separator was moved, resizing the window
  later would cause the separator to be moved back to its original position


Converting Programs Using BWT 1.0
-----------------------------------------------
This release uses JDK 1.1-style events. JDK 1.0 event handling is not
supported, and has been replaced by a series of callback-style event
listeners. See jclass/bwt/api/BWT-EventSummary.html for a complete listing
of all BWT events.

For example, previously the following code could be used to process a
JCButton press:

public boolean action(Event ev, Object what) {
	if (ev.target == myButton) {
		...
	}
}

This has been replaced by registering a JCActionListener with the
button, and providing an actionPerformed method:

class myClass implements jclass.bwt.JCActionListener {
	JCButton myButton;
	public void actionPerformed(jclass.bwt.JCActionEvent ev) {
		if (ev.getSource() == myButton) {
			...
		}
	}
	...
	myButton = new JCButton("hello");
	myButton.addActionListener(this);
}

Similarily, all BWT callbacks have been replaced by an equivalent listener.
For example, previously the following code could be used to process a
JCList selection:

public class fontChooser implements BWTCallback {
	JCList names;

	public boolean callback(Component caller, 
				int reason, BWTCallbackInfo cb_info) {
		if (cb_info.getStage() != BWTCallbackInfo.END)
			return false;

		JCListInfo info = (JCListInfo) cb_info;
		if (caller == names) {
			font = new Font((String) names.getItem(info.getRow()),
							font.getStyle(), font.getSize());
		}
		...
		return true;
	}
	...
	names = new JCList();
	names.setCallback(BWTCallback.LIST_SELECT, this);
}

This has been replaced by registering a JCListListener with the list:

public class fontChooser implements JCListListener {
	JCList names;

	public void itemStateChanged(JCItemEvent ev) {}
	public void listItemSelectBegin(JCListEvent ev) {}

	public void listItemSelectEnd(JCListEvent ev) {
		if (ev.getSource() == names) {
			font = new Font((String) names.getItem(ev.getRow()),
								font.getStyle(), font.getSize());
		}
	}
	...
	names = new JCList();
	names.addItemListener(this);
}
