Changes in SuperWaba 3.3

1. Added Piet Jonas code to fix a catalog bug at desktop that make it fail when you close a Catalog and immediately reopen it afterwards. Then the GC didn't get a chance to close it (or only sometimes).
2. Fixed bug when openning the catalog, writting one record, closing the catalog makes the catalog corrupt in Windows CE.
. updated some txt files (like how-to-start) that was with old information.
. updated the 3 tutorials.
3. fixed again some files in the bin directory that was using \\ instead of /
. added waba.sys.AppExitException. I forgot to add it. Its lack will cause a class not found exception when you do a popupBlockingModal and tap "home" to exit the application
4. new positioning constant: FIT. Used in width/height to make the control fit in the remaining area. For example, if you add a Label to the bottom of the screen, you can now use FIT in the height to make the ListBox fit in the remaining height. Note that FIT must also be used after all controls of the right/bottom were added, and you must set the x,y position relative to a control in the left/top.
5. now if the Label text is "", getPreferredWidth returns FILL instead of PREFERRED.
. new superwaba.ext.xplat.util.xml to deal with XML. Thanks to Giovanni Remigi.
. increased the stack size to 8kb in PalmOS (requested by Sir Anodos). Need to add file palm-pref.r to the CW project.
. fixed documentation to handle Handera Jogdial support. See IKeys.JOG_xxx for details.
. fixed documentation of MultiEdit.
6. fixed ProgressBar ignoring width/height information. Also optimized it.
7. finished the other functions in the examples/SWCalc. SWCalc is now released as freeware in PalmGear.
!8. moved Math.rol/ror to waba.sys.Convert, to make possible run it in the desktop. Also fixed the routines and added some fields.
. removed PushButtonGroup.onEvent(type,x,y) method.
9. Now Warp tests if a class/file is bigger than the alowed limit (64kb-32bytes)
. moved MethodsHash to superwaba/apps/xplat
10. added support to pass a file to be imported by MethodsHash. The file must have each line as follow:
       superwaba/ext/palm/io/print/pboy/NativeMethods|void graphicsFillRect(superwaba.ext.palm.io.print.pboy.PBoyGraphics obj, int x, int y, int width, int height)|alternativeMethodNameIfNeeded
    . here you can see that the separator between package and native signature is the | char. You may use another | for the 3rd parameter
