General J2ME MIDP Waba SuperWaba Crossfire MobilVB Design Implementation

Java Development on PDA , Addison Wesley eBook [CHM in RAR] extra info

Java Development on PDA

With the release of Java 2 Micro Edition (J2ME), Sun Microsystems
opened Java to the rapidly expanding Personal Digital Assistant (PDA)

This comprehensive tutorial and reference provides an in-depth look at
developing PDA software with J2ME and PersonalJava, covering both Palm
and PocketPC devices. Succinct and practical, Java(TM) Development on
PDAs focuses on real-world programming tasks with extensive code
examples and an end-to-end PDA application demonstrating techniques
for integrating devices with the enterprise via Web services.

This book describes the J2ME platform and PersonalJava and discusses
design issues specific to resource-constrained devices. It also
provides in-depth coverage of networking and Internet access, the user
interface, data storage, and integrating PDAs into the corporation.

You will learn to develop Java applications for PocketPC and Palm
devices through in-depth coverage of:

- J2ME configurations
- CLDC and CDC profiles
- Selecting a PDA for development
- PDA development tools
- Designing for constrained computational capability
- Designing for constrained screen and memory size
- PDA user interfaces
- Storing information on the devices
- The Generic Connection Framework
- Internet access from a Java PDA application via a GSM phone and Bluetooth
- Accessing Web services from Palm and PocketPC devices
Java(TM) Development on PDAs concludes with a look into the future
of PDA technology and the expanding role of these devices in the enterprise.

Palm OS 3.5 programming with Java Technology [PDF]

Some tips on Java Performance Tuning [HTML]

PDA Java support comparission [HTML]

Le PDA en entreprise? [PDF]

Palm Programming, The Developers Guide [PDF in RAR] extra info

Palm Programming, The Developers Guide PDF in RAR

Palm Programming shows intermediate to experienced C programmers how to build a Palm application from the ground up. Using an easy-to- understand tutorial approach, this book gives readers everything necessary to create a wide range of Palm applications and conduits, from simple scripts through full-blown applications, and in the process provides thorough coverage of Palm programming. It includes a CD-ROM (Macintosh and Windows compatible) with the full source code to the examples in the book, a trial version of Palm's Software Development Kit, and third-party developer tools, including Metrowerks' CodeWarrior Lite programming kit.

Palm Emulator POSE extra info

Java programming for Palm OS [PDF] extra info

An overview of what tools are available for developers.

  • The Sun Solution: KVM, Configurations, and Profiles
    • a com.sun.kjava.Database class, which is a way to get at the Palm Database (pdb) API... it's extremely primitive and doesn't give full access to everything in a pdb
  • The Kawt Solution
    • offers an API set more familiar to the Java programmer
    • While Kawt gives you a better set of classes than kjava, it's actually based on kjava and, therefore, lacks a database class other than kjava's
  • The IBM Solution
    • superior to the KVM
    • full-featured development tool that gives you full access to the Palm OS API
    • ...need to have some understanding of the structure of the Palm API and the arguments to each method
    • application performance will be far superior to a KVM-based app
    • any Palm Database you create can be synchronized with a conduit
  • Waba/SuperWaba
    • ...many more GUI components than kjava
    • ...advantage of Waba is speed. It is indeed faster than the KVM.
    • Waba also runs under Windows CE, PocketPC
    • Superwaba extensions to Waba, which provide even more functionalit

Java platform possibilities: extra info

Java platform



J2ME Introduction Presentation - Sue Spielman [PDF]

J2ME shortcoming opens door for Microsoft [HTML]

BlackBerry ~ J2ME [HTML]

...The Java-based BlackBerry wireless handhelds support the J2ME MIDP profile...

J2ME Development Tools [HTML]

J2ME Wireless Toolkit [HTML]

...state-of-the-art toolbox for developing wireless applications that are based on J2ME's Connected Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP)

...emulation environments, performance optimization and tuning features, documentation, and examples...

J2ME Core Concepts [HTML]

Native PalmOS Databases [HTML] manipulation of Palm databases from a Java application...

MIDP: Mobile Information Device Profile @ Sun [HTML]

J2ME Mobile Information Device Profile (MIDP) lets you write downloadable applications and services for network-connectable, battery-operated mobile handheld devices such as cell phones, two-way pagers, and Palm Pilots

PalmOne development resources [HTML] registration needed

palmOne has expanded the choices available to developers for the creation of mobile solutions by licensing a Java 2 Micro Environment runtime, IBM’s WebSphere Micro Environment, for the Tungsten line and the Treo 600 smartphone

Databases and MIDP part1 part2 part3 [HTML]

Eric Giguere articles [HTML]

J2ME, Wireless Java, MIDP specialist

Waba info extra info


