`
vencent
  • 浏览: 33847 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

转载:Tree2实践

阅读更多

通过一次小小的实践,终于了解如何使用tomahawk中的tree2这个组件了,并且写了小段程序,从xml中读取树的结构,生成一个tree,不过tree2不能直接和xml绑定是一个遗憾,那样就会省不少事情了。记下一点心得,以供后来参考了。<o:p>

         tree2的操作分为两部分,一部分是在页面中通过tag定义样式相关的东西,一部分就是通过编程添加树的节点,起初看了sample以后总是以为这东西有多么的复杂,其实逻辑是很简单的,只是sample中定义了多种不同的样式的节点,看上去很复杂而已。<o:p>

下面附上我对sample简化过的这段tag来说明一下。<o:p>

<t:tree2 value="#{catalog.node}" var="node" id="clientside" varNodeToggler="t" ><o:p>

    <f:facet name="folder"><o:p>

        <h:panelGroup><o:p>

            <f:facet name="expand"><o:p>

                <t:graphicImage value="images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/><o:p>

            </f:facet><o:p>

            <f:facet name="collapse"><o:p>

                <t:graphicImage value="images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/><o:p>

            </f:facet><o:p>

            <h:outputText value="#{node.description}"/><o:p>

        </h:panelGroup><o:p>

    </f:facet><o:p>

</t:tree2><o:p>

tree2的主tag定义了tree的根节点和一些相关的参数。嵌套的那个facet定义了一种节点的样式,包括展开与关闭时的图片,以及显示的文字内容。<o:p>

在程序里面,我们root TreeNodeBase = new TreeNodeBase(…)来创建一个root节点,然后通过root.getChildren().add(new TreeNodeBase(…))为其添加子节点,任何一个节点都可以添加任意多的子节点,通过这样的操作,我们可以很容易的生成一个tree的结构了,实际上,这个tree的结构是通过递归从xml中读取出来,生成一个和xml tree完全相同的结构。<o:p>

除了明白如何去用这个tree2之外的收获就是,终于明白了如何去通过递归方法遍历一个树形结构,虽然在学校里学过遍历的算法,也抄过例程,但从来没有理解过是怎么一回事,终于在实践中理解了,实践才是软件的根本之道。
<o:p>   程序的其它部分放在附件里面了,如果有兴趣了可以和我讨论tree2,讨论其它JSF的东西。
</o:p>

源文件下载

查看 解析Tree2 全文
<o:p>



Vencent Chen 2006-01-14 03:43 发表评论
分享到:
评论

相关推荐

    Struts2中关于s:tree

    在Struts2中,`s:tree`是用于展示树形结构数据的一个标签,它提供了一种方便的方式来呈现层次化的数据,比如组织结构、文件系统或者数据库中的分类数据。在本文中,我们将深入探讨`s:tree`标签的使用、配置和相关...

    用richFaces的<rich:treeNode>标签开发tree

    2. **nodeKey**:标识节点的独特键,通常与后台数据绑定,用于区分不同的节点。 3. **childNodes**:用于定义子节点,可以通过EL表达式来动态生成子节点。 4. **rendered**:决定节点是否应该被渲染。可以结合条件...

    Flex使用<mx:Tree>控件创建树(可添加和删除节点)

    本文将详细讲解如何在Flex中使用`&lt;mx:Tree&gt;`控件来创建可动态添加和删除节点的树形结构,以及相关的源码和工具应用。 `&lt;mx:Tree&gt;`控件是Flex MX组件库中的一个关键组件,它允许开发者展示层次化的数据,用户可以...

    tree-3.1: tree.hh: an STL-like C++ tree class

    The tree.hh library for C++ provides an STL-like container class for n-ary trees, templated over the data stored at the nodes. Various types of iterators are provided (post-order, pre-order, and ...

    陈越、何钦铭-数据结构作业11:Tree Traversals Again二叉树非递归遍历/栈遍历

    push(2); push(3); pop(); pop(); push(4); pop(); pop(); push(5); push(6); pop(); pop(). Then a unique binary tree (shown in Figure 1) can be generated from this sequence of operations. Your task is to...

    MaxMind-DB-Writer-perl:创建MaxMind DB数据库文件

    名称 MaxMind :: DB :: Writer-创建MaxMind DB数据库文件 ...my $tree = MaxMind::DB::Writer::Tree-&gt;new( ip_version =&gt; 6, record_size =&gt; 24, database_type =&gt; 'My-IP-Data', languages =&gt; ['en'], descr

    DBIx::Tree.pm-开源

    ### 2. 邻接表模型 邻接表是一种常见的表示树结构的方式,每个节点存储了其直接子节点的引用。在 DBIx::Tree 中,这种模型允许快速访问和更新树的层级关系。邻接表模型适合于插入和删除操作,但查询整个树的深度和...

    SpeedTree学习与实践笔记.doc

    SpeedTree 学习与实践笔记 SpeedTree 是目前最好的树生成工具,它提供了强大的功能和灵活的架构,使得开发者可以轻松地将其集成到自己的游戏引擎中。下面是 SpeedTree 的一些重要特点和功能: 1. 无关 API:Speed...

    ZONEZS-Python#Python3#1.2.3 tree 文件树:tree -L 21

    进入到指定文件夹中,生成文件树 使用指令 tree -L 2 ,如下/TextScanning tree -L 2。

    EXT Tree的简单实践

    2. **EXT Tree 组件**:EXT Tree 是 EXTJS 中的树形组件,可以展示多层嵌套的数据。它支持动态加载、节点的展开与折叠、拖放操作、节点选择等多种交互方式。开发者可以通过配置项调整其外观和行为,如图标、文本、...

    site:TREE网站

    TREE网站目的: TREE的总体概述和目标入门入门链接到规格自动更新有关团队和我们有关TREE的出版物的数据主持演示未来: 数据目录LDN收件箱,以通知我们任何新的建立网站我们首先使用bin/fetchData.js脚本预取数据,...

    英文语料库词汇标注软件TreeTagger

    2. **多语言支持**:除了英文,TreeTagger还支持多种其他语言,如德语、法语、西班牙语等,这使得它成为一个多语种处理的强大工具。 3. **灵活性**:用户可以通过调整参数来优化模型,以适应特定任务或特定语言的...

    tree2graph_ATL_eclipse:tree2graph ATL月食

    【标题】"tree2graph_ATL_eclipse:tree2graph ATL月食" 是一个与模型转换相关的工具,它使用了ATL(Atlas Transformation Language)语言,并集成了Eclipse开发环境。ATL是一种强大的、基于元模型的转换语言,用于在...

    jQuery插件之二:Simple Tree

    **jQuery插件:Simple Tree详解** 在Web开发中,数据的层次展示经常是必不可少的,例如目录结构、组织架构或层级菜单。为了实现这样的效果,jQuery插件Simple Tree应运而生。它提供了一个轻量级且易于使用的解决...

    js treeview 无限级Tree树形菜单代码.rar

    一个JavaScript无限级Tree树形展开菜单的示例含代码,说明:由于程序切换图片与图片名称有关,所以如果不使用这程序所带的图片时,请把你的图片名称改成与这程序相对应的图片的名称一样。打开文件夹(第一次打开时...

    Flex tree的用法

    Flex Tree组件是Adobe Flex框架中的一个关键元素,用于在用户界面上展示层次结构的数据。它在各种应用程序中广泛使用,特别是在需要...通过学习和实践提供的源代码,能够进一步提升对Flex Tree控件的理解和应用能力。

    Ajax tree,动态生成Tree

    **Ajax Tree技术详解** 在网页开发中,树形结构(Tree)是一种常见的数据展示方式,尤其在管理和组织层级数据时非常实用。Ajax Tree是利用Ajax技术动态加载和更新树节点,提供用户友好的交互体验。它允许用户在不...

    woomoki::green_heart::deciduous_tree::turtle:三星软件学院共同项目WooMo-I:green_heart::deciduous_tree::turtle:

    :deciduous_tree: :deciduous_tree: :deciduous_tree: :deciduous_tree: :deciduous_tree: :deciduous_tree: Woo Mok [我们将实现所有目标] :deciduous_tree: :deciduous_tree: :deciduous_tree: :deciduous_tree: :...

Global site tag (gtag.js) - Google Analytics