我正在尝试在GWT中创建一个CellTree,但由于某种原因,TreeViewModel无法正常工作
public class ChannelViewModel implements TreeViewModel {
@Override
public <T> NodeInfo<?> getNodeInfo(T value) {
if(value == null)
{
Window.alert("NODE 0");
return new DefaultNodeInfo<ChannelRepresentation>(new ChannelAsyncDataProvider(), new ChannelCell() );
} else if(value instanceof ChannelRepresentation)
{
Window.alert("NODE 1");
ChannelRepresentation feedChannel = (ChannelRepresentation) value ;
return new DefaultNodeInfo<EntryRepresentation>( new EntryAsyncDataProvider( feedChannel.getChannelURI() ), new FeedEntryCell() );
}
Window.alert("Undefined Value");
return null;
}
@Override
public boolean isLeaf(Object value) {
if(value instanceof EntryRepresentation)
{
Window.alert("isLeaf: True");
return true;
}
Window.alert("isLeaf: False");
return false;
}
}
是什么让我觉得TreeViewModel类中的问题是如果我使方法isLeaf()总是返回false,它开始渲染节点以进行条目表示。
此外,我分别测试了数据提供程序,它们工作正常,对我来说问题似乎在TreeViewModel中。如果我使用GWT的任何一个例子它完美地工作,我想我已经尝试了一切来解决这个问题,所以任何帮助都将受到高度赞赏
编辑: 这是我的onModuleLoad()方法,如果它提供了什么
public void onModuleLoad() {
ChannelViewModel model = new ChannelViewModel();
CellTree tree = new CellTree(model, null);
RootLayoutPanel.get().add(tree);
}
答案 0 :(得分:0)
我认为你的问题与这句话有关:
CellTree tree = new CellTree(model, null);
第二个参数不应该为空!