Author: ilya_shaikovsky
Date: 2010-05-24 07:23:59 -0400 (Mon, 24 May 2010)
New Revision: 17203
Added:
root/examples/richfaces-showcase/trunk/src/main/webapp/templates/includes/skin-chooser.xhtml
Modified:
root/examples/richfaces-showcase/trunk/src/main/java/org/richfaces/demo/common/SkinBean.java
root/examples/richfaces-showcase/trunk/src/main/webapp/templates/main.xhtml
Log:
https://jira.jboss.org/browse/RF-8374
bookmarkable skin-chooser added and working.
Modified:
root/examples/richfaces-showcase/trunk/src/main/java/org/richfaces/demo/common/SkinBean.java
===================================================================
---
root/examples/richfaces-showcase/trunk/src/main/java/org/richfaces/demo/common/SkinBean.java 2010-05-24
11:14:21 UTC (rev 17202)
+++
root/examples/richfaces-showcase/trunk/src/main/java/org/richfaces/demo/common/SkinBean.java 2010-05-24
11:23:59 UTC (rev 17203)
@@ -4,33 +4,67 @@
package org.richfaces.demo.common;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
+import javax.faces.context.FacesContext;
-
/**
* @author ishaikovsky
*/
-@ManagedBean(name="skinBean")
+@ManagedBean(name = "skinBean")
@SessionScoped
public class SkinBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = -2399884208294434812L;
-
- @ManagedProperty(value="blueSky")
+ private static final String SKIN_VIEW_PARAMETER = "skin";
+ @ManagedProperty(value = "blueSky")
private String skin;
+ private List<String> skins;
+ @PostConstruct
+ public void initialize() {
+ skins = new ArrayList<String>();
+ skins.add("blueSky");
+ skins.add("classic");
+ skins.add("deepMarine");
+ skins.add("emeraldTown");
+ skins.add("japanCherry");
+ skins.add("ruby");
+ skins.add("wine");
+ }
+
+ // TODO: move to utility class. used in navigator also.
+ private String getViewParameter(String name) {
+ FacesContext fc = FacesContext.getCurrentInstance();
+ String param = (String)
fc.getExternalContext().getRequestParameterMap().get(name);
+ if (param != null && param.trim().length() > 0) {
+ return param;
+ } else {
+ return null;
+ }
+ }
+
public String getSkin() {
+ String currentSkin = getViewParameter(SKIN_VIEW_PARAMETER);
+ if (currentSkin != null){
+ skin = currentSkin;
+ }
return skin;
}
-
public void setSkin(String skin) {
this.skin = skin;
}
+ public List<String> getSkins() {
+ return skins;
+ }
+
}
Added:
root/examples/richfaces-showcase/trunk/src/main/webapp/templates/includes/skin-chooser.xhtml
===================================================================
---
root/examples/richfaces-showcase/trunk/src/main/webapp/templates/includes/skin-chooser.xhtml
(rev 0)
+++
root/examples/richfaces-showcase/trunk/src/main/webapp/templates/includes/skin-chooser.xhtml 2010-05-24
11:23:59 UTC (rev 17203)
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:a4j="http://richfaces.org/a4j"
+
xmlns:rich="http://java.sun.com/jsf/composite/rich">
+
+ <ui:composition>
+ <rich:panel>
+ <a4j:repeat var="skin" value="#{skinBean.skins}">
+ <h:link value="#{skin}" includeViewParams="true">
+ <f:param name="skin" value="#{skin}"/>
+ </h:link>
+ <h:outputText value = " | "/>
+ </a4j:repeat>
+ </rich:panel>
+ </ui:composition>
+
+</html>
\ No newline at end of file
Modified: root/examples/richfaces-showcase/trunk/src/main/webapp/templates/main.xhtml
===================================================================
--- root/examples/richfaces-showcase/trunk/src/main/webapp/templates/main.xhtml 2010-05-24
11:14:21 UTC (rev 17202)
+++ root/examples/richfaces-showcase/trunk/src/main/webapp/templates/main.xhtml 2010-05-24
11:23:59 UTC (rev 17203)
@@ -40,7 +40,7 @@
<legend>#{demoNavigator.currentComponent}</legend>
</fieldset>
</ui:remove>
-
+ <ui:include src="/templates/includes/skin-chooser.xhtml"/>
<ui:insert name="body">
Body content missed
</ui:insert></td>