RichFaces skins in Laufzeit ändern

airliner

Erfahrenes Mitglied
Juten Tach!

Ich habe mein RichFaces Projekt nun so habwegs zum Laufen gebracht (vielleicht erinnert sich der eine oder andere noch daran). Musste einige rich-tags auf jsf- bzw html-tags abändern, dann ging es (darauf komm aber erstmal einer...).

Jedenfalls will ich ich jetzt mittels h:selectOneMenu das Look'n'Feel innerhalb der Laufzeit ändern, sprich, der Benutzer kann das Skin (welche RichFaces ja von Haus aus mitliefert) wechseln, wie ihm gerade nach is. Nebenbei möchte ich noch die SChriftgröße ändern, sollte doch mittels CSS machbar sein oder?

Jedenfalls hapert's bei beiden an der Tatsache, dass ich vorher nie etwas mit Beans zu tun hatte und mir sonst nichts einfiehle, wie man das sonst bewerkstelligen kann.
Den Blog von Max Katz auf jsfone.com habe ich mir bereits durchgelesen, aber brachte nichts. Blöderweise ist nun auch der LogOut Button ohne Funktion, solange das mit der SkinBean nicht hinhaut.


Snippet aus reiter.xhtml, wo die selectOneMenus drin sind:
Code:
<h:column>
        			<h:selectOneMenu id="select" value="#{skinBean.skin}" onchange="submit()">
		<f:selectItem itemLabel="plain" itemValue="plain" />
		<f:selectItem itemLabel="emeraldTown" itemValue="emeraldTown" />
		<f:selectItem itemLabel="blueSky" itemValue="blueSky" />
		<f:selectItem itemLabel="wine" itemValue="wine" />
		<f:selectItem itemLabel="japanCherry" itemValue="japanCherry" />
		<f:selectItem itemLabel="ruby" itemValue="ruby" />
		<f:selectItem itemLabel="classic" itemValue="classic" />
		<f:selectItem itemLabel="laguna" itemValue="laguna" />
		<f:selectItem itemLabel="deepMarine" itemValue="deepMarine" />
		
		<rich:toolTip followMouse="true" direction="top-right" showDelay="500" styleClass="tooltip">
            <span  style="white-space:nowrap">
                Choose your skin.
            </span>
        </rich:toolTip>
	   </h:selectOneMenu>

                    	
        			</h:column>

und die SkinBean:

Code:
package beans;



// TODO: Auto-generated Javadoc
/**
 * The Class SkinBean.
 */
public class SkinBean {

	private String skin;
	private String emeraldTown;
	private String plain;
	private String classic;
	private String japanCherry;
	private String laguna;
	private String deepMarine;
	private String ruby;
	private String wine;
	private String blueSky;
	
	 
	   /**
	 * @return the emeraldTown
	 */
	public String getEmeraldTown() {
		System.out.println("emeraldTown loaded");
		return emeraldTown;
	}
	

	/**
	 * @param emeraldTown the emeraldTown to set
	 */
	public void setEmeraldTown(String emeraldTown) {
		System.out.println("emeraldTown set");
		this.emeraldTown = emeraldTown;
	}

	/**
	 * @return the plain
	 */
	public String getPlain() {
		System.out.println("plain loaded");
		return plain;
	}

	/**
	 * @param plain the plain to set
	 */
	public void setPlain(String plain) {
		System.out.println("plain set");
		this.plain = plain;
	}

	/**
	 * @return the classic
	 */
	public String getClassic() {
		System.out.println("classic loaded");
		return classic;
	}

	/**
	 * @param classic the classic to set
	 */
	public void setClassic(String classic) {
		System.out.println("classic set");
		this.classic = classic;
	}

	/**
	 * @return the japanCherry
	 */
	public String getJapanCherry() {
		System.out.println("japanCherry loaded");
		return japanCherry;
	}

	/**
	 * @param japanCherry the japanCherry to set
	 */
	public void setJapanCherry(String japanCherry) {
		System.out.println("japanCherry set");
		this.japanCherry = japanCherry;
	}

	/**
	 * @return the laguna
	 */
	public String getLaguna() {
		System.out.println("laguna loaded");
		return laguna;
	}

	/**
	 * @param laguna the laguna to set
	 */
	public void setLaguna(String laguna) {
		System.out.println("laguna set");
		this.laguna = laguna;
	}

	/**
	 * @return the deepMarine
	 */
	public String getDeepMarine() {
		System.out.println("deepMarine loaded");
		return deepMarine;
	}

	/**
	 * @param deepMarine the deepMarine to set
	 */
	public void setDeepMarine(String deepMarine) {
		System.out.println("deepmarine set");
		this.deepMarine = deepMarine;
	}

	/**
	 * @return the ruby
	 */
	public String getRuby() {
		System.out.println("ruby loaded");
		return ruby;
	}

	/**
	 * @param ruby the ruby to set
	 */
	public void setRuby(String ruby) 
		{System.out.println("ruby set");
		this.ruby = ruby;
	}

	/**
	 * @return the wine
	 */
	public String getWine() {
		System.out.println("wine loaded");
		return wine;
	}

	/**
	 * @param wine the wine to set
	 */
	public void setWine(String wine) {
		System.out.println("wine set");
		this.wine = wine;
	}

	/**
	 * @return the blueSky
	 */
	public String getBlueSky() {
		System.out.println("blueSky loaded");
		return blueSky;
	}

	/**
	 * @param blueSky the blueSky to set
	 */
	public void setBlueSky(String blueSky) {
		System.out.println("blueSky set");
		this.blueSky = blueSky;
	}

	public String getSkin() {
		System.out.println("skin loaded");
		return skin;
	   }
	   
   	/**
   	 * Sets the skin.
   	 * 
   	 * @param skin the new skin
   	 */
   	public void setSkin(String skin) {
   		System.out.println("skin set");
		this.skin = skin;
	   }	
	
}

Über ein paar Zeilen Beispielcode wäre ich sehr dankbar.
Denke, das mit der CSS sollte ich allein hinbekommen, sofern ich weiß, wie ich darauf zugreifen kann.

Vielen dank schonmal für jede hilfreiche Antwort!
 
Zurück