|
What's New In This Release
Lightweight User Interface Toolkit 1.3
December 2009
|
|
This document summarizes new features in this release.
Overview
Highlights
-
Bidi support (contributed by Telmap) - allows using LWUIT with Right To Left languages such as Arabic, Hebrew
-
Lightweight Virtual keyboard support, allowing for customizable touch screen input
-
Pixel based scrolling allowing scroll to work as expected even when components/containers exceed screen bounds and not just for focusable components
-
Table layout and table component allowing complex tabular UI's including support for features such as spanning
rows/columns
-
Tree component supporting nested elements and expanding
-
Spinner component for date, time and numeric input within a range
-
Reimplementation of the ComboBox widget
-
SVG Support Integrated Into The Theme Creator (Formerly LWUIT Designer/Resource Editor)
-
Touch device improvements: button menus, improved kinetic scrolling, tactile touch (vibration on touch)
-
Resource file specification
-
Redesigned the list renderer "rendering" logic so it paints the backgrounds of the renderers first and only then the
selection and foreground.
Full List
-
Removed the need for the startTicker to be invoked after adding the container
-
Prevent an exception when an illegal number is written into the spinner
-
Block RTL from the spinner which is a numeric component thus always LTR
-
Fix for the "then issue" number 228
-
scrollRectToVisible can be called while a smooth animation is in progress and might incorrectly "assume" that nothing needs doing. It should see the current destination view as the "actual" view and not the true actual view.
-
Fix for the ComboBox cancel soft button not actually canceling the combo box.
-
Fixed a minor issue with touch commands
-
Another rewrite to Calendar - added a focus concept that allows to browse in the Calendar Component without changing the selectedDay
-
Reimplemented scrolling behavior, scrolling on large components focusable/non focusable should work as expected now.
-
Fixed the List animate method - the animation got unregistered too soon.
-
Avoid a very unlikely NullPointerException in case current is null
-
Fixes for the table border rendering which worked correctly on the Sprint WTK but not on WTK and some other devices due to a clipping issue in the Sprint toolkit.
-
Initial implementation of the new Spinner component allowing faster numeric, date and time input in LWUIT.
-
Minor fix to Form and requestFocus, if the Form hasn't initialized the focus and a Component requested a focus the focus traversal became corrupted.
-
Minor fix for the Container scrolling feature
-
Improved scrollTowards functionality to take into consideration up, down, left, right navigation
-
Added scroll increment based support, this allows large Components to scroll in small chunks if the Component is bigger then the parent container
-
Fixed dialog resizing for packed dialogs when screen sizes change which occurs quite often with phones that support orientation flipping.
-
Improved the list scroll rect to visible preventing a bug where we scroll to the last component of a large list and instead reach the top of the component. This is caused when a component has a large size and scrollRectToVisible is invoked with the full size of the component. Instead a component can now override getVisibleBounds() (which List now overrides) and indicate the bounds within this component that should be scrolled to (e.g. internal selection).
-
Additional Blackberry related fixes mostly related to the menu button and plain blackberry (not Storm).
-
Multiple fixes for the BlackBerry storm device allowing scrolling and selection of components to work more intuitively as well as virtual keyboard input.
-
Fix for issue 86: Deinitialize method for Dispaly
-
Multiple improvements for drag behavior in the storm device, hover didn't behave as it should. Selection on hover was too aggressive and shouldn't occur during drag, the motion flicking effect didn't occur on hover due to several separate bugs.
-
Fixed a regression in horizontal scrolling due to applying a previous horizontal scrolling commit only to the Y axis
-
Fix for a regression in virtual keyboard painting
-
Improved virtual keyboard glasspane painting
-
Fixed a focus issue in table
-
Fix for table issue when editing an individual entry
-
Fix for potential border issue triggered by complex style changes
-
Fix for scrolling issues to be more uniform with the API
-
Moved ComboBox renderer ui init to the constructor
-
Fix for issue 223: ComboBox desn't send the source correctly to actionPerformed
-
Fixed cursor position in TextField when the input mode is not painted
-
Fixed getComponentAt to return focusable Containers
-
Improved keyboard detection code on newer symbian devices
-
Fixed a potential NPE in ComboBox
-
Fixed touch menu to fire the event properly
-
Removed a redundant while loop in sizeChangedInternal in Dialog
-
Minor combo box renderer fix from Ohad
-
Fix for minimize functionality so LWUIT doesn't inadvertently restore itself from minimized state.
-
Improved widestChar detection in the text area component
-
Fix for issue 224: unnecessary import of log in RunnableWrapper
-
Fixed a combo box issue when moving from the combo box to a different form, this happened since the combo dialog folded returning to the original form after the action event was fired.
-
Fixed packed dialogs on blackberry devices where getSoftbutton(0) doesn't work.
-
Improved the size calculation of the text area component
-
Fixed a minor padding issue in scrollRectToVisible
-
Fixed getComponentAt to take into consideration a focusable Container
-
Fixed Dialog sizeChangedInternal to interate over all the previous Forms and call sizeChangedInternal
-
Removed setSelectedIndex from laidOut, because this method can trigger a dataChanged - the intention was
simply to scroll the List to the selected item.
-
Fixed Style to not firePropertyChanged if the value wasn't changed - this is important because a change to
the style can trigger redundant revalidates on the Form
-
A fix to TextField that retrives the originalClearCommand to the Form
-
Fixed setShouldCalcPreferredSize in List to not cause NullPointerException (may happen in custom renderers)
-
Margin between elements is now used within the list methods in a more uniform way
-
Disabled ends with 3 points for the VKB buttons by default since they don't normally "focus" in the same way as regular buttons.
-
Fixed an initalization issue in List laidOut
-
Reduced revalidate triggers when focus is changed
-
Fix for text field removing the commands of the form in the table. This issue was triggered since the table removes the
text field before it had the time to restore the removed commands.
-
Fixes for scrolling issue with incorrect clipping that caused the scroll to "peek" from behind
-
Fix for table editing that caused the previous focus component to still get painted despite its replacement.
-
Fixed an issue reported by comverse - longKeyPressed can't show new Form
-
Making sure to set scrolling to 0 if the Component is not scrollable - this situation can happen when a sizechanged occured
-
Fixed several painting issues in TabbedPane and ComboBox
-
Fixed an animation issue - the EDT needs to be notified when a new animation is added to the Form
-
Fixed a dialog issue - the dialog had to be revalidated after the margins were changed
-
Fixed the tactile touch support to work in menus/dialogs correctly
-
Fix for using a Container as a list renderer in screens that support rotation the renderer doesn't revalidate correctly.
-
Minor fix for vibrate touch support
-
Performance enhancement for Nokia devices whose charsWidth is REALLY slow, instead String width is much faster.
This is noticeable for text areas with large bodies of text. Reported by emoze.
-
Minor fix for tree's preferred size.
-
Moved the scroll x to right in rtl
-
Fixed a few rtl related issues
-
Fixed a calendar bug issue #222 - Incorrect start of month in calendar Nov 2009
-
Fixed a device bug in the Sony Ericsson Aino device that send key events for open/close without sending the corresponding keyReleased event
-
Fix for minor issue in tabbed pane that caused recursive layouts and eventually an out of memory by colliding with the list
revalidation
-
Added tactile feedback touch support to LWUIT components allowing a component to vibrate the phone when the user presses on
it as is common in several touch screen devices.
-
Fixed a scrolling thumb size regression
-
Fixed an animation regression which caused the EDT to sleep when there where internal animations running
-
Exposed the laidOut method
-
Minor fix for the List offset calculation
-
Minor correction for the tree component, the margin for the pushed state of the button wasn't updated as well.
-
Fixed the table layout/table to work better with horizontal scrolling and row spanning
-
Added to table the ability to query the cells row/column
-
Slightly incompatible change for LWUIT requested by Daniel B, components will no longer be implicitly animated unless the have an
actual static animation (or animated SVG etc) associated with them.
-
Added support for linear motion in common transition to provide a smoother feel on weaker devices.
-
Minor optimization for form layout behavior in Display.java
-
Fix for touch menus sending the action performed event twice
-
The default behavior of list scrolling to selection was incorrectly set to false
-
Improved textarea painting
-
Bidi RTL language commit contributed by Telmap and implemented mostly by Ofir Leitner, added support for right to left languages for all
components
-
Reimplemented Scroll drawing allowing two styles: Scroll/ScrollThumb and HorizontalScroll/Thumb. The new approach now allows complex scroll
UI's based on images/borders etc. without the need for deriving/replacing the look and feel.
-
Fix allowing to override the combobox popup without breaking the action listener code.
-
Fixed a "casing" issue: setUnselectedStyle was spelled setUnSelectedStyle
-
Fix issue 90 allowing a global LWUITImplementation based getResourceAsStream for portability to
Android and possible future enhancements such as fetching resources lazily over the network, file system resources etc.
-
Fix for issue 217 where the lists preferred size is incorrect since the margin of the renderer wasn't added to the result.
-
Fixed the default input mode to be affected by the input mode order
-
Tree nodes now have a default UIID of TreeNode
-
Fixed a performance issue in Form, where focus change triggered a repaint on the Form
-
Added a default table model class to simplify the creation of tables
-
A few improvements to the VirtualKeyboard API
-
Extended virtual keyboard support to be more flexible
-
Fixed couple of issues in Dialog to allow reuse of dialogs
-
Added setScrollToSelected method
-
Added line breaks to log
-
Fixed issue 213 listing various contributed scrolling improvements from Thorsten
-
Integrated scrolling calculations from thorsten code into the implementation layer
-
Fixed a bug when a virtual keyboard is open it should be disposed when a dialog disposed
-
Moved look and feel refreshTheme to be called after the theme has changed.
-
Fix for minor log synchronization issue
-
Incorporated font picking logic from Thorstens Blackberry port which makes allot more sense than our original hardcoded sizes
-
Removed some constants from Calendar that shouldn't have been public to begin with
Text box now updates the UI of LWUIT if a size changed occurred when the text box is showing
-
Fix for regression due to recent optimization to invokeAndBlock.
-
Invoke and block will now act more like a thread "pool" rather than as a single thread allowing nested dialog to behave as they did before.
-
Fix for item gap missing from combo box popup issue from Daniel
-
Added thread name to invoke and block thread
-
Fix for editing a text area in 3 softbutton mode on series 40 devices
-
Fix for the text field symbol dialog's cancel softkey which just wrote cancel into the textfield...
-
Fix for issue 197: KeyRepeat error when app loses focus
-
Fix for issue 210: Button with animated gif is sometimes not animated
-
Fix for issue 211: Touch Screen Non-Editable Text Field Bug
-
Initial implementation of the table component based on the table layout
-
Fix for issue 209, action events weren't dispatched correctly from the new combo box implementation
-
Fix for invoke and block to use a thread pool sort of approach
-
Tree widget component initial implementation.
-
Added a new implementation that features a light weight virtual keyboard
-
Fix for issue 207 Calendar constructor doesn't do localization of months
-
Fix for long pointer press from Allon, removed dead code no longer used in Display
-
Added the ability to monitor pointer events externally by adding action listeners to pointer
pressed/released/dragged and adding X/Y information into action event.
-
Added the ability to create touch oriented menus almost any type of menu user interface, touch menus
would currently appear as buttons in a grid more suitable for human finger usage.
-
Added a flag to optionally disable an optimization in the new list renderer behavior mutableRendererBackgrounds
which indicates that the background of a cell renderer might mutate between one entry and the next
-
A fix for issue 206: repaints adding up on repeated menu open/close until paint queue overflow
-
Added dispatchCommand for Allon
-
Redesigned the list renderer "rendering" logic so it paints the backgrounds of the renderers first and only then the
selection and foreground.
-
Added command focus style allowing us to customize the focus behavior of menu commands rather than globally for all the lists.
-
Removed a redundant print stack trace that occurs frequently and just confuses.
-
Fix for game canvas implementation issue in some unknown device from the community
-
Implemented minor enhancement to list event handling from Allon of Comverse
-
List painting should mark shouldBreak = true on selected as well
-
Improved overlaying components drawing to not create redundant Rectangles.
-
Fixed a minor regression in the selection code caused by the compatibility changes
-
Workaround for Samsung pointer dragged bug
-
Added disposeWhenPointerOutOfBounds to the Dialog which is true for menu and combo
-
disposing dialog if pointerReleased occurred out of the contentPane
-
Fixed a margin bug in combo
-
Removed some code from auto adjust in Dialog that caused the dialogs to lose their margins
-
Removed textfield virtual keyboard toggle command, which seems redundant.
-
Removed deprecated "compatibility mode" and the old ways of handling styles specifically bg/fgSelection and scaled image support.
-
Removed popup and radically changed the implementation of combo box to base it around the dialog architecture opening
up a way to make it more modular.
-
Initial implementation of the table layout as the groundswork for a table component.
-
Reduced code size significantly and limited usages of classes
-
Incorporated fixes from Comverse specifically to the TextField qwerty detection code, for event consumption loops and
for command firing logic in the list.
-
Removed the system font class and unified its logic into the Font class
-
Minor improvement to the Log class making it more useful for common use cases.
-
Updated Dialog to allow reuse of showPacked method.
-
Minor fix to Form to allow override paintBackground
-
Fix for issue 204: IllegalArgumentException margin cannot be negative in dialog
-
Fix for issues from Allon of Comverse: size changed should use the internal size change method and should
invoke the background form size change method as well.
-
Fixed a minor issue with dialog title margins
-
Fixed long pointer pressed in Lists, to apply the selection
-
Fixed TabbedPane refreshTheme method to set the correct bgPainter on the contentPane
-
Changed the caching logic for the gradients and shifted it into the implementation so caching can be optimized globally and
determined by the implementation.
-
Fix for issue 201, allowing the implementation to determine 3 softbutton mode.
Copyright © 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to the license terms.