List GWT单元列表Ubinder

List GWT单元列表Ubinder,list,gwt,cell,uibinder,List,Gwt,Cell,Uibinder,由于我的开发需求,我需要创建一个GWT单元列表,其中包含UIBinder。谁能给我举个例子说明怎么做 我正在查看gwt的展示,但我发现任何案例都不相同 太多了 您应该查看一下官方文档: 当您使用UiRenderer时,您使用的是UiBinder,您需要将UiBinder看作是从ui.xml模板生成DOM的东西,如果您使用UiRenderer则直接将DOM结构描述为html,而不是使用“GWT普通的东西(如)” 所以有相关的概念 关于你的问题: 1) 是的,您可以这样做,但是使用html和css。

由于我的开发需求,我需要创建一个GWT单元列表,其中包含UIBinder。谁能给我举个例子说明怎么做

我正在查看gwt的展示,但我发现任何案例都不相同


太多了

您应该查看一下官方文档:

当您使用
UiRenderer
时,您使用的是
UiBinder
,您需要将
UiBinder
看作是从
ui.xml
模板生成DOM的东西,如果您使用
UiRenderer
则直接将DOM结构描述为html,而不是使用“GWT普通的东西(如
)”

所以有相关的概念

关于你的问题:

1) 是的,您可以这样做,但是使用html和css。附加处理程序的方法非常简单,我将向您展示一个示例:

public class YourTypeCell extends AbstractCell<T> {
   static interface Renderer extends UiRenderer {
     void render(SafeHtmlBuilder sb, String id, String name, String img);
     void onBrowserEvent(CommentCell o, NativeEvent e, Element p, T value);
  }

  private final Renderer renderer;

  public YourTypeCell(...) {
    super(BrowserEvents.CLICK, BrowserEvents.MOUSEOVER);
    ....
    renderer = GWT.create(Renderer.class);
  }

  @Override
  public void render(Context context, final T item, final SafeHtmlBuilder sb) {
    String id = ...;
    String img = ...;
    String name = ...;
    renderer.render(sb, id, name, img);
  }

  @Override
  public void onBrowserEvent(Context context, Element parent,
      T value, NativeEvent event, ValueUpdater<T> valueUpdater) {
    renderer.onBrowserEvent(this, event, parent, value);
  }

  @UiHandler({"field1"})
  void onMouseOver(MouseOverEvent event, Element parent, T value) {
    ...
  }

  @UiHandler({"field2"})
  void onReplyComment(ClickEvent event, Element parent, T value) {
    ...
  }
}

请看一下。谢谢你问Braj。我读过这篇文章,但我有一些疑问。1) 它使用UiRenderer而不是UiBinder。我需要一个带有图片、字符串和三个带有onClick事件处理程序的按钮的UiBinder。我能用它来实现吗。我在网上读了很多书,但我不能得到一个清晰的想法。2) 在使用示例中,在类CellListExample中,它显示了创建CellList的代码,但我有一个疑问。如何使用此示例?我的意思是,如何用UiBinder创建一个列表,并将其显示在单元格列表中?谢谢谢谢阿帕尼佐的回答,这对我来说太有用了,我已经实现了我想要的。使用UIBinder提供了一种强大的方式来创建漂亮的用户界面。嗨!我想用uibinder做点别的事。我把它贴在这里是因为它与前面的请求相关,它可能对其他人有用。我想处理点击事件(已解决),但现在我需要,当用户在字段2中点击时,更改“”的文本。我想我得再做一次类似的事情。你知道我怎么做吗?谢谢你的建议。我想用GQuery。我需要文本,但根据我的记忆,在单元格@UiField DivElement field2;中创建变量,然后,在字段2的ClickHandler中,如果您使用GQuery.$(field2.html(“pepito”);,它应该会起作用。如果没有,请告诉我。这正是我正在应用的方法,但我想知道是否有其他自己的UiBinder方法可以做到这一点。使用GQuery,它可以正常工作。谢谢
<!DOCTYPE ui:UiBinder SYSTEM 'http://dl.google.com/gwt/DTD/xhtml.ent'>
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui' >
  <ui:style>
    .clear{
      clear:both;
    }
    .cssOne {
      ....
    }
    .cssTwo {
      ....
    }
  </ui:style>

  <ui:with field="id" type="java.lang.String"/>
  <ui:with field="name" type="java.lang.String"/>
  <ui:with field="img" type="java.lang.String"/>

  <div ui:field='field1' class="{style.cssOne}">
    <div ui:field='field2' class="{style.cssTwo}"> 
      <ui:text from='{name}'/> 
    </div>
    <p><ui:safehtml from='{img}'/></p>
  </div>

</ui:UiBinder> 
CellList<T> cellList = new CellList<T>(new YourTypeCell(...));