2015-12-16 4 views
0

Есть ли какой-либо возможный способ выровнять по горизонтали DynamicForm в центр VLayout? Я пробовал, что сделано в демонстрационной демонстрации this, но она не будет работать для формы (она действительно работает для IButton).Выровнять DynamicForm по горизонтали до центра VLayout

Вот мой код:

public class PreferencesStackSection extends SectionStackSection { 

    private static final String SAVE_ICON = "icons/save.png"; 
    private static final int COMPONENT_GAP = 10; 

    // Object used to get access to internationalization constants and messages 
    private BMSimulatorConstants constants = GWT.create(BMSimulatorConstants.class); 

    private DataSource ds; 
    private DynamicForm form; 
    private IButton saveBtn; 

    public PreferencesStackSection(String title) { 
     super(title); 
     ds = DataSource.get("preferences"); 
     buildPreferencesLayout(); 
    } 


    private void buildPreferencesLayout() { 
     VLayout layout = new VLayout(COMPONENT_GAP); 
     layout.setMargin(COMPONENT_GAP * 2); 
     layout.setDefaultLayoutAlign(Alignment.CENTER); 
     createPreferencesForm(layout); 
     createSaveButton(layout); 
     this.addItem(layout); 
    } 

    private void createPreferencesForm(VLayout layout) { 
     form = new DynamicForm(); 
     form.setNumCols(1); 
     form.setTitleOrientation(TitleOrientation.TOP); 
     form.setDataSource(ds); 
     layout.addMember(form); 
    } 

    private void createSaveButton(VLayout layout) { 

     saveBtn = new IButton(constants.preferencesSaveButton()); 
     saveBtn.setIcon(SAVE_ICON); 
     saveBtn.addClickHandler(new ClickHandler() { 
      public void onClick(ClickEvent event) { 

       DSCallback callback = new DSCallback() { 
        public void execute(DSResponse response, Object rawData, DSRequest request){ 
         SC.say(constants.preferencesSavedOK()); 
        } 
       }; 

       form.saveData(callback); 
      } 
     }); 
     layout.addMember(saveBtn); 
    } 
} 

ответ

0

Это решило проблему (порядок строк очень важно для его работы):

private void createPreferencesForm(VLayout layout) { 
    form = new DynamicForm(); 
    form.setDataSource(ds); 
    form.setNumCols(1); 
    form.setTitleOrientation(TitleOrientation.TOP); 
    layout.addMember(form); 
    form.setWidth("70%"); 
    for(FormItem item: form.getFields()){ 
     item.setWidth("*"); 
    } 
} 
Смежные вопросы