Thursday, August 11, 2011

LWUIT 1.5 Released (finally!)

After multiple delays we are thrilled to announce the release of LWUIT 1.5 which you can download here. This is probably the biggest, most complete release of LWUIT since version 1.0 hit the scene, it includes both groundbreaking changes and refinements to LWUIT core features.

The major features of this release are:

  • GUI Builder With major revamp of the Resource Editor tool

  • LWUIT4IO a tightly integrated Storage, Networking & Filesystem framework with ports to multiple platforms

  • Far deeper theming including, theme constants, declarative style inheritance, disabled styles etc.

  • New JavaSE & CDC ports allowing easier debugging/testing/profiling on the desktop as well as easier demos by deploying LWUIT applications as applets

  • New Components:
    • ContainerList allows variable row size list & complex list layouts

    • Tabs supersedes the TabbedPane providing swipe gestures, elaborate theming and much more

    • Slider provides progress indication and gauge control


  • New recommended project structure for demos allowing for easier porting to RIM/Desktop/CDC

  • PeerComponent allowing the embedding of native components within a LWUIT UI (applicable on some platforms)

  • Improved & simplified animations for layout effects

  • Multi-Images and improved SVG support

  • HTML 4 tag support and public parser API for HTML/XML

  • Virtual Keyboard is now builtin to LWUIT with deep support for native VKB input and toggling between multiple VKB's

  • Focus rewritten from scratch to be more intuitive 

  • Performance/RAM improvements

  • Drag & Drop API, copy and paste API and much more

