Bo
Moderator
316 messages 2008-05-26 |
Yes, it do not handles <ul> tags. At present it could be a bit difficult to you because some important methods like paintImpl are protected in 1.0.0RC2. I think I will switch them public in the next release to be able to completly derive widgets.
|
|
Bo
Moderator
316 messages 2008-05-26 |
Can you describe your full compilation process ? Do you use an IDE ?
|
|
Bo
Moderator
316 messages 2008-05-25 |
If you only want to render simple HTML styling (<b>, <i>, <u>, <a href".."), the TextArea do that. Simply activate the styled property.
<textArea styled="true">
<![CDATA[A simple sentence with <b>bold</b>, <i>italic</i>,<u>underlined</u> text and a <a href="www.kalmeo.org">link</a>.]]>
</textArea>
<a href="..."> create an Hyperlink widget that call by default a goUrl(...) action on the frames stack.
<img src="..."/> is implemented to, but only load embeded images.
|
|
Bo
Moderator
316 messages 2008-05-25 |
Does you friend try on a w610 or k510 too ?
|
|
Bo
Moderator
316 messages 2008-05-23 |
Arg ... do you have more information about the NoClassDefFoundError ? (Line or what else ?)
|
|
Bo
Moderator
316 messages 2008-05-23 |
Ho yes, in an ideal world the TextArea need to be rewrite, because the way to recreate a new widget for each word is not the more optimize way, but at the moment it keep the advantages of widget structure ...
Else, you're right the paintChildrenImpl is overrided because of scroll containers. But it's right too that all protected methods do not permit to extends widgets correctly. I think that the simplest way would be to turn paintImpl and paintChildrenImpl public. But I'm a bit affraid to do this.
What is your opinion on this question ?
|
|
Bo
Moderator
316 messages 2008-05-22 |
Right, I'm ok with this ;)
|
|
Bo
Moderator
316 messages 2008-05-22 |
Arg, yes, I think the only one way make Widgetvery flexibles is to turn internals methods public. But I'm not a real fan of this solution...
What sort of widget do you want to do ?
|
|
Bo
Moderator
316 messages 2008-05-22 |
Right, first transitions are now define by style with the 'transition' style property. Then the best solution is to change dynamically the class of your screen, and define two class selector in you CSS file like :
screen.left { transition: slide(left); }
screen.right { transition: slide(right); }
|
|
Bo
Moderator
316 messages 2008-05-21 |
To be able to implement in Kuix the best things to be in phase with developers needs, we would like to question you.
- What do you think about Kuix ?
- Do you think it's easy to use or a nightmare ?
- What do you think about the XML/CSS approach at runtime ?
- What do you need to have and Kuix doesn't have ?
- Do you prefer to use an other UI Frameword ?
|
|
Bo
Moderator
316 messages 2008-05-21 |
|
|
Bo
Moderator
316 messages 2008-05-20 |
Version 1.0.0RC3 (now available on SVN)
- Bug fix : Text widget new respects margin to draw text value - Bug fix : Remove a NullPointerException in TextField.getDisplayedText() when text was null
- Add Screen.setCurrent() method to set the screen as current Desktop screen - Add animated transitions (like slide) on screen. The transition is executed when a screen appear. You can implements your own transitions.
- Focus navigation was rewrited : - Widget.getNextFocus(...) and Widget.getPreviousFocus(...) was replaced by Widget.getOtherFocus(...) - New smart focus navigation - Screen menus now switch soft keys to "Select" (same action as FIRE) and "Cancel" (close the popupMenu) when a popupMenu is opened - You can now choice if the order of firstMenu and secondMenu (left or right) by using the 'firstIsLeft="true"' attribute on a Screen widget - You can customize "Select" and "Cancel" default texts by adding respectively SELECT and CANCEL key in i18n files
|
|
Bo
Moderator
316 messages 2008-05-20 |
Else, Kaprice sources may help you to undestand DataProvider and Lists.
|
|
Bo
Moderator
316 messages 2008-05-20 |
The best way to do what you want is to use DataProviders. In this way you can display result in your first screen. I can proposed to you something like that :
<screen style="layout:borderlayout"> <container style="layout-data:bld(north);layout:borderlayout"> <textfield id="myTextfield" style="layout-data:bld(center)"/> <button style="layout-data:bld(east)" onAction="search(myTextfield.text)">GO</button> </container> <scrollContainer style="layout-data:bld(center)"> <list> <_renderer><![CDATA[ <listItem><text>@resultLabel</text></listItem> ]]></_renderer> <_items>@results</_items> </list> </scrollContainer> </screen>
Layouts : - first a screen has by default a gridlayout(1,1) then style="layout:borderlayout" change it to borderlayout - in this sample a container with textfield and a button is on the north and a list within a scrollcontainer is placed in center
List : - in the list we defined the rendrer and items attribute. - rendrer is used by the list as a template to render each list item and @resultLabel will correspond to a specific value for each item. More informations in the next lines. - items is used to bind the list to the dataprovider.
DataProvider: - First you need to create you own DataProvider:
DataProvider myDataProvider = new DataProvider(); here we only use myDataProvide as item holder then we do not need to override the DataProvider class. - Second load your screen :
Screen myScreen = Kuix.loadScreen("/xml/myScreen.xml", myDataProvider);
- Third set the screen as current :
KuixMIDlet.getDefault().getCanvas().getDesktop().setCurrentScreen(myScreen);
At this state, your DataProvider is empty, then only a textfield and a button is displayed. Next I supposed that you know how to catch the button action to intercept the 'search(string)' call. After that you received the response of your webService and you'll be able to populate you dataProvider with all results.
Now we need to create a DataProvider for each result. Then override the DataProvider class like :
public class ResulDataProvider extends DataProvider {
private String resultLabel; public ResulDataProvider(String resultLabel) { this.resultLabel = resultLabel; } public String getValue(String property) { if ("resultLabel".equals(property) { return resultLabel; } super.getValue(property); } }
We are now ready to populate myDataProvider :
(loop) myDataProvider.addItem("results", new ResultDatProvider(/* here the string label */)); (endloop)
After this the display is automaticaly updated.
|
|
Bo
Moderator
316 messages 2008-05-19 |
Hi,
It is now possible to checkout current development sources of Kuix form svn.
Caution, those sources could be more instable than released packages.
SVN location : here
|
|