litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.forms.client.components.factories.others; import org.litesoft.GWT.client.widgets.*; import org.litesoft.GWT.client.widgets.nonpublic.*; import org.litesoft.GWT.forms.client.components.nonpublic.*; import org.litesoft.GWT.forms.client.nonpublic.*; import org.litesoft.ui.def.*; import org.litesoft.ui.def.nonpublic.support.*; import org.litesoft.uispecification.*; import com.google.gwt.user.client.ui.*; public abstract class AbstractSingleLayoutWidgetFactory extends AbstractLayoutWidgetFactory { public Widget createContainerWidget( FormInstanceComponentHandler pComponentHandler, UiDef pUiDef, FormMetaData pFormMetaData, DefWidgetStruct[] pChildDefWidgets ) { UiSingleCellLayoutDef zLayoutDef = (UiSingleCellLayoutDef) pUiDef; AbstractSizeableSimplePanel panel = createPanel( pFormMetaData, zLayoutDef ); boolean anyStretchableHorizontally = false; boolean anyStretchableVertically = false; for ( int i = 0; i < pChildDefWidgets.length; i++ ) { DefWidgetStruct zDefWidget = pChildDefWidgets[i]; anyStretchableHorizontally |= zDefWidget.isStretchableHorizontally(); anyStretchableVertically |= zDefWidget.isStretchableVertically(); panel.add( zDefWidget.getWidget() ); } return addStretchabilityAndStyle( panel, zLayoutDef, anyStretchableHorizontally, anyStretchableVertically ); } private AbstractSizeableSimplePanel createPanel( FormMetaData pFormMetaData, UiSingleCellLayoutDef pUiDef ) { Overflow zOverflowPolicy = pUiDef.getOverflowPolicy(); boolean zOverflow = !Overflow.Scrolled.equals( zOverflowPolicy ); // todo: replace with 3 options String zExtTitle = pUiDef.getExtTitle(); if ( zExtTitle != null ) { LabelMetaData md = pFormMetaData.getLabel( pUiDef ); String zTitle = md.getExternalText(); return new SizeableTitledBorderedSimplePanel( zOverflow, zTitle ); } if ( pUiDef.isBordered() ) { return new SizeableBorderedSimplePanel( zOverflow ); } return new SizeableSimplePanel( zOverflow ); } } |