27 comments:

  1. Great job. Thanks to LWUIT team.

    ReplyDelete
  2. Thanks!!!

    LWUIT 1.5 Label Component BUG:
    label.getSelectedStyle().setAlignment(Label.RIGHT);

    AND

    label.getUnselectedStyle().setAlignment(Label.RIGHT);

    No right alignment.

    ReplyDelete
  3. There seems to be an issue with selected style.

    I am also facing issue with getSelectedStyle().setBgColor(0x0000ff). It always takes default color i.e. white for selected component.

    The BUG is not specific only to Label, It doesn't seems to work for any Component.

    ReplyDelete
  4. I saw no issue with the bg color, make sure your theme settings are correct.

    The label component alignment works fine only differently. If you invoke setAlignment() elsewhere it tries to be "smart" and invokes the style alignments breaking everything.

    ReplyDelete
  5. Great stuff, keep the iterations coming. Although i already downloaded from SVN some weeks ago. I am sure this has improvements though.

    ReplyDelete
  6. how to set virtual keyboard to native virtual keyboard

    ReplyDelete
  7. Native VKB is always on by default when available (Android/RIM). There is no option to access the native VKB in J2ME devices.

    ReplyDelete
  8. I think it would be a great idea to have some sort of "flow view" that shows which screen links to where? For example a box for the "splash" then an arrow to the next screen it goes to etc, it would make the whole thing really lovely an elegant, a bit like the visual designer in netbeans (which is not as good as yours)..

    ReplyDelete
  9. To get it working on Sony Ericcson I must use the specific UI_SE? and IO_SE? It says invalid application when I use ordinary ones, not tried SE ones yet

    ReplyDelete
  10. Oh my god I basically love this new LWUIT 1.5 - I have made a GUI in 2 days that would have taken me literally 2 months using the old canvas way!!!! I have not yet put in any business logic but im hoping its painless for this too - once done I will make a video and page so you can put it on your featured apps page. Thank you!!!!

    ReplyDelete
  11. I love the idea of the applet and desktop versions, but it would be helpful if you had "touchable" softkeys rather than relying on people to use F1, F2 and escape - it becomes completely impossible to keep the mental model in yoour head when you cant see "back" etc.. apart from that I think its a perfectly great way to show clients current builds! I hope you dont think im being critical or flooding your blog, im just adding my thoughts as I come across them im amazed how good this is now.

    ReplyDelete
  12. unfortunately i have found the drag n drop to be very buggy, have lost my work 3x today using it :(

    E:\ALL_SDKS\LWUIT_1_5\LWUIT_1_5\resource_editor>java -jar ResourceEditor.jar
    java.lang.IllegalArgumentException: Width (16) and height (-4) cannot be <= 0
    at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source)
    at java.awt.image.BufferedImage.(Unknown Source)
    at com.sun.lwuit.impl.swing.SwingImplementation.createMutableImage(SwingImplementation.java:428)
    at com.sun.lwuit.impl.LWUITImplementation.fillLinearGradient(LWUITImplementation.java:1702)
    at com.sun.lwuit.Graphics.fillLinearGradient(Graphics.java:613)
    at com.sun.lwuit.plaf.DefaultLookAndFeel.drawComboBox(DefaultLookAndFeel.java:466)
    at com.sun.lwuit.ComboBox.paint(ComboBox.java:420)
    at com.sun.lwuit.Component.paintInternalImpl(Component.java:929)
    at com.sun.lwuit.Component.paintInternal(Component.java:907)
    at com.sun.lwuit.Component.paintInternal(Component.java:878)
    at com.sun.lwuit.Component.paintComponent(Component.java:1101)
    at com.sun.lwuit.Component.paintComponent(Component.java:1054)
    at com.sun.lwuit.impl.LWUITImplementation.paintDirty(LWUITImplementation.java:275)
    at com.sun.lwuit.impl.swing.SwingImplementation.paintDirty(SwingImplementation.java:271)
    at com.sun.lwuit.Display.edtLoopImpl(Display.java:832)
    at com.sun.lwuit.Display.mainEDTLoop(Display.java:778)
    at com.sun.lwuit.RunnableWrapper.run(RunnableWrapper.java:119)
    at java.lang.Thread.run(Unknown Source)
    Exception in thread "EDT" java.lang.ArrayIndexOutOfBoundsException: 35 >= 31
    at java.util.Vector.elementAt(Unknown Source)
    at com.sun.lwuit.Container.paint(Container.java:733)
    at com.sun.lwuit.Component.paintInternalImpl(Component.java:929)
    at com.sun.lwuit.Component.paintInternal(Component.java:907)
    at com.sun.lwuit.Container.paint(Container.java:734)
    at com.sun.lwuit.Component.paintInternalImpl(Component.java:929)
    at com.sun.lwuit.Component.paintInternal(Component.java:907)
    at com.sun.lwuit.Container.paint(Container.java:734)
    at com.sun.lwuit.Form.paint(Form.java:2371)
    at com.sun.lwuit.Component.paintInternalImpl(Component.java:929)
    at com.sun.lwuit.Component.paintInternal(Component.java:907)

    ReplyDelete
  13. Hi, I cant find ONE SINGLE example on using LWUIT4IO in any way whats ever! How do I write to memory card? How do I read XML from memory card? any help please would be great - im amazed at the lack of code snippets and tutorials - this is clearly holding LWUIT back in the dark ages..

    ReplyDelete
  14. Orlando, that issue is unrelated to LWUIT.

    ReplyDelete
  15. Great job!!
    I am using logging in my application and now I notice version 1.5 does not have the Log class. Is there a replacement for it?
    Thanks.

    ReplyDelete
  16. 1.5 deprecated the log class but its still available within the MIDP port and I think the RIM port as well.
    The problem is that this class isn't portable within the UI, so we moved it to the LWUIT4IO where its almost identical and available for all platforms. It also carries some cool new features such as the ability to track all opened/closed streams.

    ReplyDelete
  17. hi - you said softkeys could be turned on in desktop version using:

    AwtImpl.setSoftkeyCount(2)

    However when I do that it shows me no softkeys still? If I press F1 a nice softkey menu pops up, how do i just have this here automatically all the time as it would be in emulator? thanks.

    ReplyDelete
  18. You need to do this before invoking Display.init() otherwise LWUIT initializes with 1 softkey and doesn't refresh since devices don't change softkey count at runtime.

    ReplyDelete
  19. Hi

    Have a doubt in lwuit guibuilder how to sign for blackberry and create cod files.
    Thanks

    ReplyDelete
  20. Could someone point me in the right direction here. After extracting the contents of the LWUIT_1_5.zip file, I am seeing no gui editor and I mean no sign of ResourceEdit.exe anywhere!

    ReplyDelete
    Replies
    1. Never mind, I think I got it

      Delete
    2. This comment has been removed by the author.

      Delete
  21. Hi Shai,

    How can we customize the filled and unfilled colors of slider component?

    Thanks

    ReplyDelete
  22. Could someone point me in the right direction here. After extracting the contents of the LWUIT_1_5.zip file, I am seeing no gui editor and I mean no sign of ResourceEdit.exe anywhere!

    How Houdini?

    ReplyDelete
  23. And How Can I integrate the resource editor with netbeans...

    ReplyDelete
  24. Never mind, I just ran the .jar file and it worked! but Im still having problems with integrating it with netbeans7.1.2

    ReplyDelete