Wednesday, May 21, 2008

What Do You Want To Know About LWUIT?

How can I help? Let me know what sort of examples and instructions can be of help in LWUIT, I will try to write blog posts about various aspects of LWUIT and answer questions as much as possible.
Feel free to reply to this post and I will try to answer in future blog posts.


  1. Id like to know when Matisse will support it? Matise is absolutely killer, I love it to bits. If it could do gui drag and drop editing for lwuit Id be a very happy man indeed.

  2. Nightly builds would be nice, or at least weekly drops, so we can keep testing.

  3. Hi gaz, I just answered your question in the main blog.
    Hi somatik, I fully agree but I doubt we can do that now. Since we are still closed and licensing risks are just too complex. Once the source code is open I would very much like to setup a nightly build server.
    Feel free to open an issue on this in the issue tracker so we won't forget ;-)

  4. We can wrap in a list rather easily, there are several examples in the LWUIT demo as well. However, we cannot make a variable sized list since such a widget doesn't make sense in LWUIT.

  5. I am trying to build an extension to the virtual keyboard which will also include a list - the keyboard will be used to enter "prefixes" which will filter the list (like the standard contacts search on many phones). I will be happy (and probably required by the license :-) to contribute it back when I get it working.

    For now I have tried to directly hack the VirtualKeyboard class, with some success, but not total.

    The list appears without a border (until I press on one of the keys in the virtual keyboard), and then I see that the border overlaps the scroll bar. And the scroll bar and list behavior are strange - hard to describe in a few words.
    I don't really understand how to use setPreferredSize, what the frame of reference is for the coordinates I give it, and whether the framework really "means" to support having a scrolling list of limited physical size inside a dialog. Finally it's not clear to me if there are special things about the VirtualKeyboard implementation that I should understand in order to do this cleanly. I'd be thrilled to hear from you!

  6. Never call setPreferredSize (unless you REALLY know what you are doing) since you will effectively break LWUIT's layout.
    It doesn't sound like something really complicated to accomplish but I'm not sure of the exact UI you are trying to reproduce.

  7. Thanks Shai. Let me try to clarify the UI I am looking for.

    The crux of the issue is that I want the VKB dialog to contain a limited height scrollable list (in addition to the keys/buttons and input field which are already there).

    The number of items in the list can be very large, and the user should be able to scroll the list if they want, but the intended mechanism is for them to filter the list by typing in a prefix in the VKB.

    Right now when I create a list with a large number of items in the VKB by adding the following lines to the "setTextField" function of the VKB (where the inputField is created today), I get a VKB which is so tall it doesn't even fit on the screen:

    String[] listItems = new String[]{"first", "second", "third","fourth","fifth","sixth","seventh","eighth", "ninth", "tenth", "eleventh", "twelfth", "thirteenth", "fourteenth"};
    listField = new List(listItems);
    addComponent(BorderLayout.SOUTH, inputField); // place the input field underneath the VKB buttons
    addComponent(BorderLayout.NORTH, listField); // place the list field above the VKB buttons

    When I used setPreferredSize it did succeeed in creating a limited height list in the dialog, but as I said in my previous post:
    1. the list border wasn't visible (unlike the inputField border, which is visible),
    2. the scroll bar placement is where the list border should be
    3. the scroll behavior is bizarre (I can drag my finger far beyond the top of the scroll bar and it keeps scrolling the list)
    4. the list border does appear after I have clicked on some button in the VKB.

    I want to stress that I really want the list height to be limited to a few lines - it's not good enough to allow the VKB to fill the screen and only then implement the scrolling inside the list. I want the top part of the underlying form to be visible.

    Worst case, I can limit how many items I "feed" the list at one time - say three items at a time. This means the user is forced to use the VKB to filter the list in order to see the entry they want (other than the first three in the list). But that's not so nice. Some users want to be able to get a look at the list by scrolling and then to choose, or perhaps filter afterwards once they understand what's in the list. Again, think of a Contact list.

    Is this clearer? Is there a better place to have this discussion? Would it help if I attached a screenshot?

  8. We implemented something like that by having a text field on top of the list and narrowing the content of the list based on text field changes. This worked great since the VKB immediately updated the list.
    If you don't want the list to take up too much height use a layout manager like border layout and place it in the center, it will take up all the available height.

  9. What are we LWUIT developers supposed to do with all of our enhancements? I have a bunch of stuff which I imagine will be useful to others. I also asked this in the Forum.

  10. Hi, can you tell me how i can suspend a lwuit form. I tryed several ways, but i can´t get it solved.

    I will explain this a litle bit:in fact, i can suspend the form, BUT when the form becomes active again, all the operations (for example the "onclick" performed on a button) are performed, and thats what i must evoid. Im working on these for months, i will be very gratefull if you can give me at least a tip for solve this.

    Thanxs in advance.

  11. What's suspend?
    Generally we just show a dialog which can be customized in any way we want to be invisible etc.
    You need to explain what you are trying to achieve, you don't want your application to just suddenly become unresponsive.

  12. Id like to create a good looking project.
    I am confused what is the best for creating the project? Java(TM) ME Platform SDK 3.0? or Eclipse Pulsar with LWUIT 1.5? or Netbeans with LWUIT 1.5?
    Can someone tell me the advantages and disadvantages of such of them?

  13. I'm not deeply familiar with the other tools so I can't compare them for you.