The Waba application can be considered like applet in the Java world.  Waba provides a small set of APIs to write the applications.
You can't use long or double datatypes, threads or exceptions or your Waba program will not run under a native WabaVM.
The WabaVM is not only for Palm, but also for WindowsCE pda, Windows and Linux platform.


Class Hierarchy

    Image (implements ISurface) 

    Window (implements ISurface) 

Interface Hierarchy 



The fx package provide many classes for managing the aspects of the User interface like the color, font,.....


The main User Interface class is the MainWindow.
This class is responsible to show all controls for User Interaction.
There are 5 controls (Button, Check,  Edit, Label and Radio ) and 2 containers (TabBar and Window).

Waba UserInterface Controls

Difference with the standard java AWT (Abstract Window Toolkit):

  • No Layout manager
  • No Listener
  • No Panel, Canvas, ScrollPanes
  • No List
  • No Choice
  • No Dialog
  • No ScrollBar
  • No TextArea

You can eventually extends the provided controls list by extending the Control class.

Input / Output:

The Waba SDK provide a rich set of IO classes.
The main first interesting class is the Catalog.  This class allow to store and manipulate data in Palm database format.
You have also the possibility to manipulate Socket (TCP/IP) and the Serial port .


There are 3 classes in the waba.sys package : Convert, Time and Vm.
The convert is use to convert data types.
The Time is used for the date/time calculation.
And the Vm lets access some specific properties like the possibility to launch other applications (prc files).

Palm Programming with Waba [PDF] extra info

...looking deeper into the solutions...
...Waba, an open source, Java-like language...

SuperWaba extra info


An introduction to SuperWaba

SuperWaba Jump Toolkit

Jump is a software development tool for Java on the PalmOS platform. It compiles Java classfiles to self-contained 68K assembly language programs for Pila.
WabaJump tutorial

SuperWaba PDBdriver manual

