Waba Extras v1.30
Introduction
This is a set of classes that implement some additional functionality to
Waba, a small java like language for
palm sized devices like the PalmPilot and WinCE. This package was
originally called WabaAWT for when Waba had no UI components of it's own
but many of the classes in the original package have now been replaced by
standard Waba controls so are no longer needed. Those that are left have
been converted to be standard subclasses of the Waba Control class.
Features
- UI Extras - Layout containers like RelativeContainer and
GridContainer which allow you to layout Controls quickly and easily with
a lot of flexibility, extra Controls implementing dropdown Lists, Title
bars, Pushbuttons, Menus and BigNumbers as well as a replacement MainWindow
which automatically uses a RelativeContainer for layout and supports
double buffering to avoid flickering.
- IO Extras - BufferStream and DataStream which can sit on top of
any other stream class (SerialPort, Catalog, File, Socket) to make it easy
to read and write standard data types like ints, Strings, and floats.
Also classes for accessing the four builtin Palm applications - Datebook,
Address, ToDO and Memo as well as ObjectCatalog which allows
serialization of objects.
- Util Extras - A fairly comprehensive Maths class with all the
standard maths functions.
- Development Extras - Java versions of warp and exegen with
support for adding packages anywhere in your classpath, as opposed to the
standard tools where packages must be in the same directory. Also
replacements for waba.io.SerialPort, which uses the
java comm
extensions to talk to the PCs serial port instead of doing nothing and
waba.io.Catalog which will save and load catalogs to the current directory.
Usage
You should find there are now 4 subdirectories: src, docs, classes, and
apps.
-
src contains the java source code for all the classes in the
package. This is useful to see how the components work as well as letting
you fix or improve things.
-
docs contains the javadoc documentation for the packages. Just
open the index.html file (or packages.html for JDK1.1) in your browser.
-
classes contains all the classes used in waba extras. If you
decide to use the standard warp and exegen programs instead of the
included java versions you will have to copy the 'extra' subdirectory
inside this one to the directory your application files are.
-
apps contains some example programs that use the Waba Extras
package. You can compile them by running each of the batch files in this directory.
Java Warp and Exegen
The java versions of warp and exegen can be run with java wababin.
Warp
and java wababin.Exegen
and the parameters are
the same as the standard versions but there are a few extra features.
Warp will now look through the class files you add and find dependent
classes and directly referenced ".bmp" files, which it looks for in the
classpath and adds them to the warp file automatically. This means that
instead of
java wababin.Warp c MyApp MyApp.class extra/ui/*.class extra/io/*.class
you can just use
java wababin.Warp c MyApp MyApp.class
and it will find all those dependent classes. Actually, since the main
class has the same name as the warp file, you can leave that off too,
which lets you just write
java wababin.Warp c MyApp
Of course, if you were making a library you'd want to add everything so
you do have to do it manually. Also, Warp will warn you if it finds any
references to the java heirachy (eg. System.out.println()) which will
cause problems on the WabaVM.
Another addition is that you can specify a creatorID in Exegen.
Details can be found by running either program with no parameters.
Freeware
You are free to do whatever you want with these classes as long as you don't
try to pass them off as your own. The source is included and I would
appreciate it if you send me a copy of any bugfixes, improvements or additions
you make to it so I can include it in this distribution. I'd also be
interested to hear your thoughts on the package and of anything you create
with it.
Rob Nielsen
rob at roblisa dot com
http://roblisa.com/rob
27th March 2000
Thanks to:
Version History
- 1.00 27th April 1999
Initial Release
- 1.01 2nd June 1999
Added double buffering support to ExtraMainWindow
Added Joe McDaniel's Maths class
Improved ObjectCatalog to support less structured data
- 1.02 20th August 1999
Fixed beta 8 bugs in List, modified exp() method in Math
on Steven Rohall's suggestion.
- 1.10 27th August 1999
Added java versions of warp and exegen and replacements for SerialPort
and Catalog
- 1.11 2nd October 1999
Removed JDK1.2 specific code, added setup.sh for unix platforms (thanks
to Alain M. Gaudrault and Mike Chen) and fixed bug in Catalog (thanks to
Olaf Merkert)
- 1.12 4th October 1999
Fixed bug with wababin.Warp not adding files from classpath and added
unix 'sh' files for sample programs. (thanks again to Alain)
- 1.20 19th October 1999
Added BufferStream and DataStream. Moved ObjectCatalog and Storable
to extra.io
package. Added extra.io.builtin
package. Fixed bug with pushbuttons dying if they have no group.
- 1.21 8th November 1999
Updated to Waba beta9. Modified Warp to parse class files for
dependencies.
- 1.30 27th March 2000
Finally updated to Waba 1.0. Added MenuBar, improved speed of Maths functions,
thanks to Jody Nickel.