Expande/Collapse Tree on Node select
A veces necesitamos cambiar la funcionalidad que viene por defecto en el arbol de primefaces, y expandir o contraer los nodos al seleccionarlos:
<p:tree .. selectionMode="single"
rendered="true" scrollable="false">
<p:treeNode style="border:none;overflow:hidden">
<p:commandLink value="#{nodo.descripcion}"
action="#{...}" update="#{...}">
<f:param name="nodo" value="#{...}" />
</p:commandLink>
</p:treeNode>
<p:ajax event="select" update="..." listener="#{myBean.onNodeSelect}"/>
</p:tree>
En el bean correspondiente ponemos:
public void onNodeSelect(NodeSelectEvent event) {
if(!event.getTreeNode().isLeaf())
{
if(event.getTreeNode().isExpanded())
{
event.getTreeNode().setExpanded(false);
}
else
{
event.getTreeNode().setExpanded(true);
}
}
}
Links
Comparator de cadenas con acentos
A veces es necesario ordenar una lista alfabéticamente, sin tener en cuenta los acentos, por ejemplo en el caso de nombres de personas, por ejemplo MiLista: Angel, Ángel, Pablo, ..etc, en caso de usar un comparador como el siguiente;
Comparator comp = (SelectItem a, SelectItem b) ->
{
if ((a.getValue()!=null) && (b.getValue()!=null))
return a.getLabel().compareTo(b.getLabel());
else
return 1;
};
Collections.sort(MiLista, comp);
Go...
la ordenación seria:
En el caso de que quisieramos una ordenación, sin tener en cuenta los acentos, usariamos el siguiente codigo:
Comparator comp = (SelectItem a, SelectItem b) ->
{
if ((a.getValue()!=null) && (b.getValue()!=null))
//return a.getLabel().compareTo(b.getLabel());
return Collator.getInstance().compare(a.getLabel(), b.getLabel());
else
return 1;
};
Collections.sort(MiLista, comp);
Go...
Composite Components in JSF 2.0
Desde JSF 2.0, es muy fácil crear componentes reutilizables, conocidos como composite components…Leer más
Reset page number in primefaces Controls
...
<h:form>
...
<p:dataTable id="xxxyy" var="..." ... widgetVar="myWidgetData" .../>
...
<p:commandButton value="..." icon="..." style="..."
actionListener="#{cc.attrs.metodoXXX}"
update="#{cc.id}:idFormxxx:yyy" >
<p:ajax onstart ="PF('myWidgetData').getPaginator().setPage(0)"/>
</p:commandButton>
</h:form>
...