![](/img/trans.png)
[英]How to implement a Compound View/Presenter for a GWT DecoratedTabPanel?
[英]How to add presenter to UiRenderer in GWT
我在GWT中使用UiRenderer创建了CellRenderer,如本页链接所述 。 一切都工作正常,除了我只是不知道如何重置该列表中的所有元素,这是我的代码。
查看课程:
/**
* Created by ashish on 2/23/15.
*/
public class SimpleListCell extends AbstractCell<NewsDto> {
public interface SimpleListCellRenderer extends UiRenderer {
void render(SafeHtmlBuilder sb,String title,String description);
void onBrowserEvent(SimpleListCell newsCell, NativeEvent event, Element parent, NewsDto value);
SpanElement getDescriptionSpan(Element parent);
}
private static SimpleListCellRenderer uiNewsCellRenderer = GWT.create(SimpleListCellRenderer.class);
public SimpleListCell(){
super("click");
}
@Override
public void onBrowserEvent(Context context, Element parent, NewsDto value,
NativeEvent event, ValueUpdater<NewsDto> updater) {
uiNewsCellRenderer.onBrowserEvent(this, event, parent, value);
}
@Override
public void render(Context context, NewsDto newsDto, SafeHtmlBuilder safeHtmlBuilder) {
String title = newsDto.getTitle();
String description = newsDto.getShortDescription();
uiNewsCellRenderer.render(safeHtmlBuilder,title,description);
}
@UiHandler({"selectedNews"})
void onSelectNews(ClickEvent event,Element parent,NewsDto value){
GWT.log(value.getDescription());
uiNewsCellRenderer.getDescriptionSpan(parent).setInnerText(value.getDescription());
}
}
UiBinder类。
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field="title" type="java.lang.String"/>
<ui:with field="description" type="java.lang.String" />
<ui:style>
</ui:style>
<div >
<span ui:field="selectedNews">
<h3><ui:text from="{title}" /> </h3>
<p><span ui:field="descriptionSpan"><ui:text from="{description}"/></span></p>
<hr/>
</span>
</div>
</ui:UiBinder>
现在,当我点击一些新闻时,它正在用大描述更新描述,但我想重置其余新闻的描述。 任何想过如何实现这一点。
如果输入参数newsDto是列表中的选定对象并以不同方式呈现它,则可以检入render方法。 在这种情况下,您将不使用uiNewsCellRenderer。 您可以定义一个SafeHtmlTemplate(如果您没有html则不需要)并使用它将SafeHtml呈现为SafeHtmlBuilder。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.