DisclosureEvent event tiene un metodo para saber si se ha cerrado o abierto el componente CoreShowDetailItem, así recibiremos muchos eventos aunque la accion haya sido solamente expandir uno solo de ellos.
sábado, 26 de mayo de 2007
miércoles, 23 de mayo de 2007
af:validateDateTimeRange problem
El error del del validador de date TimeRange se debe a que debemos resetear el Time del Calendar correspondiente, más o menos así:
public void resetTime(Calendar f ){
f.set(Calendar.HOUR_OF_DAY, 0);
f.set(Calendar.MINUTE, 0);
f.set(Calendar.SECOND, 0);
f.set(Calendar.MILLISECOND, 0);
}
<af:validateDateTimeRange maximum="#{convCursosListado.seleccionClaseActual.finFiltro.time}"
minimum="#{convCursosListado.seleccionClaseActual.inicioLimite.time}"/>
Publicado por
Juan Antonio Ruz
en
11:53
0
comentarios
lunes, 21 de mayo de 2007
Seam contexto evento en componente produce errores en adf:Switcher
Falla el af:switcher.setFacetName(String name) cuando el componente que lo activa pierde el render.
Publicado por
Juan Antonio Ruz
en
7:10
0
comentarios
Categorías: ADF, Seam, Soluciones
jueves, 26 de abril de 2007
JSF ADF RENDER DISPLAY PROBLEM
Si se utiliza más de un formulario en la página el explorer casca en el visualizado
Publicado por
Juan Antonio Ruz
en
9:34
0
comentarios
Categorías: ADF, JSF, Soluciones
Componentes JSF/ADF y renderizado
<af:panelBorder id="panelBorder"></af:panelBorder>
<af:panelBox id="panelBox"></af:panelBox>
el panelBorder genera un div
y el panelBox un table
Publicado por
Juan Antonio Ruz
en
9:00
0
comentarios
miércoles, 25 de abril de 2007
Expression Language EL con conditional
<af:goLink styleClass="#{(appADFServicio.actualPage=='/home.jsp')?'menuPrincipalLinkON':'menuPrincipalLink'}" text="#{messages.home}" destination="home.jsf"/>
Funciones en EL:
incluir la etiqueta: xmlns:fn="http://java.sun.com/jsp/jstl/functions"
y acceder a través del prefijo fn, ejemplo fn:substring
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
Publicado por
Juan Antonio Ruz
en
4:58
0
comentarios
lunes, 16 de abril de 2007
af:chooseDate
Para conseguir un calendario como éste ( ADF ) con el componente af:chooseDate habría que insertar el siguiente código en la página jsp. Siendo el maxValue y el minValue los limites del calendario, es decir los días en los que se puede hacer click
<af:chooseDate binding="#{Bean.chooseDate1}" id="chooseDate1"
maxValue="#{Bean.maximo}"
minValue="#{Bean.minimo}"/>
y quedando la clase java de la siguiente manera:
import oracle.adf.view.faces.component.core.input.CoreChooseDate;
public class Bean {
private CoreChooseDate chooseDate1;
public CoreChooseDate getChooseDate1() {
return chooseDate1;
}
public void setChooseDate1(CoreChooseDate chooseDate1) {
this.chooseDate1 = chooseDate1;
}
public Date getMaximo(){
Calendar hoy=Calendar.getInstance();
hoy.roll(Calendar.DAY_OF_YEAR,10);
return hoy.getTime();
}
public Date getMinimo(){
Calendar hoy=Calendar.getInstance();
hoy.roll(Calendar.DAY_OF_YEAR,-10);
return hoy.getTime();
}
}
Publicado por
Juan Antonio Ruz
en
1:45
0
comentarios
Categorías: ADF
jueves, 12 de abril de 2007
miércoles, 11 de abril de 2007
Could not find selected item matching value af:selectOneChoice f:selectItems
Este problema se da cuando en un selecItems no encuentra en la lista de posibles valores el valor seleccionado (selected) aunque veamos que de hecho si existe.
ADF/JSF al intentar seleccionar el valor de la lista de posibles valores lo hace a través del metodo equals() que tenemos que sobreescribir para que compare las claves de negocio y no compare por serialización del objeto (en este caso nunca serian iguales dos instancias con iguales valores de una clase).
Y el problema se produce cuando el acceso a los valores lo hacemos sin el correspondiente metodo interceptado por hibernate (PORQUE SI UTILIZAMOS HIBERNATE ESTAMOS UTILIZANDO POA [programación orientada a aspectos y por lo tanto interceptores] )
por un problema en la implementacion del equals e Hibernate.
La razón de este error es la siguiente:
Al acceder a las propiedades de los objetos sin el metodo adecuado (interceptado por hibernate) es decir los getter, el valor que devuelve es el que tiene por defecto la clase o el que tenga la instancia del objeto en un momento dado del programa.
Publicado por
Juan Antonio Ruz
en
2:38
0
comentarios
Categorías: ADF, AOP, Errores, hibernate, Soluciones
viernes, 30 de marzo de 2007
Solucion: columnas dinamicas en un af:iterator
La solución, aparente chapuza pero es que con c:if no funcionaba, consiste en utilizar el iterator varias veces (esto serían las celdas de la tabla ) y renderizar la fila en función de #{vs.index mod 3==[numero de fila del 0 al 2]}
<h:panelGrid columns="4">
<af:outputText value="#{messages.clases}"/>
<af:iterator value="#{curso.clasesList}" var="clase" first="0" varStatus="vs">
<afh:rowLayout rendered="#{vs.index mod 3==0}">
<af:outputText value="#{clase.nombre}" escape="false"/>
</afh:rowLayout>
</af:iterator>
<af:iterator value="#{curso.clasesList}" var="clase" first="1" varStatus="vs">
<afh:rowLayout rendered="#{vs.index mod 3==1}">
<af:outputText value="#{clase.nombre}" escape="false"/>
</afh:rowLayout>
</af:iterator>
<af:iterator value="#{curso.clasesList}" var="clase" first="2" varStatus="vs">
<afh:rowLayout rendered="#{vs.index mod 3==2}">
<af:outputText value="#{clase.nombre}" escape="false"/>
</afh:rowLayout>
</af:iterator>
</h:panelGrid >
Publicado por
Juan Antonio Ruz
en
6:06
0
comentarios
Categorías: ADF, Soluciones