2015-06-21 11 views
1

Моя проблема заключается в том, что я только что создал cellTable, но он не работает, потому что я вижу это на моем Broswer the red border is of the FlowPanel that contains the table that has a black border, on side there is the GWT.logВ GWT проекта CellTable, созданный с использованием AsyncDataProvider, не предъявляется

Красная граница из FlowPanel, который содержит таблицу с черной рамкой, на стороне есть GWT.log

Теперь я пробовал все, но я не знаю, почему, может быть, он не загружает таблицу по какой-то причине. Однако я уверен, что dataProvider работает beacause, поскольку, как видно из списка, журнал показывает, что данные «Carrello» загружаются в столбец моей таблицы «carrello». Вот код таблицы:

public class ShopTable extends CellTable { 
private CellTable<Carrello> carrello; 

private Column<Carrello, String> columnTitolo; 
private Column<Carrello, String> columnTipoSupporto; 

private AsyncDataProviderCarrello dataProvider; 

private String COLUMN_NAME_TITOLO="Titolo film"; 
private String COLUMN_NAME_SUPPORTO="Tipo"; 

public ShopTable(){ 
    carrello=new CellTable<>(); 
    createTable(); 

    createWithAsyncDataProvider(); 
    GWT.log("Column example: "+carrello.getColumn(0).toString()); 
} 

private void createTable(){ 
    columnTitolo=buildColumnTitolo(); 
    columnTipoSupporto=buildColumnTipoSupporto(); 

    // NEED TO ADD HEADER (and FOOTER MAYBE) 
    carrello.addColumn(columnTitolo, "Titolo Film"); 
    carrello.addColumn(columnTipoSupporto, "Tipo"); 
} 

private Column<Carrello, String> buildColumnTitolo(){ 
    columnTitolo=new Column<Carrello, String>(new EditTextCell()) { 

     @Override 
     public String getValue(Carrello object) { 
      GWT.log("aggiungo a carrelloTable: "+object); 
      return object.getTitolo(); 
     } 
    }; 
    columnTitolo.setDataStoreName(COLUMN_NAME_TITOLO); 

    return columnTitolo; 
} 
private Column<Carrello, String> buildColumnTipoSupporto(){ 
    columnTipoSupporto=new Column<Carrello, String>(new EditTextCell()) { 

     @Override 
     public String getValue(Carrello object) { 
      GWT.log("aggiungo a carrelloTable: "+object); 
      return object.getTipoSupporto().toString(); 
     } 
    }; 
    columnTipoSupporto.setDataStoreName(COLUMN_NAME_TITOLO); 

    return columnTipoSupporto; 
} 
private void createWithAsyncDataProvider(){ 
    dataProvider=new AsyncDataProviderCarrello(); 
    dataProvider.addDataDisplay(carrello); 
    dataProvider.updateRowCount(10, false); 
    //.. SORTING METHOD NEED TO ADD 

}  

}
Здесь код виджета UiBinder, которые используют ShopTable

public class CarrelloPage extends Composite { 

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

interface CarrelloPageUiBinder extends UiBinder<Widget, CarrelloPage> { 
} 

interface MyStyle extends CssResource{ 
    String carrelloTable(); 
} 

@UiField MyStyle style; 

@UiField FlowPanel spazio_carrello; 

/** 
* necessario per dimensionare ad hoc per 
* il pannello 
*/ 

private ShopTable carrello; 

private void resizeWidget(){ 
    setWidth("100%"); 
    setHeight(Window.getClientHeight() + "px"); 
} 

public CarrelloPage() { 
    carrello=new ShopTable(); 
    initWidget(uiBinder.createAndBindUi(this)); 
    carrello.setStyleName(style.carrelloTable()); 
    spazio_carrello.add(carrello); 
    resizeWidget(); 
    Window.addResizeHandler(resizeHandler); 

} 
private ResizeHandler resizeHandler = new ResizeHandler() 
{ 
    public void onResize (ResizeEvent event) 
    { 
     setWidgetToMaxWidthAndHeight(); 
    } 
}; 

private void setWidgetToMaxWidthAndHeight() 
{ 
    setWidth("100%"); 
    setHeight(Window.getClientHeight() + "px"); 

} 
} 

Спасибо за внимание!

ответ

3

Ваш CellTable имеет высоту нуля. Вот почему вы этого не видите.

Вам либо нужно установить высоту вашего CellTable в коде, либо добавить его в виджет, который реализует интерфейс ProvidesResize, например LayoutPanel.

+0

Хорошо, я последовал вашим советам и упростил это. Я добавил код CellTable прямо в класс UIBinder, спасибо большое! – anto150192