diff -r e0d6e9bd3ca7 -r bf7ee68962da javauis/lcdui_qt/src/javax/microedition/lcdui/SpacerLayouter.java --- a/javauis/lcdui_qt/src/javax/microedition/lcdui/SpacerLayouter.java Tue Jul 06 14:10:26 2010 +0300 +++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/SpacerLayouter.java Wed Aug 18 09:43:15 2010 +0300 @@ -29,11 +29,27 @@ /** * Constructor. * - * @param dflp DefaultFormLayoutPolicy. + * @param aFormLayouter FormLayouter used for layouting. */ - SpacerLayouter(DefaultFormLayoutPolicy dflp) + SpacerLayouter(FormLayouter aFormLayouter) { - super(dflp); + super(aFormLayouter); + } + + /** + * 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, eswtGetControl(formComposite, item)); + } + return lo; } /** @@ -58,7 +74,7 @@ */ boolean eswtIsSpecificControl(Item item, Control control) { - return true; + return (control instanceof Composite); } /** @@ -68,9 +84,38 @@ * @param control eSWT control. * @param reason reason to update. */ - void eswtUpdateItem(Item item, Control control, int reason, Object param) + void eswtUpdateItem(Item item, Control control, int aReason, Object param) { - // no implementation needed. + /*if(control instanceof Composite) + { + control.setSize(item.getMinimumWidth(), item.getMinimumHeight()); + }*/ + + if(!(control instanceof Composite)) + { + return; + } + + Spacer spacer = (Spacer)item; + int reason = aReason & Item.UPDATE_SIZE_MASK; + + switch(reason) + { + case Item.UPDATE_NONE: + break; + + case Spacer.UPDATE_MINIMUMSIZE: + { + Control sCtrl = eswtFindSpecificControl(spacer, control); + sCtrl.setSize(item.getMinimumWidth(), item.getMinimumHeight()); + break; + } + + default: + { + break; + } + } } }