Question

J'espère utiliser un skin richfaces personnalisé pour gérer l'essentiel de mon travail de présentation. Malheureusement, richfaces crée des bordures autour de chaque cellule d'un composant de calendrier et de chaque panneau. Je voudrais les désactiver pour que les numéros de jour se placent dans une grille ouverte sans frontières. Il n'y a pas de moyen évident de le faire en utilisant des skins ou des attributs du contrôle de calendrier.

Je pourrais utiliser un CSS personnalisé, mais je préférerais travailler avec le framework pour supprimer complètement les propriétés liées aux bordures des feuilles de style créées par richfaces plutôt que de travailler contre le framework et de tout redéfinir à l'aide d'un CSS déplaisant. .

Comment empêcher Richfaces d'ajouter des bordures aux panneaux et aux calendriers?

Ce mec a un problème similaire

Était-ce utile?

La solution

A partir de la version 3.3.0.GA, il n’est pas possible de demander à RichFaces d’arrêter de rendre le rendu CSS pour les bordures et les arrière-plans. Il est nécessaire de remplacer chacune des propriétés des feuilles de style intégrées (celles contenues dans org.richfaces.renderkit.html.css qui fait partie de richfaces-ui-3.3.0.GA.jar).

Plug and skin vous donne le pouvoir nécessaire pour le faire, comme le CSS personnalisé ajouté à l'aide des techniques habituelles, bien que plug and skin soit sans doute mieux car vous pouvez référencer des définitions de couleurs abstraites pour compenser les arrière-plans manquants, comme ceci:

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

Les propriétés CSS suivantes sont utiles pour neutraliser rapidement les propriétés liées à la bordure et à l'arrière-plan.

border: none;
background: transparent;

Pour commencer à utiliser Plug and Skin, vous pouvez utiliser la séquence de commandes Maven2 suivante:

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

Cela s’effectue mieux en ligne de commande, car malheureusement, les plugins Eclipse ne peuvent pas localiser les archétypes dans le référentiel jboss (d’autres IDE pourraient mieux le gérer). Vous devrez modifier les propriétés artifactId, groupId, package, version et nom en fonction de votre projet. Choisissez un artefact et un nom de package qui reflète l'étendue de l'artefact pour la gestion de définitions de peau multiples.

Il serait possible - malgré beaucoup de travail - d’ajouter la prise en charge des propriétés d’apparence au format général xxxBackgroundEnabled et xxxBorderEnabled pour désactiver le rendu de ces CSS en arrière-plan et au cas par cas.

Vous auriez besoin de travailler avec l'équipe de richfaces pour corriger les fichiers xcss dans org.richfaces.renderkit.html.css. Vous auriez également besoin d’une fonctionnalité de sortie conditionnelle dans l’une des bibliothèques de balises XCSS JSF (identifiées par http: /jsf.exadel.com/template/util ou http: /jsf.exadel.com/template dans les fichiers XCSS). que je prévois utiliser pour envelopper des groupes de propriétés CSS dans les fichiers XCSS.

Si vous apportiez une telle modification à richfaces, vous seriez en mesure de désactiver le rendu du code CSS controversé à partir du fichier de propriétés de n’importe quel skin.

Autres conseils

Il existe un thème appelé plain auquel aucun style n’est associé.

Voici un extrait de la documentation . :

  

Skin 'plain' a été ajouté à partir de la version 3.0.2. Il n'y en a pas   paramètres. Il est nécessaire d’intégrer des composants RichFaces dans   projet existant ayant ses propres styles.

Vous pouvez l'activer en ajoutant

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

vers le web.xml .

Vous pouvez également empêcher RichFaces de charger des styles avec

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

défini dans le web.xml .

Mais méfiez-vous, car elle ne fonctionnera pas dans JBoss Portlet Bridge 1.0.0 . .

RichFaces a un système de skin intégré appelé Skinnablity. Skinnability est une extension de haut niveau de CSS standard. Vous pouvez créer votre propre fichier de skin à utiliser dans votre application ( documentation jboss ).

Dans le fichier jar richfaces-impl, le dossier / META-INF / skins contient tous les fichiers d’apparence (.skin.properties). Copier un et renommer le nom, modifier ce que vous voulez. Vous devrez reconstruire le pot.

OU

Vous pouvez utiliser plug-n-skin de richfaces, ce que je n’ai jamais essayé auparavant, mais il semblerait que cela fonctionnerait également pour ce que vous essayez de faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top