IntelliJ IDEA 4.5 (kygn)

  1. open IntelliJ IDEA 4.5
  2. select menu File -> Settings (Ctrl+Alt+S)
  3. select within the project settings: Paths
  4. select Libraries
  5. add SuperWaba.jar library to the project(from your SuperWaba\lib folder)
  6. go back to the settings window
  7. within the IDE Settings select 'File Templates' (N)
  8. use the '+' to add a new template
  9. call this template 'SuperWaba MainWindow'
  10. add the follwing code in the content field:

    package ${PACKAGE_NAME};
    import waba.ui.*; import waba.fx.*;

    public class ${NAME} extends MainWindow {
    String col0[] = {"Options","Cut","Copy","Paste"};
    String col1[] = {"About ${NAME}","Info"};

    public ${NAME}() {
    setMenuBar(new MenuBar(new String[][]{col0,col1}));
    public void onStart() {


    public void onEvent(Event event) {


    public void onPaint(Graphics g) {

  11. close the settings
  12. additional templates can be copied from the MobileCreator SuperWaba IDE
  13. now you can right click anywhere in your source code folder, select New->SuperWaba MainWindow? and create a mainwindow in seconds
    In the newly created source file, you automaticly get syntax highlight, code complete and other goodies of IntelliJ? IDEA!
  14. To test your SuperWaba applet:
    • select menu Run -> Edit configurations
    • select tab Application
    • use the '+' button to add a new configuration with name: AppletRunner
    • select 'waba.applet.Applet' as the main class (using the Main Class Choser -> Project tab -> Libraries -> SuperWaba.jar -> waba -> applet -> Applet -> OK)
    • set the path of your current project as the working directory (set by default)
    • set the mainwindow class name as the program parameter
    • select your project as classpath and JDK of module
    • select menu Run -> Run (Shift+F10) to see your SuperWaba program up and running
  15. Using Ant to generate .prc and .pdf files:
    • install Ant from
    • make sure the ANT_HOME is added to your system variable set
    • download the SuperWaba Ant script from Guilherme Hazan
    • extract the build.xml file to your project's directory
    • open the build.xml file within IntelliJ IDEA
    • change the build.xml to match your project's configuration
    • replace the 'agenda' project name with your project name
    • sw.root: specify here the place where SuperWabaSDK was installed
    • classpath.append: you may specify any extra file to add to the classpath
    • version: specify your application's version, change this value. This version is stored in the prc/exe executable files.
    • app.creator: type the Creator ID - crid - of your application. The crid is a 4-letter code that uniquely identify your application with at least one Capital. Select 4 letters and register it in
    • specify your application's name, without the package
    • main.class: specify the complete name
    • app.title: specify the titile that appears in Windows CE devices. The default would be the main class name
    • app.package: specify the path (from project home) to the folder where the classes are located that must be included in the .pdb file
    • safe the build.xml file
    • open the Ant sidebar and add the location of the build.xml file with the '+' button
    • right-click on the 'run-wrap' line and select 'run'

    • Note that there exists three public targets: one that calls Warp, one that calls Exegen, and one that calls both. In the majority of the cases, Exegen only needs to be executed once (the exception is when you are creating CAB installation files, or changes the program's icon, title or version). Besides, Warp must be executed every time that a source code is changed.
    • Do a double-click in the 'run-exegen' target. The output will be shown in the console window.
original tutorial by RichardYu


  • Select Help -> Software Updates -> Find and Install.
  • Select "Search for new features to install...".
  • Select "New remote site...".
  • Enter the update site:
  • Check the SuperWaba IDE feature and install.

  • Start eclipse
  • Start a new project, select File -> New -> Project, and then SuperWaba -> SuperWaba Project
  • Follow the normal steps until the last page, when you must select a SuperWaba SDK installation. If this doesn't work, go to the next step
  • If you've installed the SDK in a directory other than c:/SuperWabaSDK, or you have several SDK installations (for testing purposes, perhaps), you should configure your SDKs in the Window -> Preferences -> SuperWaba dialog
    set the SuperWabaSDK to the SuperWabaSDK home directory (i.e. directory that contains the \lib, \bin and \doc directory...)
  • Let's create a MainWindow, so select File -> New -> Other, and then SuperWaba -> MainWindow.
  • Fill the textboxes according your preferences, and it will create a new MainWindow subclass with some default methods I hope you will probably override.
  • It is NOT a recomended practice to place your controls directly in MainWindow. Instead, you may use a Container subclass. There is a wizard for Container creation. It is similar to MainWindow wizard. You can access it from File -> Other, and then SuperWaba -> Container.
  • The plugin provides a launcher which executes your application using the waba applet. You must create a new SuperWaba Application in the Run -> Run/Debug.
  • It is possible to launch a application without have to create a launch configuration manually. If you select Run -> Run/Debug As -> SuperWaba Application, it will search the MainWindow class of your project, and create a launch configuration with the default settings.
  • Let's package our application for deployment. There is a new option in project's context menu. Select Build SuperWaba Application.
  • It will open a build dialog, where you can fill your build options. There is a radio group to select what you want to build too (only Warp, only Exegen, Exegen with Pocket PC .exe or .cab).
  • After choosing OK, it will generate a ANT buildfile called build_superwaba.xml (the name is not build.xml to not override your own buildfile) and will launch ANT with your choosen target.
  • If executed successfully, you will need to refresh your project, and you will see 2 new directories: build and dist. Build will contain temporary files generated by ANT. Dist will contain build result; the files you want.
Configure Eclipse for SuperWaba tutorial
SuperWaba synchronization tutorial using jSync Conduit

AppForge Crossfire MobileVB demo video extra info

...integrates seamlessly into the Microsoft Visual Studio .NET or Visual Basic 6.0 IDE
enabling you to immediately write applications, using the Visual Basic .NET programming language (Visual Basic 6 language support included in Crossfire through MobileVB) that will run on over 90% of the world's handheld, mobile, and wireless devices including Palm OS, Pocket PC 2000/2002, Windows Mobile 2003, Nokia Series 60, and Symbian UIQ


AppForge Crossfire

DB Design [VisioModeler IMD] [PDF] PDA Design [PDF]

Interface design extra info

Interface Design

Doctor list with DB connection (first draft), needed interface adaptation for use with grid
Interface Design

Doctor details with DB connection (first draft)
Interface Design
Doctor product interest details
product interest
Appointement details
Appointement details
Task details
Task details
Select date
Select date
Gridfilter (not functional yet)

Implemenation: zip

Installation extra info

Windows environment variables needed to set to compile SuperWaba:
  1. 'classpath' -> add: 'C:\Program Files\Ant\bin;C:\Program Files\Java\JavaSDK\bin;C:\Program Files\SuperWabaSDK\lib\SuperWaba.jar;C:\Program Files\SuperWabaSDK\utils;C:\Program Files\SuperWabaSDK\lib\xplatsqlpdb.jar;'
  2. 'path' -> add: 'C:\Program Files\Ant\bin;C:\Program Files\Java\JavaSDK\bin;C:\Program Files\SuperWabaSDK\lib\SuperWaba.jar;C:\Program Files\SuperWabaSDK\utils;C:\Program Files\SuperWabaSDK\lib\xplatsqlpdb.jar;'
  3. 'ANT_HOME' -> home dir of ant, eg: 'C:\Program Files\Ant'
  4. 'JAVA_HOME' -> home dir of java, eg 'C:\Program Files\Java\JavaSDK' where /bin directory is within JavaSDK directory
IntelliJ IDEA installation: see SuperWaba extra info section
Emulator and m500 rom file
Palm OS Emulator (POSE)

SuperWaba Palm files needed to install
Palm prc and pdb program files
General J2ME MIDP Waba SuperWaba Crossfire MobilVB Design Implementation