私はWebを開発していますJava JSF 2.2およびPrimeFaces 6.0を使用したアプリケーションです。p:tree
を構築しています。たとえば、UIアイコンの色を次の画像(テキストは打ち切りです)。
私のxhtmlコードは次のとおりです。
<p:tree value="#{docBean.root}" var="doc">
<p:treeNode expandedIcon="ui-icon-folder-open" collapsedIcon="ui-icon-folder-collapsed">
<h:outputText value="#{doc.name}" />
</p:treeNode>
</p:tree>
試してみました...
.ui-icon-folder-open{
color: red;
}
...しかし、アイコンの背景だけが赤に変わりました。
ありがとうございました!
私にとって最も柔軟で簡単な解決策は、ノードにfont-awesome 'icons'を使用することです。それらは効果的なアイコンではなく、名前が示すようにフォントです。したがって、これらはcssによって変更できます。したがって、彼らの人気となぜ彼らも PrimeFacesに含まれています
アイコン付きツリーのPrimeFacesショーケース は、開いているノードと閉じているノードの両方、および葉のノードにカスタムアイコンを追加できることを示しています。幸い、クライアント側で対応する属性に追加したものはすべて、htmlの「クラス」属性になり、属性に複数の空白値を追加できます。これがfont-awesomeに必要なものなので、expandedIcon="fa fa-folder-open"
またはcollapsedIcon="fa fa-folder"
を追加することにより、適切なアイコンを取得でき、デフォルトのスタイル.fa { color: orange}
を使用して、希望どおりの結果を得ることができます。
葉が変更された完全な例では、次のようになります。
<style>
.fa {
color: orange;
}
</style>
<h:form>
<p:tree value="#{treeIconView.root}" var="doc">
<p:treeNode expandedIcon="fa fa-folder-open" collapsedIcon="fa fa-folder">
<h:outputText value="#{doc.name}"/>
</p:treeNode>
<p:treeNode type="document" icon="fa fa-file-o">
<h:outputText value="#{doc.name}" />
</p:treeNode>
<p:treeNode type="picture" icon="fa fa-file-picture-o">
<h:outputText value="#{doc.name}" />
</p:treeNode>
<p:treeNode type="mp3" icon="fa fa-file-video-o">
<h:outputText value="#{doc.name}" />
</p:treeNode>
</p:tree>
</h:form>
しかし、さらに先に進むことができます。次の画像を見てください。
次の例で作成されます。
<style>
.fa {
color: orange;
}
.videoColor {
color: blue;
}
.colorOpen {
color: green;
}
.fa-file-picture-o {
color: purple;
}
.color30KB {
color: red;
}
</style>
<h:form>
<p:tree value="#{treeIconView.root}" var="doc">
<p:treeNode expandedIcon="fa fa-folder-open colorOpen" collapsedIcon="fa fa-folder">
<h:outputText value="#{doc.name}"/>
</p:treeNode>
<p:treeNode type="document" icon="fa fa-file-o">
<h:outputText value="#{doc.name}" />
</p:treeNode>
<p:treeNode type="picture" icon="fa fa-file-picture-o #{doc.size == '30 KB' ? 'color30KB' : '' }">
<h:outputText value="#{doc.name}" />
</p:treeNode>
<p:treeNode type="mp3" icon="fa fa-file-video-o videoColor">
<h:outputText value="#{doc.name}" />
</p:treeNode>
</p:tree>
</h:form>
アイコン属性に追加の「クラス」を追加できますが、すでに追加されているfaクラスを使用してcssセレクターで使用することも、値などに基づいてアイコンに特定の条件付き「クラス」を追加することもできます...また、CSSですべて変更できるため、色だけでなく、サイズ、回転、CSSアニメーションなども変更できます。