Domanda

Spero di utilizzare una skin richfaces personalizzata per gestire la maggior parte del mio lavoro di presentazione. Sfortunatamente richfaces rende i bordi attorno a ogni cella in un componente del calendario e attorno a ciascun pannello. Vorrei spegnerli in modo che quel giorno numeri il sito in una griglia aperta senza bordi. Non esiste un modo ovvio per farlo utilizzando skin o attributi del controllo calendario.

Potrei usare CSS personalizzati ma Preferirei lavorare con il framework per rimuovere completamente le proprietà relative ai bordi dai fogli di stile creati da richfaces piuttosto che lavorare contro il framework e sovrascrivere tutto usando CSS brutti .

Quindi, come posso impedire a richfaces di aggiungere bordi a pannelli e calendari?


Questo ragazzo ha un problema simile

È stato utile?

Soluzione

A partire dalla versione 3.3.0.GA non è possibile chiedere a richfaces di interrompere il rendering CSS per bordi e sfondi. È necessario sovrascrivere ciascuna delle proprietà dai fogli di stile incorporati (quelli contenuti in org.richfaces.renderkit.html.css che fa parte di richfaces-ui-3.3.0.GA.jar).

Plug and skin ti dà il potere necessario per farlo, così come CSS personalizzato aggiunto usando le solite tecniche, sebbene plug and skin sia probabilmente migliore in quanto puoi fare riferimento a definizioni astratte di colore per compensare gli sfondi mancanti, come questo:

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

Le seguenti proprietà CSS sono utili per neutralizzare rapidamente le proprietà relative al bordo e allo sfondo.

border: none;
background: transparent;

Per iniziare con plug and skin puoi usare la seguente sequenza di comandi 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

È meglio farlo dalla riga di comando poiché sfortunatamente i plugin Eclipse non riescono a localizzare gli archetipi nel repository jboss (altri IDE potrebbero gestirlo meglio). Dovrai modificare artefattoId, gruppoId, pacchetto, versione e proprietà del nome in base al tuo progetto. Scegli un artefatto e il nome del pacchetto che rifletta l'ambito dell'artefatto per contenere definizioni di skin multiple.


Sarebbe possibile - anche se molto lavoro - aggiungere il supporto per le proprietà della skin nel formato generale xxxBackgroundEnabled e xxxBorderEnabled per disattivare il rendering di quei bordi e CSS di sfondo caso per caso.

Dovresti lavorare con il team richfaces per patchare i file xcss in org.richfaces.renderkit.html.css. Avresti anche bisogno di una sorta di funzionalità di output condizionale in una delle librerie di tag JSF XCSS (identificata da http: /jsf.exadel.com/template/util o http: /jsf.exadel.com/template nei file XCSS) che prevedo di usare per avvolgere gruppi di proprietà CSS nei file XCSS.

Se hai apportato una tale modifica a richfaces, allora saresti in grado di disabilitare il rendering del controverso CSS dal file delle proprietà di qualsiasi skin.

Altri suggerimenti

C'è una skin chiamata plain che non ha quasi alcun stile attaccato ad essa.

Ecco un estratto dalla documentazione :

  

Skin 'plain' è stato aggiunto dalla versione 3.0.2. Non ne ha   parametri. È necessario per incorporare i componenti RichFaces in   progetto esistente che ha i suoi stili.

Puoi attivarlo aggiungendo

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

nel web.xml .


Puoi anche impedire a RichFaces di caricare qualsiasi stile con

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

impostato nel web.xml .

Ma attenzione, poiché non funzionerà in JBoss Portlet Bridge 1.0.0 .

RichFaces ha un sistema skin integrato chiamato Skinnablity. La skinnability è un'estensione di alto livello dei CSS standard. Puoi creare il tuo file skin da utilizzare nella tua applicazione ( documentazione jboss ).

Nel vaso richfaces-impl, la cartella / META-INF / skins contiene tutti i file skin (.skin.properties). Copiane uno e rinominalo, modifica ciò che desideri. Dovrai ricostruire il barattolo.

o

Puoi usare plug-n-skin funzionalità di richfaces, che non ho mai provato prima, ma sembra che funzionerebbe anche per quello che stai cercando di fare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top