Pregunta

Espero usar un skin de Richfaces personalizado para manejar la mayor parte de mi trabajo de presentación. Desafortunadamente, richfaces representa los bordes alrededor de cada celda en un componente del calendario y alrededor de cada panel. Me gustaría desactivarlos para que los números de día se sitúen en una cuadrícula abierta sin bordes. No hay una forma obvia de hacerlo usando máscaras o atributos del control de calendario.

Podría usar CSS personalizado, pero preferiría trabajar con el marco para eliminar por completo las propiedades relacionadas con el borde de las hojas de estilo creadas por richfaces en lugar de trabajar contra el marco y anular todo lo que usa el feo CSS .

Entonces, ¿cómo detengo las richfaces que agregan bordes a los paneles y calendarios?


Este tipo tiene un problema similar

¿Fue útil?

Solución

A partir de la versión 3.3.0.GA, no es posible pedir a Richfaces que detenga la representación de CSS para bordes y fondos. Es necesario anular cada una de las propiedades de las hojas de estilo integradas (las que se encuentran en org.richfaces.renderkit.html.css que forma parte de richfaces-ui-3.3.0.GA.jar).

Plug and skin le brinda el poder necesario para hacer eso, como lo haría el CSS personalizado que se usa con las técnicas habituales, aunque plug and skin es posiblemente mejor, ya que puede hacer referencia a definiciones de colores abstractos para compensar los fondos faltantes, como este:

<u:style name="color" skin="abstractColorName" />

Las siguientes propiedades de CSS son útiles para neutralizar rápidamente las propiedades relacionadas con el borde y el fondo.

border: none;
background: transparent;

Para comenzar con el plug and skin puede usar la siguiente secuencia de comandos de Maven2:

mvn archetype:generate -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-plug-n-skin -DarchetypeVersion=3.3.0.GA -DartifactId=fil-skins -Dpackage=com.feelitlive.richfaces -DgroupId=com.feelitlive.server -Dversion=0.0.1-SNAPSHOT -DarchetypeRepository=http://repository.jboss.com/maven2/
cd fil-skins
mvn cdk:add-skin -Dname=fil -Dpackage=com.feelitlive.richfaces.skins

Esto se hace mejor desde la línea de comandos, ya que, lamentablemente, los complementos de Eclipse no pueden localizar los arquetipos en el repositorio de jboss (otros IDEs pueden manejarlo mejor). Deberá cambiar las propiedades de artifactId, groupId, package, version y name para que se adapten a su proyecto. Elija un artefacto y un nombre de paquete que reflejen el alcance del artefacto para contener múltiples definiciones de máscara.


Sería posible, aunque mucho trabajo, agregar soporte para las propiedades del aspecto en el formato general xxxBackgroundEnabled y xxxBorderEnabled para desactivar la representación de esos CSS de borde y fondo en una base de caso por caso.

Necesitaría trabajar con el equipo de richfaces para parchear los archivos xcss en org.richfaces.renderkit.html.css. También necesitaría algún tipo de funcionalidad de salida condicional en una de las bibliotecas de etiquetas JSF de XCSS (identificada por http: /jsf.exadel.com/template/util o http: /jsf.exadel.com/template en los archivos XCSS) que anticiparía usar para envolver grupos de propiedades CSS en los archivos XCSS.

Si hicieras una modificación de este tipo en richfaces, podrías deshabilitar la representación del controvertido CSS del archivo de propiedades de cualquier skin.

Otros consejos

Hay un skin llamado plain que casi no tiene estilos adjuntos.

Aquí hay un extracto de la documentación :

  

Skin 'plain' fue agregado desde la versión 3.0.2. No tiene ninguna   parámetros Es necesario para incrustar componentes de RichFaces en   proyectos existentes que tienen sus propios estilos.

Puedes activarlo agregando

<context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>plain</param-value>
</context-param>

al web.xml .


También puede impedir que RichFaces cargue cualquier estilo con

<context-param>
     <param-name>org.richfaces.LoadStyleStrategy</param-name>
     <param-value>None</param-value>
</context-param>

establecido en web.xml .

Pero cuidado, ya que no funcionará en JBoss Portlet Bridge 1.0.0 .

RichFaces tiene un sistema de máscara incorporado llamado Skinnablity. Skinnability es una extensión de alto nivel de CSS estándar. Puede crear su propio archivo de máscara para usar en su aplicación ( documentación de jboss ).

En el jar de richfaces-impl, la carpeta / META-INF / skins contiene todos los archivos de máscara (.skin.properties). Copia uno y renómbrelo, modifica lo que quieras. Tendrás que reconstruir el tarro.

O

Puede usar plug-n-skin de richfaces, que nunca he probado antes, pero parece que también funcionaría para lo que está intentando hacer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top