11. Fixed Convert.toDouble when dealing with small numbers. It was converting 2.000001 to 2.1
12. added code from Fabio Calegari to fix some problems in the Grid class.
13. added a sys trap to allow appear some fatal error dialogs in Palm OS < 3.5
14. added a NetLibConnectionRefresh before each read/write
15. added the cmdLine to the "can't access app classes" error message.
. Retroguard is now used again as the bytecode obfuscator. This happens because Jopt has a fatal bug: it optimizes *2 to <<1 and /2 to >>1; this is ok for numbers > 0, but has problems for numbers < 0. For the SuperWaba classes this is not harmful, because i already did this by hand in all code. But for user programs, it can be a problem.
16. added Peter Dickerson code to fix byte, char and short convertions.
. moved Retroguard and Jopt to superwaba/apps/xplat/obfuscators
17. added method Catalog.listCatalogs(creatorId, type) to let you specify the creator/type as wildcards. New method Convert.chars2int to convert a "Crtr" or "Type" to int so it can be used in this function.
18. added new Socket constructor where it accepts a new parameter, noLinger, that when true lets you create_and_close more than 16 socket connetions at PalmOS.
19. added method Graphics.drawPolyline. Works the same way of a polygon, but does not closes it.
20. added Oli E code to set the title of the appletviewer (/t parameter)
21. fixed painting problem of PopList
22. fixed Vm.dumpStackTrace. Now an uncaught exception correctly outputs the stack trace
23. added Wolfgang code to fix a problem in ListBox.removeAll where new items were not correctly displyed if the listbox was scrolled.
24. added Kambiz code to MultiEdit where it will change the height only if it is PREFERRED
. Added Yehuda Miron update to the Watch demo, now with 3 subclocks and fixed support for high res displays
25. added Sir Anodos code to fix a problem on pumpEvents that was causing it to block forever in isEventAvailable
26. added code to fix a problem in the IR when receiving data in Palm OS.
27. moved all 64bit math routines from nmpalm_wabasys.c to superwaba_funcs.c to shrink the size of the SWNatives.prc that was reaching the limit of 64kb. Also removed 64bit arithmetic from SWMath.c. With these moves, the vm total size shrinked 1kb. You can place this file in the project between the files SWMath and LongLong.
28. added Sir Anodos code so you can easily check vmGlobals->vmStatus to see if an exception was thrown from within native code.
29. putted back Graphics.setColor(r,g,b) - avoid using it; it is rather slow.
30. added StringBuffer.delete.
31. removed all classes from WGL, keeping only wgl.html and moved it to a new package. You can easily change the TextArea by the waba.ui.Label, which has scroll capabilities (See waba.ui.MessageBox); to parse the text, use Convert.insertLineBreaks. Optimized html package.
. removed IntHashtable.toString.
32. new superwaba.ext.xplat.util.Properties class. Used to store pairs key,value into a hashtable. Defines classes Int,Str,Boolean,Double,Long. Can save and restore itself from a DataStream
33. new Game framework (superwaba.ext.xplat.game)! created by Frank Diebolt. New example/PingGame
34. added Andrzej Jan Taramina code to support BlueTooth. Added one new constant: SerialPort.BLUETOOTH (note: this constant is only available in PalmOS; i couldnt find a way to make it work in WinCE )
35. new classes SerialSocket/SerialSocketServer! By permission from Rick Grehan, got his code from this article (http://www.fawcette.com/javapro/2002_01/magazine/columns/javatogo/default_pf.asp) and placed in superwaba.ext.xplat.io.
36. (Will be finished in version 3.4!) Got the html classes and io.SerialSocket classes to create a real useful webbrowser that can be used with the Palm in the craddle.
37. Changed SocketTest to test also using superwaba.ext.xplat.io.SerialSocket.
38. Changed waba.io.NativeMethods4JDK to use introspection for javax.comm.SerialPort. This way, there's no more need to recompile the VM to use waba.io.SerialPort at the desktop; all you need to do is add the /superwaba/apps/xplat/commapi/comm.jar to the classpath and thats it!
39. fixed problem when using SerialSocket that was causing a library with reference 0 to be called.
40. added isOpen to waba.io.Stream
41. Created classes SerialPDB and SerialPDBServer, to work like a conduit without the need of Hotsync. You'll be able to get data from a pdb (and a txt) in the PDA and place it in the desktop, and vice-versa.
42. changed SerialPort.readBytes at desktop to read fully the wanted bytes
43. added Scanner.setParams(int, int, int) to set various parameters for the Scanner. added Scanner.setBarcodeLength
44. changed waba.io.NativeMethods4JDK.toPDB to don't force the Attrbackup bc the user may want to clear it
45. added code in ScrollBar, ListBox and MessageBox to scroll using the jog dials
46. new method Graphics.drawImage(img, x,y, drawOp, backColor) to optimize sprite drawings
47. new String Settings.appSecretKey to save a String in the saved preferrences with a creator id different of your application's. The new creator id is computed based in the app creator id.
. integrated into the javadocs the xplat.io.print and palm.io.search so people can see what SW has under the mood.
48. added again /i option in Exegen. Now it can be used to specify a prefix for the iconxxxx.bmp files.
. made a directory hierarchy for the examples
. fixed some @ return in the javadocs.
. added Alexsander Gross libraries that read PalmDoc and zip. Note that the zip is rather slow and may be optimized later.
49. added new option for warp: /i (the opposite of /x) to include only the files specified in the list
50. fixed bug when openning socket.
51. integrated Andy's work WDBC IBM DB2Everyplace
52. added new public boolean fullHeight to ComboBox and PopList to specify that the popList will have y=0 and height=ScreenHeight.
. made all methods and fields in Button protected instead of private
53. with the help of Rafal Mackowiak, fixed problem of SW running on HPC ARM 800x600 (not displaying fonts)
. added ce/PocketPC/x86Emulator file so people can test SW on Emulator.
. Added Andy's bug fixes to DB2e driver:
   1. Fixed position bug: ResultSet.absolute() would fail to properly position the cursor after next() had iterated past the end of the ResultSet.
   2. Fixed bug where DB2e types were not being properly translated to SQL types when getColumnType was called.
   3. Db2eSetCursorType now sets SQL_ATTR_CURSOR_TYPE and SQL_ATTR_CURSOR_SCROLLABLE attributes.
   4. Removed debug output.
   5. Inserted a few carefully placed MemSemaphoreReserve and MemSemaphoreRelease calls in native code for two reasons:
     a. To prevent DB2e from harming other pdbs in case of a bug.
     b. To allow events (button presses, etc) to be queued while doing CPU intensive work (such as executing a query).
     - NOTE: These calls are carefully placed!  One must be sure not to place these calls around any DB2e
   function that would access a bound variable in any way, as a bound variable in SuperWaba is located in protected memory
54. added Erich Roth code to fix SIR support.