个性化阅读
专注于IT技术分析

RichFaces rich:tree用法示例

本文概述

该组件用于创建分层树。它使用<rich:treeNode>作为子组件。

我们可以根据需要创建定制树。 RichFaces提供了所有可用的组件来相应地创建树。

它需要value属性绑定数据模型以创建树。数据模型必须是org.richfaces.model.TreeNode接口, org.richfaces.model.TreeDataModel接口或javax.swing.tree.TreeNode接口。

样式类和皮肤参数

下表包含TreeNode的Style类和相应的外观参数。

Class Function Skin Parameters 映射的CSS属性
.rf-trn 它用于定义树节点的样式。 generalFontFont generalSizeFont 字体家族字体大小
.rf-trn-lbl 它用于定义树节点标签的样式。 没有皮肤参数。
.rf-trn-cnt 它用于定义树节点内容的样式。 没有皮肤参数。
.rf-trn-sel 它用于定义所选树节点的样式。 additionalBackgroundColor background
.rf-trn-ldn 它用于为树节点加载时定义样式。 additionalBackgroundColor background
.rf-rn-hnd 它用于定义树节点句柄的样式。 没有皮肤参数。
.rf-trn-hnd-lf 它用于定义叶节点句柄的样式。 没有皮肤参数。
.rf-trn-hnd-colps 它用于为折叠节点的句柄定义样式。 没有皮肤参数。
.rf-trn-hnd-exp 它用于定义扩展节点的句柄的样式。 没有皮肤参数。
.rf-trn-hnd-ldn-fct 它用于为树节点句柄的加载方面定义样式。 没有皮肤参数。
.rf-trn-ico 用于定义树节点图标的样式。 没有皮肤参数。
.rf-trn-ico-lf 用于定义叶节点图标的样式。 没有皮肤参数。
.rf-trn-ico-colps 它用于为折叠节点的图标定义样式。 没有皮肤参数。
.rf-trn-ico-exp 它用于为扩展节点的图标定义样式。 没有皮肤参数。
.rf-trn-ico-cst 它用于定义自定义节点图标的样式。 没有皮肤参数。

例子

在下面的示例中, 我们正在实现<rich:tree>组件。本示例包含以下文件。

JSF文件

// rich-tree.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<f:view>
<h:head>
<title>Rich Tree </title>
</h:head>
<h:body>
<h:form>
<rich:tree value="#{tree.rootNodes}" var="tree">
<rich:treeNode>
<h:outputText value="#{tree.data}" />
</rich:treeNode>
</rich:tree>
</h:form>
</h:body>
</f:view>
</ui:composition>

托管豆

// Tree.java

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.richfaces.model.TreeNodeImpl;
@ManagedBean
@RequestScoped
public class Tree extends TreeNodeImpl {
private Tree stationRoot;
private Tree rootNodes;
private Object data;

public Tree() {
super();
}
public Tree(boolean leaf, Object data) {
super(leaf);
this.data = data;
}
public Object getData() {
return data;
}
@Override
public String toString() {
return super.toString() + ">>" + data;
}
public Tree getRootNodes() {
if (rootNodes == null) {
String[] author_collection = {"Ravindra Nath Tagore - Geetanjali", "David Bowie - Let's Dance", "Paulo Coelho  - Alchemist", "Kim Carnes - Bette Davis Eyes", "KC & the Sunshine Band - Give It Up"};
stationRoot = new Tree(false, "Books Collection");
for (int i = 0; i < author_collection.length; i++) {
Tree child = new Tree(true, author_collection[i]);
stationRoot.addChild(i, child);
}
rootNodes = new Tree();
rootNodes.addChild(0, stationRoot);
}
return rootNodes;
}
}

输出

RichFaces树1

扩展根树后, 它将显示所有树节点, 如下所示。

RichFaces树2

赞(0) 打赏
未经允许不得转载:srcmini » RichFaces rich:tree用法示例
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