p:treeNode:自定义TreeNode类型的自定义图标

时间:2016-05-30 13:08:39

标签: primefaces tree icons treenode

我正在运行Primefaces 5.3.10,Mojarra 2.2.13,Java8和Tomcat8。

我希望有一个具有不同类型TreeNodes的primefaces树。应使用相应的自定义图标呈现每种类型的TreeNode。

我在网上研究了一些例子,但找不到可行的解决方案。

我有一个java类TreeModel.java,它提供了一个TreeNode:

abstract class Command
{
    public abstract object GetValue();
}

abstract class Command<T> : Command
{
    public T GetTypedValue()
    {
        return (T)GetValue();
    }
}   

class TalkCommand : Command<string>
{
    public override object GetValue()
    {
        return "Test";
    }
}

class SpendCommand : Command<int>
{
    public override object GetValue()
    {
        return 1234;
    }
}

描述我的树的CustomTree.xhtml:

public class TreeModel {

    TreeNode root = new DefaultTreeNode("Root", null);

    public TreeNode getRoot(){
        return root;
    }

    public void populizeTree(){
        TreeNode node = new DefaultTreeNode("customType1", "nodeName", root);
        TreeNode subNode = new DefaultTreeNode("customType2", "subNodeName", node);
        TreeNode subNode2 = new DefaultTreeNode("customType3", "subNode2Name", node);
    }
}

为了显示不同TreeNode类型的不同图标,我还创建了名为TreeNode.css的css文件:

<p:tree value="#{TreeModel.root}" 
     var="node" 
     highlight="true"
     dynamic="true"
     selectionMode="single"
     id="modultree"
     style="width: 980px;">
      <p:treeNode type="customType1" icon="icon-modul">
          <h:outputText value="#{node}"/>
      </p:treeNode>
      <p:treeNode type="customTyp2" icon="icon-konto">
          <h:outputText value="#{node}"/>
      </p:treeNode>
      <p:treeNode type="customType3" icon="icon-exam">
          <h:outputText value="#{node}"/>
      </p:treeNode>
</p:tree>

并将png文件放在目录/ myApp / resources / images /.

我尝试了一些变体,但无论哪种方式都不会呈现自定义图标。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

Kukeltje的提示解决了我的问题。 使用Firebug我可以看到,css应该像

.ui-widget-content .icon-exam {
    background-image: url("../images/hio-pruefung.png") !important;
    height: 16px;
    width: 16px;
}

我无法找到使用语法引用图像的方法: URL(&#34;#{资源[&#39;图像:HIO-pruefung.png&#39;]}&#34)