CellWidget не отображается - PullRequest
1 голос
/ 01 июля 2011

Я пытаюсь заставить работать базовый виджет в моем приложении.Пока только Структура, чтобы я мог заменить ее позже чем-то значимым.Я посмотрел примеры и реализовал один, однако, когда я пытаюсь включить его в свое приложение, он не будет работать!

Вот часть кода.В чем проблема?Почему я не вижу виджет?

public class ListViewImpl extends Composite implements ListView
{

private static ListViewImplUiBinder uiBinder = GWT
        .create(ListViewImplUiBinder.class);

interface ListViewImplUiBinder extends UiBinder<Widget, ListViewImpl>
{
}

private Presenter presenter;

@UiField(provided=true)
CellBrowser cellbrowser;

public ListViewImpl()
{ 
    TreeViewModel model = new ListTreeViewModel();
    cellbrowser=new CellBrowser(model,null);
    cellbrowser.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
    cellbrowser.setAnimationEnabled(true);
    initWidget(uiBinder.createAndBindUi(this));
}

@Override
public void setPresenter(Presenter presenter)
{
    this.presenter=presenter;
}

 @Override
  public Widget asWidget() {
    return this;
 }

}

Файл Uibinder выглядит как ->

<ui:style>
      .browser {
    border: 1px solid #ccc;
}

.out
 {
        outline:#ccc solid thick;
 }
</ui:style>

    <g:HTMLPanel styleName='{style.out}' >    
                <c:CellBrowser addStyleNames='{style.browser}' defaultColumnWidth='300'  ui:field='cellbrowser'  />
    </g:HTMLPanel>

Класс модели ListTreeView идеально подходит, когда я использую код в автономном приложениидобавьте CellBrowser в RootLayoutPanel.Это работает!

1 Ответ

2 голосов
/ 01 июля 2011

CellBrowser является виджетом requireResize (он использует внутреннюю панель SplitLayoutPanel), поэтому, как и для всех виджетов requireResize, вы должны либо поместить его в виджет ProvidesResize, либо дать ему явные размеры.

...