首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GWT CellBrowser或单元格树中添加相同级别的叶节点和非叶节点。

在GWT CellBrowser或单元格树中添加相同级别的叶节点和非叶节点。
EN

Stack Overflow用户
提问于 2013-11-07 06:20:02
回答 2查看 119关注 0票数 0

我想在GWT / Cell中添加non-leafleaf nodes。我能做吗?如果是,怎么做?因为在返回DefaultNodeInfo时,我没有选择返回这两种ListDataProviders

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-07 12:26:19

一个简单的解决方案是创建一个超类或接口节点,您的NonLeafNode和LeafNode类将其扩展/实现:

代码语言:javascript
复制
public class NonLeafNode extends Node{
}

代码语言:javascript
复制
public class NonLeafNode implements Node{
}

然后,您可以给CellBrowser或CellTree一个单独的ListDataProvider,它提供了两种类型的节点。在底层模型(例如TreeViewModel )中,您需要调整isLeaf(对象o)和getNodeInfo(T值)函数如下:

代码语言:javascript
复制
public boolean isLeaf(Object value) {
    if (value instanceof NonLeafNode) return true;
    if (value instanceof LeafNode) return false;
    return false;
}

public <T> getNodeInfo(T value){
    if (value instanceof NonLeafNode) 
         // return node info for non-leaf-node
        ;
    else if (value instanceof LeafNode)
         // return node info for leaf node
        ;
    return null;
}
票数 1
EN

Stack Overflow用户

发布于 2013-12-02 09:46:59

我的出路!

代码语言:javascript
复制
private static class Folder
        {
            private final String        name;

            private final List<Folder>  folder  = new ArrayList<Folder>();

            public Folder(String name)
            {
                this.name = name;
            }

            public String getName()
            {
                return name;
            }

            public void addFolder(Folder p)
            {
                this.folder.add(p);
            }

            public List<Folder> getFolders()
            {
                return folder;
            }
        }

然后,在我们创建的CustomTreeModel中重写isLeaf,如下所示

代码语言:javascript
复制
        public boolean isLeaf(Object value)
        {
            if (value instanceof String || (value instanceof Folder && ((Folder) value).getFolders().isEmpty()))
            {
                return true;
            }
            return false;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19829259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档