--- a/javauis/lcdui_qt/src/javax/microedition/lcdui/ItemLayouter.java Fri Jul 23 12:27:20 2010 +0300
+++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/ItemLayouter.java Thu Aug 05 16:07:57 2010 +0300
@@ -36,11 +36,11 @@
/**
* Key name for paint listener.
*/
- private static final String FOCUS_LISTENER = "itemfocus";
+ private static final String FOCUS_LISTENER = "FocusListener";
protected static final String MIN_TEXT = "...";
- protected DefaultFormInteraction dfi;
+ protected FormLayouter formLayouter;
protected Composite formComposite;
@@ -112,12 +112,12 @@
/**
* Constructor.
*
- * @param dflp - DefaultFormLayoutPolicy used for layouting.
+ * @param aFormLayouter FormLayouter used for layouting.
*/
- ItemLayouter(DefaultFormLayoutPolicy dflp)
+ ItemLayouter(FormLayouter aFormLayouter)
{
- this.dfi = (DefaultFormInteraction) dflp;
- formComposite = dflp.getForm().getFormComposite();
+ formLayouter = aFormLayouter;
+ formComposite = formLayouter.getForm().getFormComposite();
ESWTUIThreadRunner.syncExec(new Runnable()
{
public void run()
@@ -132,7 +132,7 @@
*/
int eswtGetLabelAlignmentDirective()
{
- return dfi.getLanguageSpecificLayoutDirective();
+ return formLayouter.getLanguageSpecificLayoutDirective();
}
/**
@@ -143,8 +143,8 @@
*/
void eswtLayoutItem(Row row, Item item)
{
- LayoutObject lo = new LayoutObject(item, eswtGetCaptionedControl(item));
- dfi.eswtAddNewLayoutObject(lo);
+ LayoutObject lo = getLayoutObject(item);
+ formLayouter.eswtAddNewLayoutObject(lo);
if(item instanceof CustomItem)
{
ItemControlStateChangeListener listener = item.getItemControlStateChangeListener();
@@ -157,6 +157,22 @@
}
/**
+ * Creates LayoutObject for the given Item.
+ *
+ * @param item Item to layout
+ * @return LayoutObject
+ */
+ LayoutObject getLayoutObject(Item item)
+ {
+ LayoutObject lo = formLayouter.getLayoutObject(item);
+ if(lo == null)
+ {
+ lo = new LayoutObject(item, eswtGetCaptionedControl(item));
+ }
+ return lo;
+ }
+
+ /**
* Wraps this item's control in the necessary composites.<br>
* Based on the item, the result of this method can be:
* <li> specific Control
@@ -169,20 +185,14 @@
*/
final Control eswtGetCaptionedControl(Item item)
{
+ CaptionedControl captioned = new CaptionedControl(formComposite, SWT.VERTICAL);
if(item.hasLabel())
{
- CaptionedControl captioned = new CaptionedControl(formComposite, SWT.VERTICAL);
- captioned.setText(item.getLabel());
- eswtGetControl(captioned, item);
- eswtCaptionedResize(item, captioned, item.getLayoutWidth(), item.getLayoutHeight());
- return captioned;
- }
- else
- {
- Control ret = eswtGetControl(formComposite, item);
- eswtCaptionedResize(item, ret, item.getLayoutWidth(), item.getLayoutHeight());
- return ret;
- }
+ captioned.setText(item.getLabel());
+ }
+ eswtGetControl(captioned, item);
+ eswtCaptionedResize(item, captioned, item.getLayoutWidth(), item.getLayoutHeight());
+ return captioned;
}
/**
@@ -244,7 +254,10 @@
*/
void eswtResizeControl(Item item, Control control, int width, int height)
{
- control.setSize(width, height);
+ if(control != null)
+ {
+ control.setSize(width, height);
+ }
}
/**
@@ -337,12 +350,11 @@
{
public void run()
{
- Control specific = eswtFindSpecificControl(item, control);
- if(specific != null)
+ if(control != null)
{
- if(!specific.isDisposed())
+ if(!control.isDisposed())
{
- eswtUpdateItem(item, specific, reason, param);
+ eswtUpdateItem(item, control, reason, param);
}
else
{
@@ -430,7 +442,7 @@
*/
Control eswtGetFirstControl(Item item)
{
- LayoutObject lo = dfi.getFirstLayoutObjectOfItem(item);
+ LayoutObject lo = formLayouter.getFirstLayoutObjectOfItem(item);
if(lo != null)
{
return lo.getControl();
@@ -446,7 +458,7 @@
*/
Control eswtGetFirstSpecificControl(Item item)
{
- LayoutObject lo = dfi.getFirstLayoutObjectOfItem(item);
+ LayoutObject lo = formLayouter.getFirstLayoutObjectOfItem(item);
if(lo != null)
{
Control control = lo.getControl();
@@ -707,7 +719,7 @@
if(!item.isFocused())
{
// Logger.method(item, "focusGained");
- dfi.eswtSetCurrentSelectedItem(item);
+ formLayouter.eswtSetCurrentSelectedItem(item);
}
}