Changes in SuperWaba 5.68 (20060606)
1. rnovais - select with LIKE statement now accepting both the char '%' at the middle (just one) and without '%' (this case is the same as EQUALS).
2. added Settings.deviceId, a String that can be used to identify the device.
3. now we get the user name using a standard function in win32 vm.
4. changed GPRS.openConnection(long) to (int).
5. fixed quick sort routines. Replaced > by >= in the while for limit test
6. added HttpStream.sendSleep (see javadocs, same as for the FTP class). This fixed problems with softick.
7. fixed wince cab file generation: the installdir had an extra " that was preventing the correct installation in a storage card.
8. fixed File.setPos at desktop not really growing the file when the position was set beyond the file. RandomAccessFile.seek was not growing the file until something was really written, so now we use setLength instead.
9. fixed Random.rand(int,int) not returning values above 65535 when requested.
10. rnovais - Created support to DATE and DATETIME functions in PDBDriver (year, month, day, hour, minute, second, millis).
11. rnovais - Created test case to SQL functions: DATE and DATETIME (year, month, day, hour, minute, second, millis).
12. fixed SerialPort.setReadTimeout returning false when it should be true.
13. added a delay for the readLine in StandardHttpClient. This will avoid problems with a slow connection with the XmlRpc.
14. now when you call Catalog.rename, i set the internal reference to 0. This avoids that a further cat.close cause a reset.
15. fixed Catalog.rename at Wince, where a second rename of the same file was failing.
. deprecated FTP.sendFile(storeUnique). The STOU command does not work as expected so i have created a new method without that parameter.
16. added Virgilio Fornazin code that fixes a problem when Settings.keyboardFocusTraversable is true and the currently focused control was removed.
17. fixed again problem with 567_4: now the change to swapFocus was causing the cursor to stay blinking when you open the Keyboard/Calculator/Calendar. Putted back the original code and made a sample on the Edit javadocs explaining how to open a Window when a FOCUS_OUT occurs on an Edit.
18. fixed romSerialNumber for Treo devices.
Changes in SuperWaba 5.67 (20060523)
IMPORTANT: STARTING IN VERSION 5.67, THE PDBDRIVER FOR 68K VM (old devices with Palm OS 4.1 or lower) WAS DISCONTINUED! (but it is back on Litebase)
1. fixed PDBDriver when more than two indexes was used in the same query.
2. rnovais - Added support to DATE and DATETIME data types in PDBDriver.
3. rnovais - Created ResultSet.getDate(col | colName) and ResultSet.getDateTime(col | colName) methods
4. fixed popup keyboard not appearing on 123/abc due to 566_18.
5. rnovais - fixed validate Date and DateTime in right tree, when rightTree is not null and rightTree.operandValue is null.
6. added Edit.getKeyboardType.
7. fixed Settings.appSecretKey/appSettings returning "" instead of null in desktop.
8. added a menubar to TestSuite. Now it is possible to choose at runtime the tests that you want to run. This info if persisted into Settings.appSecretKey.
9. now the Symbol Scanner library loads the serial number of the device once initialized. This way you can query the serial number of symbol Pocket PC devices.
10. rnovais - created TestCase for the new Date and DateTime PDBDriver data types.
11. fixed problem when dynamically changing UI styles.
12. fixed problem in Palm OS when two pdas were sending data via IR and they were moved away. there was a loop to keep trying to send the data, and this loop used to take up to 40 seconds. so the loop will happen only if the timeout error doesn't occur within it.
//13. (NOT YET) - fixed fatal error when renaming tables after creating lots of resultsets with the previous table name on Palm OS.
14. fixed tableExists not freeing the name when prefixWithCreator failed.
15. fixed Vm.getTimeStamp at desktop not corresponding to the device's, which is the time since the program is running. Fixed javadocs.
16. now the timestamp used by Vm.debug at desktop is Vm.getTimeStamp instead of System.currentTimeMillis, to make it equal to the device.
17. now the main windows's onStart is called during a timer event. This makes it possible to open sockets on the onStart and call popupBlockingModal, among other things. So now the constructor is called as soon as the program starts and the onStart after a minimal delay.
. removed the thread from the sync.Conduit class, since this is already done by the vm (see item 17).
. new method
status for TestCase, which allows to inform something to the user during a test run.
. added unit.UIRobot, to be able to implement the user interface test cases. This class allows the insertion of events in a screen.
18. made Conduit.syncTarget as public, so you can easily find if the conduit is running for HotSync or ActiveSync
19. now a warning is given if the user tries to call setRect in a MainWindow.
20. fixed romSerialNumber for Pocket PC 2000 and 2002 devices.
21. fixed problem in fullscreen mode for Pocket PC not showing the task bar when the app looses focus.
Changes in SuperWaba 5.66 (20060515)
1. Added Convert.detectSortType and Convert.qsort(..., sortType) to sort items in a listbox/combobox/vector depending on the type of the data being sorted.
2. fixed infinite loop of SerialPort on desktop when reading data and a timeout occured.
3. fixed Palette.setColor not removing the old color from the cache used in getColorIndex.
4. added Rect.hashCode, which returns an int valued 0xXXYYWWHH. Made a few tweaks in the class. Deprecated Rect.SAME (use number 0 instead).
5. optimized UTF8CharacterConverter allocating at once the maximum possible buffer size and not checking if buffer was full at each char convertion.
6. added TestCase.assertBetween and assertNotEquals.
7. fixed Convert.toInt("+999"): for Java, + is not a valid part of an integer number in the Integer.parseInt, so we now return 0 for this case.
8. added a way to explicitly release records (calling DmReleaseRecord) using Catalog.setRecordAttributes(idx,Catalog.REC_RELEASE). Read REC_RELEASE javadocs for more info.
9. fixed Grid not erasing the background during a repaint when drawStripes was false.
10. rnovais - Created the RENAME TABLE command in PDBDriver
11. fixed problem in repaintNow in the following case: a button above a grid was clicked and the grid was filled with enough items to cause a grid scroll; the code called repaintNow, and at the code exit, only the button and the grid's scrollbar was marked to repaint. This was causing a partial erase of the grid. Now, if the control being "repaintedNow" is a container, we call repaint, in order to be sure that the whole control will be painted.
12. fixed Grid not correctly drawing the selected line when drawStripes was false.
13. fixed pdbdriver problems when out-of-memory occurs on device.
14. Frank - support asynchronous sound playback on PalmOS5.
15. added Log support for the PDBDriver. Use
PDBDriver.setLogLevel(PDBDriver.LOG_LEVEL_MAX) to enable it (currently only one level is supported, but in the future this will change). Note that this makes the pdbdriver slower, of course, but is crucial to help us find bugs in the pdbdriver. Turn on only when requested. Added also PDBDriver.deleteLogFiles to delete the log files.
16. rnovais - created test case to RENAME TABLE command in PDBDriver
17. rnovais - Created the RENAME column command in PDBDriver, and created a test case for it
18. fixed problem when the user captures a FOCUS_OUT event to popup a MessageBox: the Edit was receiving twice the FOCUS_OUT event (2nd time due to "setFocus(topMost)" on popupModal), and this was causing the MessageBox to appear twice.
19. Fixed a second problem that 18 was causing: if the control that caused the FOCUS_OUT was an Edit (IE, going from one Edit to another), two blinking cursors was appearing.
20. fixed Convert.toString(float) returning infinity different of the double routine. Now it returns -Inf or +Inf instead of -/+Infinity.
21. fixed Convert.tokenizeString(string,string) when one of the parameters was an empty string.
22. fixed Convert.rol/ror when using 64 bits.
23. fixed new Date("one") returning "wasDateValid = true;".
24. fixed Convert.detectSortType for negative numbers.
25. fixed Convert.qsort not checking array bounds.
26. added FTP.log2console in order to send the logs to the debug console too. defaults to true on desktop.
27. now Vm.copyArray at desktop returns false if any of the arrays are null, and throw an ArrayIndexOutOfBoundsException as in device (when any arguments are outside range).
28. now Vm.attachLibrary stores .txt located in the library and Vm.getFile can restore these when running on desktop. Before, only .bmp files were supported.
. finished unit tests for waba.sys package. test cases now must be run on devices.
29. improved javadocs of waba.util.Date, optimized a few routines.
30. improved javadocs of waba.util.Hashtable and IntHashtable, optimized a few routines.
31. fixed pdbdriver index metadata not correctly being saved after table creation.
32. added PDBDriver.processLogs. This is a robot that can process what the users send in log files.
33. added some range checking to waba.util.Vector.
. made some optimizations in all quicksort implementations in the SDK.
. finished test cases for waba.util package.
34. fixed bytecode for long shift not respecting the 0-63 count range.
35. fixed many things to make sure that device and desktop return the same thing. One of the results is that the exponent sign is now E instead of e.
36. fixed SMTP class, conform sender & recipients information to the smtp protocol
37. now BigByteArrayStream.flush also calls setMode(READ_MODE). This will fix problems that distracting users may have by not calling it.
38. new double/int/long to String and vice-versa routines. Smaller, faster and accurate.
39. fixed str2double when the number ends with 'F' or 'D'.
40. fixed Time.toString not considering 12 as PM and using 00 AM instead of 12 AM. Thanks to King Chiang to point out the problem.
41. added ImageScroller.borderColor so you can change the color border, or set to null if you don't want a border.
42. fixed translateAndClip not correctly returning 0 when width or height was 0.
43. fixed some graphics routines not checking if width/height <= 0.
44. now the device uses the same fillPolygon algorithm of the desktop.
45. fixed drawDottedCursor/drawCursorOutline behaving differently at desktop and device
46. fixed applyPalette at device doing strange masks (0x0F instead of 0xFF).
47. fixed /? switch on command line not informing the usage parameters.
48. fixed getPixelRow on non-palletized mode.
Changes in SuperWaba 5.65 (20060413)
1. Added support for int/double/date sort on Grid. Read javadocs for Grid.sort.
2. Added new Grid constructor to automatically compute width and alignments.
3. added /autorun command line option to SWUnit. Here's a sample of how to autorun a test on eclipse: "/w 320 /h 320 /scale 1 /bpp 2 /cmdline /autorun superwaba.test.SWAPITests"
4. Removed package junit.framework. Now the classes are inside superwaba superwaba.ext.xplat.unit. Removed SWUnit, now you must extend TestSuite directly. Removed SWTestCase, and renamed addTestSuite method to addTestCase. These changes were necessary to make the package more powerful. Check the PDBDriver testcase sample to know what had changed. Things got easier than before.
. Started the creation of a complete test suite for the API (currently, only PDBDriver has one). This will help homologate SW for other devices. This will be used internally by the SW Team.
5. added TestCase.assertGreater, assertGreaterOrEqual, assertLower, assertLowerOrEqual.
6. fixed problem with global variables initialization of test cases. Since the test was started in the constructor of the TestCase class, the constructor of the class that extends TestCase was not being called, and thus its global variables was not being initialized.
7. new class unit.ImageTester to help to create testcases that can be used to compare screens. See the class' javadocs for more information.
8. fixed again JZlib when the input buffer was too small. now we use a fixed-size buffer.
9. fixed device returning the wrong name of the font when the font was not found (it was returning "SWLarge" instead of "sw", as in desktop. First bug catched with the new test suite. :-)
10. fixed BigByteArrayStream not correctly handling 1-byte accentuation characters.
11. fixed MessageBox problem due to 564_16.
Changes in SuperWaba 5.64 (20060407)
1. now the sync/painter sample is included again in the sdk.
2. fix issue on Graffiti events during VM startup (PalmOS only)
3. rnovais - improved PDBDriver documentation's layout in SuperWaba Companion LGPL.pdf
4. now the ResultSetMetaData, at desktop, throws a RuntimeException if you try to use it after closing the ResultSet object. Doing this at device will blow it up because the device usually has less consistences than the desktop (due to processing power). Never use a RSMD after closing the RS.
5. fixed File.listFiles at desktop when the path ends with /
. commented out e.printStackTrace on device. This routine is buggy and often cause resets.
6. added waba.ui.UIColors to easily control the default colors of some controls: tooltip, messagebox, inputdialog, calendar, calculator, keyboard, keypad.
7. changed colors of some controls above
8. changed Keyboard to show letters in uppercase when pressing shift/capslock.
. changed a bit the UIGadgets to open an InputDialog sample.
. deprecated Color.default(Fore/Back)Color. It is no longer working: you must use UIColors.controlsFore/Back instead.
9. now at desktop, after a driver.closeAll, any try to use the instance again will throw a RuntimeException. This is specially useful for problems in PreparedStatements being used after a closeAll.
10. added support for horizontal scroll on TabPanel if the total width of the captions are greater than the TabPanel's width.
11. now in TabPanel, the selected tab's caption is bolded.
12. TabPanel.getPreferredHeight returns just the height for the title instead of it+20.
13. added support for images in TabPanel as a new constructor. Each one can have different height; it will be vertically centered on screen.
14. added TabPanel.activeTabBackColor to paint the selected tab with a different color. This is specially usefull for image tabs.
LEFT TO NEXT VERSION - 15. added a DmSyncDatabase in PDBDriver to avoid loosing data on NVFS PDAs.
16. fixed Window border gaps in getClientRect method, which was one pixel bigger at left/right/bottom.
. added a sample to html.Document showing how to load an image from a file instead of a URL.
17. changed superwaba.createObject(WClass) to superwaba.createObject(WClass, callDefaultConstructor). This was a problem for native methods/libraries that called the createObject but the object was not being properly initialized (for example, any local variable initialization was not being made). Note that any native library that use this method must be recompiled or it will fail. This fix a problem in PDBDriver when a table was just created with one field and a select over the empty table was returning 1 row.
. fixed javadoc of FTP class: to send a file, you must use File f = new File("michelle.txt",File.READ_ONLY) (see the extra parameter in the file constructor, because a file open without extra parameters can't be read!).
18. fixed problem in PDBDriver.writeRecord returning a wrong value when a primary key violation was issued. The row was not being inserted but the returned value of executeUpdate was 1.
19. rnovais and guich: fixed PDBDriver problem when trying to update a primary key value with the same value as before.
20. fixed problem when the driver instance was closed and a future search for the file in another instance (but in the same program's run) would fail. This was causing "drop table" to fail on desktop under some circunstances.
Changes in SuperWaba 5.63 (20060324)
1. added Edison Brito changes to disable column resize in Grid (added grid.enableColumnResize).
. improved RemoteExplorer: now changing dirs, sending and getting a sample file.
2. improved FTP class to correctly send and receive files over GPRS connection and over Softick. Added FTP.sendSleep (important when sending files using Softick). When sending files with GPRS, the readTimeout must be big (at least 20 seconds), otherwise the connection will be closed before the data is fully flushed (which only occurs after the socket.close). Now it displays a progress of the transfer in the log component.
3. New class superwaba.ext.xplat.io.BigByteArrayStream, which can handle byte streams with more than 64kb and automatically compresses the data. This makes it easy to transfer files of any sizes to/from the server.
4. added Greg Ouzounian changes to fix problems in the ImageScroller class when the control was defined outside 0,0 or in a window.
5. added ByteArrayStream.mark, so that a readBytes operation will not read beyond the marked position. Note that the reset method resets the mark.
6. fixed Grid tooltip that now checks if the grid is still displayed and hides the tip otherwise. an user reported a problem where a tip was displayed when he swapped out the grid on the event.
. Improved a lot the Javadocs of the FTP class, giving examples on how to send Files and Catalogs.
7. added Grid.qsort(col).
8. rnovais - fixed problems in 'Group By' or 'Order by' columns list when you don't have a space after the comma between the fields
. rnovais - improved pdbdriver documentation in the SuperWaba Companion LGPL.pdf.
Changes in SuperWaba 5.62 (20060320)
. fixed Webservice javadocs not being created and the pdb was not packaged into the installers
. fixed symbian version shown during the installation
1. fixed PDBDriver at desktop not correctly saving data after a rebalance.
2. disable "opening for read TempPd*.pdb" messages on desktop.
3. fixed new File("c:/").getSize() to return the avail space in win32 and wince. in wince, it must be "/" instead of the drive letter.
4. fixed (and optimized) the FTP class. Now i use a StringBuffer to avoid concatenating the commands. Now the FTP works over GPRS connections. The problem was related to the \r\n characters being sent over the stream just after the command. Seems that when running it in the cradle, there was some kind of buffering that was "concatenating" the command to the \r\n. Well, seems that all strings commands must always be sent together!
5. now socket use a internal temp buffer if the data to be read is below 64 bytes. this saves some time when reading each char from a line
6. now when a socket timeout occurs, it automatically tries again (up to 3 times). this is useful specially in GPRS connections.
7. fixed keyboard class when the caps was left locked after a unpop and in the next popup the letters were going lowercase besides the popup was still on.
Changes in SuperWaba 5.61 (20060315)
1. increased max number of sql parameters in PDBDriver from 64 to 128.
2. Integrated and optimized the
Webservice xmlrpc4sw package into SW (package superwaba.ext.xplat.webservice). Many thanks to Chris Stump for this great work and for the code donation. Added also Paul Van Hout improvement to use Zlib compression. Added support for Long type
. added Webservice samples. Check \SuperWabaSDK\src\java\superwaba\samples\ext\webservice.
3. added two new functions to BlowfishECB class: encrypt(String) and decrypt(String)
4. new methods Time.toIso8601 and constructor Time(String iso8601).
5. added Socket.readLine.
6. fixed FTP class not correctly handling the PASV returning value for some servers.
. improved reliability of the RemoteExplorer sample.
7. fixed again Vm.getRemainingBattery on Palm ARM. This was a funny issue. Before 5.6, it was always returning 100 (and nobody ever complained!). In 5.6, when i had reimplemented it, it started to return 0 because of a bug in the Palm function, and people said: "it stopped working!" LOL :-D. Now i have fixed it definetively.
8. improved robustness of the FTP class when a socket timeout occurs. Created a FTPConnectionClosedException.
9. deprecated popupModal(win) and popupBlockingModal(win). The correct way is win.popupModal() and win.popupBlockingModal().
10. fixed paint problem when the htmlcontainer is not at top window
11. fixed problem at desktop when deleting indexes of the PDBDriver lots of times in the same session.
12. added Kambiz Darabi changes in serialport to fix problem when receiving data from IRCOMM in Palm OS.
13. fixed pdbdriver index generation after a rebalance occured at Desktop.
. if you suspect that the index is being incorrectly generated, you can test it
at desktop adding this:
if (!Settings.onDevice)
superwaba.ext.xplat.sql.pdb.pdbx.NativeMethods4JDK.checkIndexes = true;
This way, each time a value is added to the index, a check is made at it to see if the index got corrupted. On success, no messages are given, but a warning will be written in the console if the index gets corrupted.
. now FTP.receiveFile returns the total number of bytes received.
. changed FTP class to use the acknoledgement classes (1-5) instead of standalone ack codes.
14. fixed FTP when running in Palm OS. Palm has the LINGER problem, which, after a close is made, it keeps waiting for the ack from the server. By setting the NOLINGER option in the socket constructor to TRUE, you make it ignore this ack and close immediately.
15. fixed PDBDriver index generation with the Long datatype.
16. fixed pdbdriver searching double values in a query like "...where doubleValue=1000" when using indexes
17. fixed pdbdriver's refactor at device failing on indexRebalance test.
Changes in SuperWaba 5.6 (20060304)
1. Now guibuilder only uses the memo if the user had installed the required library PalmIoBuildIn.pdb and does not abort otherwise (saves to console instead).
2. fixed Socket.close on Palm OS ARM. Thanks to Claudio Perez for the tip. Now we call NetLibShutdown to prepare the socket to be closed (ps: why in the hell Palm OS doesnt already do it?)
3. fixed numbering of the types on ResultSetMetaData to match the native definition.
4. adjusted the primitive types sizes returned in ResultSetMetaData.getColumnDisplaySize
. added a new
SMTP class (superwaba.ext.xplat.io.SMTP). new "SendMail" sample.
. added a new
FTP class (superwaba.ext.xplat.io.FTP). new "RemoteExplorer" sample.
5. reimplemented Vm.getRemainingBattery in Palm OS.
6. fixed Catalog.listCatalogs when no matching crid/type was found.
7. fixed Catalog.listCatalogs when Settings.dataPath was changed.
8. added two handy methods to the socket class: writeBytes(byte[]) and writeBytes(String).
9. added ListBox/ComboBox.enableHorizScroll. It adds support for horizontal scroll on the listbox. Two buttons will appear below the vertical scrollbar. In this case, the add, replace and remove operations will be a bit slower because the string's width will have to be computed in order to correctly set the max horizontal scroll.
10. added ListBox/ComboBox.selectLast to select the last item, scroll to it if needed and repaintNow.
11. now extraHorizScrollButtonHeight's value depends on screen resolution.
12. fixed repaintNow being painting things over even when the control's window was not being shown. Problem was reproduced in RemoteExplorer's log listbox being painted even if not opened.
13. optimized Vector.find.
14. changed TTF2PDBs to let you specify the size of the big font.
15. fixed support for monospaced fonts on TTF2PDBs. it has a new option: /mono, which sets all chars to the width of the biggest one.
. made MessageBox default backcolor to bright gray. Otherwise, in white backgrounds, the title seems to be floating aside...
16. added Grid.disableSort to disallow the click-and-sort feature.
17. fixed problem of restarting the vm when a reset occured.
18. added some more lastError values to socket.readBytes. Check native/waba/sw_socket.c, function socketReadWriteBytes - 2nd one) to know the values.
19. fixed rowIterator.setSynced not correctly handling deleted rows comparision.
. fixed installation script for 68k vm installing the wrong native libraries (arm ones instead of 68k ones).
20. fixed SW not running applications in Windows CE 2.11.
21. fixed zire 22 crash occured when pressing and holding the center button.
22. now the index warning is gave only after 100 lines inside it.
23. fixed problem at desktop when a table was rebalanced and closed by the GC. This was resulting in a problem when closing the pdb and some tables would not be written.
24. changed pdbdriver to not postergate any writting of the rowsCount and recordCount. Now everything is committed at the moment. This made the pdbdriver slower, but at least now the chances of table corruption due to a reset are very low (are not zero because the reset may occur during the write of the data). Pocket PC table created is 1.8x slower and queries are 1.5x, Palm OS table creation are 1.2x and queries 1.6x. That's the price for safety.
25. fixed Grid not correctly hiding the edit at some misterious times...
26. added time elapsed to each test run in SWUnit.
27. fixed str2double issue with neg values on Symbian.
28. fixed GPRS class not correctly finding "The Internet" as connection description on some devices.
29. reimplemented VmGetDeviceFreeMemory for Palm ARM.
30. fixed db2e ResultSet.next/prev returning wrong values.
31. fixed PDBDriver not saving the resultset when the index was changed (table value updated or deleted). This was causing an index corruption when exiting by a pda reset.
--
GuilhermeCHazan - 15 Sep 2006