首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wicket - Tree +

Wicket - Tree +
EN

Stack Overflow用户
提问于 2011-11-10 00:24:31
回答 1查看 1.9K关注 0票数 1

我是wicket和jquery的新手,我希望我的wicket页面中有一棵简单的树,链接到。(“简单”,我指的是一个词根,有些孩子可能是孩子,.)。

每个节点都包含一个带有其名称和一些链接或按钮的标签。

我发现的一切看起来都很难..。我喜欢“RecursivePanel”这个例子,但我无法让它与jquery一起工作。

你对下面的解决方案有什么看法?我不太喜欢分裂成两个组件的事实,但我没有找到任何好的解决方案。

因此,该树由两个组件组成。

  • NodePanel,其中包含节点的名称和NodeChildrenPanel。
  • NodeChildrenPanel,包含一个标签,如果它是一个叶或一个NodePanel再次为每个孩子。

NodePanel.html

代码语言:javascript
复制
<wicket:panel>
  <li>
    <span wicket:id="name"></span>
    <span wicket:id="children"></span>
  </li>
</wicket:panel>

NodePanel.java

代码语言:javascript
复制
class NodePanel extends Panel {
    Node(String id, Node node) {
        super(id);

        setRenderBodyOnly(true);

        add(new Label("name", node.getName()));
        add(new NodeChildrenPanel("children", node));
    }
}

NodeChildrenPanel.html

代码语言:javascript
复制
<wicket:panel>
  <ul>
    <li wicket:id="children"></li>
  </ul>
</wicket:panel>

NodeChildrenPanel.java

代码语言:javascript
复制
class NodeChildrenPanel extends Panel {
    public NodeChildrenPanel(String id, Node node) {
        super(id);

        setRenderBodyOnly(true);

        if (node.isLeaf()){
            Label l = new Label("children");
            l.setVisible(false);
            add(l);
        } else {
            RepeatingView rv = new RepeatingView("children");

            for (Node child : node.getChildren()){
                if (child.isLeaf()){
                        rv.add(new Label(rv.newChildId(), child.getName()));
                } else {
                        rv.add(new NodePanel(rv.newChildId(), child));
                }
            }

            add(rv);
        }       
 }

}

在那页里,

根节点被创建为

代码语言:javascript
复制
 <ul id="my_tree_ul">
    <div wicket:id="my_tree"></div>
 </ul>
代码语言:javascript
复制
add(new NodePanel("my_tree", getSession().getMyRootNode());

并链接到。

代码语言:javascript
复制
public void renderHead(IHeaderResponse response) {
    String js = "$(document).ready(function(){ $(\"#my_tree_ul\")
                     .treeview({animated: \"fast\",       
                          });
                 });");

    response.renderJavaScript(js, null);
}

有没有更好的解决办法?

EN

回答 1

Stack Overflow用户

发布于 2011-11-11 13:00:42

我们使用由Treeg不但包提供的巫术扩展

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8073609

复制
相关文章

相似问题

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