PDA

View Full Version : Combobox and resize



mdg
1 Sep 2008, 3:25 AM
Hi all!

I try to get dinamically resizing combo (GXT-alpha3)




public void onModuleLoad() {
final Viewport viewport = new Viewport();
viewport.setLayout(new BorderLayout());
ContentPanel center = new ContentPanel();
center.setLayout( new FitLayout() );
center.add( getTest() );

viewport.add( center,

new BorderLayoutData( LayoutRegion.CENTER ) );


RootPanel.get().add(viewport);


DeferredCommand.addCommand(new Command() {


public void execute() {

viewport.layout();

}
});
}



private FieldSet getTest() {


FieldSet fSet = new FieldSet();


fSet.setHeading( "Test" );

fSet.setCollapsible( true );



FormPanel fPanel = new FormPanel();


fPanel.setHeaderVisible( false );


fPanel.setBodyBorder( false );

FormLayout l = new FormLayout();

l.setPadding( 5 );
l.setLabelWidth( 80 );
fPanel.setLayout( l );




FormData fData = new FormData();


fData.setAnchorSpec( "-120" );


ComboBox<BaseModel> recipientCountryBox = new ComboBox<BaseModel>();

recipientCountryBox.setFieldLabel( "COUNTRY" );

recipientCountryBox.setDisplayField( "CountryName" );
recipientCountryBox.setAllowBlank( false );
recipientCountryBox.setForceSelection( true );
recipientCountryBox.setStore( new ListStore<BaseModel>() );
recipientCountryBox.setTriggerAction( TriggerAction.ALL );
fPanel.add( recipientCountryBox, fData );



ComboBox<BaseModel> recipientDirectionBox = new ComboBox<BaseModel>();


recipientDirectionBox.setFieldLabel( "DIRECTION" );


recipientDirectionBox.setDisplayField( "Name" );

recipientDirectionBox.setAllowBlank( false );

recipientDirectionBox.setForceSelection( true );
recipientDirectionBox.setEditable( false );
recipientDirectionBox.setEnabled( false );
recipientDirectionBox.setStore( new ListStore<BaseModel>() );
fPanel.add( recipientDirectionBox, fData );



LayoutContainer main = new LayoutContainer( new ColumnLayout() );


main.add( fPanel, new ColumnData( .5 ) );


fPanel = new FormPanel();


fPanel.setHeaderVisible( false );


fPanel.setBodyBorder( false );

l = new FormLayout();

l.setPadding( 5 );
l.setLabelWidth( 60 );
fPanel.setLayout( l );



ComboBox<BaseModel> recipientCityBox = new ComboBox<BaseModel>();


recipientCityBox.setFieldLabel( "CITY" );


recipientCityBox.setDisplayField( "CityName" );

recipientCityBox.setAllowBlank( false );

recipientCityBox.setForceSelection( true );
recipientCityBox.setEnabled( false );
recipientCityBox.setStore( new ListStore<BaseModel>() );
fPanel.add( recipientCityBox, fData );



main.add( fPanel, new ColumnData( .5 ) );


fSet.add( main );
return fSet;


}



When I maximize window all fields are resized correctly. But when minimize now fields become broken (see attachment 1).


But if I click to broken combo it "jump" to its place (see attachment 2).
The same effect with validator icon at the right side of the field. After resize it can be inside field and "jump" to its place only after click on field/


How can I avoid it?