[richfaces-svn-commits] JBoss Rich Faces SVN: r13628 - in trunk/test-applications/seamApp/web/src/main: java/org/richfaces/helloworld/domain and 14 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Apr 17 07:44:55 EDT 2009


Author: adubovsky
Date: 2009-04-17 07:44:55 -0400 (Fri, 17 Apr 2009)
New Revision: 13628

Added:
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/PVisability.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTree.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeDND.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeNA.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeRNA.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/treeSwing/
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/treeSwing/TreeSwing.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/Car.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/CarProvider.java
   trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/
   trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/
   trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/tTree/
   trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/util/
   trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/util/data/
   trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/util/data/cars.xml
Removed:
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tree/
   trunk/test-applications/seamApp/web/src/main/java/tTree/
   trunk/test-applications/seamApp/web/src/main/resources/tTree/
Modified:
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/editor/Editor.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/skinning/Skinning.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Dir.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Package.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Project.java
   trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/skins/Skins.java
   trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/faces-config.xml
   trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/web.xml
Log:
Make skinning workable

Modified: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/editor/Editor.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/editor/Editor.java	2009-04-17 11:20:24 UTC (rev 13627)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/editor/Editor.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -43,7 +43,7 @@
 		// value = "It's easy to make *emphasis*, |monospace|, ~deleted text~,
 		// super^scripts^ or _underlines_.";
 		// value = "This is a |<tag attribute=\"value\" />| example.";
-		value = "Collaboration-oriented websites require a human-friendly markup language for easy entry of formatted text in forum posts, wiki pages, blogs, comments, etc. Seam provides the &lt;s:formattedText/&gt; control for display of formatted text that conforms to the Seam Text language. Seam Text is implemented using an ANTLR-based parser. You don't need to know anything about ANTLR to use it, however.";
+		value = "Collaboration-oriented websites require a human-friendly markup language for easy entry of formatted text in forum posts, wiki pages, blogs, comments, etc. Seam provides the s:formattedText control for display of formatted text that conforms to the Seam Text language. Seam Text is implemented using an ANTLR-based parser. You don't need to know anything about ANTLR to use it, however.";
 		width = "400";
 		height = "200";
 		theme = "simple";

Modified: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/skinning/Skinning.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/skinning/Skinning.java	2009-04-17 11:20:24 UTC (rev 13627)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/skinning/Skinning.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -3,9 +3,12 @@
 import java.util.ArrayList;
 import javax.faces.model.SelectItem;
 
+import org.jboss.seam.ScopeType;
 import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
 
 @Name("skinning")
+ at Scope(ScopeType.SESSION)
 public class Skinning {
 	private ArrayList<SelectItem> list = new ArrayList<SelectItem>();
 	private ArrayList<SelectItem> enableStyle = new ArrayList<SelectItem>();

Copied: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/PVisability.java (from rev 13519, trunk/test-applications/seamApp/web/src/main/java/tTree/PVisability.java)
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/PVisability.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/PVisability.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,54 @@
+package org.richfaces.helloworld.domain.tTree;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+ at Name("pVisability")
+ at Scope(ScopeType.SESSION)
+public class PVisability {
+	private boolean tTreeSubviewID;
+	private boolean tTreePropertySubviewID;
+	private boolean tTreeStraightforwardSubviewID;
+	private boolean tTreeDefaultSubviewID;
+	
+	public PVisability() {
+		tTreeSubviewID = true;
+		tTreePropertySubviewID = false;
+		tTreeStraightforwardSubviewID = false;
+		tTreeDefaultSubviewID = false;
+	}
+	
+	public boolean istTreeDefaultSubviewID() {
+		return tTreeDefaultSubviewID;
+	}
+
+	public void settTreeDefaultSubviewID(boolean treeDefaultSubviewID) {
+		tTreeDefaultSubviewID = treeDefaultSubviewID;
+	}
+	
+	public boolean istTreeSubviewID() {
+		return tTreeSubviewID;
+	}
+	
+	public void settTreeSubviewID(boolean treeSubviewID) {
+		tTreeSubviewID = treeSubviewID;
+	}
+	
+	public boolean istTreePropertySubviewID() {
+		return tTreePropertySubviewID;
+	}
+	
+	public void settTreePropertySubviewID(boolean treePropertySubviewID) {
+		tTreePropertySubviewID = treePropertySubviewID;
+	}
+	
+	public boolean istTreeStraightforwardSubviewID() {
+		return tTreeStraightforwardSubviewID;
+	}
+	
+	public void settTreeStraightforwardSubviewID(
+			boolean treeStraightforwardSubviewID) {
+		tTreeStraightforwardSubviewID = treeStraightforwardSubviewID;
+	}
+}

Copied: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTree.java (from rev 13519, trunk/test-applications/seamApp/web/src/main/java/tTree/TTree.java)
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTree.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTree.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,202 @@
+package org.richfaces.helloworld.domain.tTree;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.richfaces.component.UITree;
+import org.richfaces.component.xml.XmlTreeDataBuilder;
+import org.richfaces.event.NodeExpandedEvent;
+import org.richfaces.event.NodeSelectedEvent;
+import org.richfaces.model.TreeNode;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import org.richfaces.helloworld.domain.util.componentInfo.ComponentInfo;;
+
+ at Name("tTree")
+ at Scope(ScopeType.SESSION)
+public class TTree {
+	private String switchType = "server";
+	private TreeNode data;
+	private UITree tree;
+	private boolean immediate = false;
+	private boolean ajaxSubmitSelection = false;
+	private String anOpened = "null";
+	private String anSelected = "null";
+	private boolean rendered = true;
+	private boolean showConnectingLines = false;
+	private boolean toggleOnClick = false;
+	private boolean useCustomIcons = false;
+
+	private String reRenderCheck = "... waiting ...";
+
+	public TTree() {
+		try {
+			data = XmlTreeDataBuilder.build(new InputSource(getClass()
+					.getResourceAsStream("test.xml")));
+
+			TreeNode pomData = XmlTreeDataBuilder.build(new InputSource(
+					getClass().getResourceAsStream("pom_sample.xml")));
+
+			Iterator children = pomData.getChildren();
+			while (children.hasNext()) {
+				Map.Entry entry = (Map.Entry) children.next();
+				data.addChild(new Long(1), (TreeNode) entry.getValue());
+			}
+
+		} catch (SAXException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void addCustomIcons() {
+		if (useCustomIcons) {
+			tree.setIcon("/pics/1.gif");
+			tree.setIconCollapsed("/pics/3.gif");
+			tree.setIconExpanded("/pics/4.gif");
+			tree.setIconLeaf("/pics/2.gif");
+		} else {
+			tree.setIcon(null);
+			tree.setIconCollapsed(null);
+			tree.setIconExpanded(null);
+			tree.setIconLeaf(null);
+		}
+	}
+
+	public void add() {
+		ComponentInfo info = ComponentInfo.getInstance();
+		info.addField(tree);
+	}
+
+	public void resetReRenderCheck() {
+		reRenderCheck = "... waiting ...";
+	}
+
+	public Boolean adviseNodeOpened(UITree t) {
+		Boolean tAnOpened = null;
+		if (anOpened.equals("FALSE"))
+			tAnOpened = Boolean.FALSE;
+		else if (anOpened.equals("TRUE"))
+			tAnOpened = Boolean.TRUE;
+
+		return tAnOpened;
+	}
+
+	public Boolean adviseNodeSelected(UITree t) {
+		Boolean tAnSelected = null;
+		if (anSelected.equals("FALSE"))
+			tAnSelected = Boolean.FALSE;
+		else if (anSelected.equals("TRUE"))
+			tAnSelected = Boolean.TRUE;
+
+		return tAnSelected;
+	}
+
+	public void changeExpandListener(NodeExpandedEvent e) {
+		reRenderCheck = "!!! I am WORKing !!!";
+		System.out.println("!!! changeExpandListener !!!");
+	}
+
+	public void nodeSelectListener(NodeSelectedEvent e) {
+		reRenderCheck = "!!! I am WORKing !!!";
+		System.out.println("!!! nodeSelectListener !!!");
+	}
+
+	public String getReRenderCheck() {
+		return reRenderCheck;
+	}
+
+	public boolean isImmediate() {
+		return immediate;
+	}
+
+	public void setImmediate(boolean immediate) {
+		this.immediate = immediate;
+	}
+
+	public boolean isAjaxSubmitSelection() {
+		return ajaxSubmitSelection;
+	}
+
+	public void setAjaxSubmitSelection(boolean ajaxSubmitSelection) {
+		this.ajaxSubmitSelection = ajaxSubmitSelection;
+	}
+
+	public String getSwitchType() {
+		return switchType;
+	}
+
+	public void setSwitchType(String switchType) {
+		this.switchType = switchType;
+	}
+
+	public TreeNode getData() {
+		return data;
+	}
+
+	public void setData(TreeNode data) {
+		this.data = data;
+	}
+
+	public UITree getTree() {
+		return tree;
+	}
+
+	public void setTree(UITree tree) {
+		this.tree = tree;
+	}
+
+	public String getAnOpened() {
+		return anOpened;
+	}
+
+	public void setAnOpened(String anOpened) {
+		this.anOpened = anOpened;
+	}
+
+	public String getAnSelected() {
+		return anSelected;
+	}
+
+	public void setAnSelected(String anSelected) {
+		this.anSelected = anSelected;
+	}
+
+	public boolean isRendered() {
+		return rendered;
+	}
+
+	public void setRendered(boolean rendered) {
+		this.rendered = rendered;
+	}
+
+	public boolean isShowConnectingLines() {
+		return showConnectingLines;
+	}
+
+	public void setShowConnectingLines(boolean showConnectingLines) {
+		this.showConnectingLines = showConnectingLines;
+	}
+
+	public boolean isToggleOnClick() {
+		return toggleOnClick;
+	}
+
+	public void setToggleOnClick(boolean toggleOnClick) {
+		this.toggleOnClick = toggleOnClick;
+	}
+
+	public boolean isUseCustomIcons() {
+		return useCustomIcons;
+	}
+
+	public void setUseCustomIcons(boolean useCustomIcons) {
+		this.useCustomIcons = useCustomIcons;
+	}
+}
\ No newline at end of file

Copied: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeDND.java (from rev 13519, trunk/test-applications/seamApp/web/src/main/java/tTree/TTreeDND.java)
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeDND.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeDND.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,254 @@
+package org.richfaces.helloworld.domain.tTree;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.faces.FacesException;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.context.AjaxContext;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.richfaces.component.UITree;
+import org.richfaces.component.UITreeNode;
+import org.richfaces.event.DragEvent;
+import org.richfaces.event.DropEvent;
+import org.richfaces.event.NodeExpandedEvent;
+import org.richfaces.event.NodeSelectedEvent;
+import org.richfaces.model.TreeNode;
+import org.richfaces.model.TreeNodeImpl;
+import org.richfaces.model.TreeRowKey;
+
+ at Name("tTreeDND")
+ at Scope(ScopeType.SESSION)
+public class TTreeDND {
+	private static final String DATA_PATH = "org/richfaces/simpleTreeData.properties";
+
+	private TreeNode<String> treeNodeLeft;
+	private UITree leftTree;
+	private String leftSelectedNodeTitle;
+	private String rightSelectedNodeTitle;
+	private TreeNode<String> treeNodeRight;
+	private UITree rightTree;
+
+	private void addNodes(String path, TreeNode<String> node,
+			Properties properties) {
+		boolean end = false;
+		int counter = 1;
+		while (!end) {
+			String key = path != null ? path + '.' + counter : String
+					.valueOf(counter);
+			String value = properties.getProperty(key);
+			if (value != null) {
+				TreeNodeImpl<String> nodeImpl = new TreeNodeImpl<String>();
+				nodeImpl.setData(value);
+				node.addChild(new Integer(counter), nodeImpl);
+				addNodes(key, nodeImpl, properties);
+				counter++;
+			} else {
+				end = true;
+			}
+		}
+	}
+
+	private TreeNode<String> initPaneTree() {
+		TreeNode<String> rootNode = null;
+		FacesContext facesContext = FacesContext.getCurrentInstance();
+		ExternalContext externalContext = facesContext.getExternalContext();
+
+		InputStream dataStream = this.getClass().getClassLoader()
+				.getResourceAsStream(DATA_PATH);
+
+		try {
+			Properties properties = new Properties();
+			properties.load(dataStream);
+			rootNode = new TreeNodeImpl<String>();
+			addNodes(null, rootNode, properties);
+		} catch (IOException e) {
+
+			throw new FacesException(e.getMessage(), e);
+
+		} finally {
+			if (dataStream != null) {
+				try {
+					dataStream.close();
+				} catch (IOException e) {
+					externalContext.log(e.getMessage(), e);
+				}
+			}
+		}
+		return rootNode;
+	}
+
+	private Object getNewId(TreeNode parentNode) {
+		Map<Object, TreeNode> childs = new HashMap<Object, TreeNode>();
+		Iterator<Map.Entry<Object, TreeNode>> iter = parentNode.getChildren();
+		while (iter != null && iter.hasNext()) {
+			Map.Entry<Object, TreeNode> entry = iter.next();
+			childs.put(entry.getKey(), entry.getValue());
+		}
+
+		Integer index = 1;
+		while (childs.containsKey(index)) {
+			index++;
+		}
+		return index;
+	}
+
+	public void onDrop(DropEvent dropEvent) {
+		System.out.println("onDrop occured.");
+		System.out.println("DragValue: " + dropEvent.getDragValue());
+		System.out.println("DropValue: " + dropEvent.getDropValue());
+
+		// resolve drag source attributes
+		UITreeNode srcNode = (dropEvent.getDraggableSource() instanceof UITreeNode) ? (UITreeNode) dropEvent
+				.getDraggableSource()
+				: null;
+		UITree srcTree = srcNode != null ? srcNode.getUITree() : null;
+		TreeRowKey dragNodeKey = (dropEvent.getDragValue() instanceof TreeRowKey) ? (TreeRowKey) dropEvent
+				.getDragValue()
+				: null;
+
+		// resolve drag destination attributes
+		UITreeNode destNode = (dropEvent.getSource() instanceof UITreeNode) ? (UITreeNode) dropEvent
+				.getSource()
+				: null;
+		UITree destTree = destNode != null ? destNode.getUITree()
+				: (UITree) dropEvent.getComponent();
+		TreeRowKey dropNodeKey = (dropEvent.getDropValue() instanceof TreeRowKey) ? (TreeRowKey) dropEvent
+				.getDropValue()
+				: null;
+
+		FacesContext context = FacesContext.getCurrentInstance();
+
+		if (dropNodeKey != null) {
+			// add destination node for rerender
+			destTree.addRequestKey(dropNodeKey);
+
+			Object state = null;
+			TreeNode draggedNode = null;
+			if (dragNodeKey != null) { // Drag from this or other tree
+				draggedNode = srcTree.getModelTreeNode(dragNodeKey);
+
+				TreeNode parentNode = draggedNode.getParent();
+				// 1. remove node from tree
+				state = srcTree.removeNode(dragNodeKey);
+				// 2. add parent for rerender
+				Object rowKey = srcTree.getTreeNodeRowKey(parentNode);
+				srcTree.addRequestKey(rowKey);
+			} else if (dropEvent.getDragValue() != null) { // Drag from some
+				// drag source
+				draggedNode = new TreeNodeImpl<String>();
+				draggedNode.setData(dropEvent.getDragValue().toString());
+			}
+
+			// generate new node id
+			Object id = getNewId(destTree.getTreeNode(dropNodeKey));
+			destTree.addNode(dropNodeKey, draggedNode, id, state);
+		}
+
+		AjaxContext ac = AjaxContext.getCurrentInstance();
+		// Add destination tree to reRender
+		try {
+			ac.addComponentToAjaxRender(destTree);
+		} catch (Exception e) {
+			System.err.print(e.getMessage());
+		}
+
+		// Add source tree to reRender
+		try {
+			ac.addComponentToAjaxRender(srcTree);
+		} catch (Exception e) {
+			System.err.print(e.getMessage());
+		}
+
+		System.out.println("+++++");
+	}
+
+	public void onExpand(NodeExpandedEvent event) {
+		UITree tree = (UITree) event.getComponent();
+		System.out.println("Tree ('" + tree.getId() + "') node "
+				+ (tree.isExpanded() ? "expanded" : "collapsed") + " "
+				+ tree.getRowKey());
+	}
+
+	public void onDrag(DragEvent dragEvent) {
+		System.out.println("onDrag occured.");
+		System.out.println("DragValue: " + dragEvent.getDragValue());
+		System.out.println("DropValue: " + dragEvent.getDropValue());
+	}
+
+	public void processLSelection(NodeSelectedEvent event) {
+		UITree tree = (UITree) event.getComponent();
+		if (tree != null) {
+			leftSelectedNodeTitle = (String) tree.getRowData();
+		}
+	}
+
+	public void processRSelection(NodeSelectedEvent event) {
+		UITree tree = (UITree) event.getComponent();
+		if (tree != null) {
+			rightSelectedNodeTitle = (String) tree.getRowData();
+		}
+	}
+
+	public TreeNode<String> getTreeNodeLeft() {
+		if (treeNodeLeft == null) {
+			treeNodeLeft = initPaneTree();
+		}
+		return treeNodeLeft;
+	}
+
+	public void setTreeNodeLeft(TreeNode<String> treeNodeLeft) {
+		this.treeNodeLeft = treeNodeLeft;
+	}
+
+	public UITree getLeftTree() {
+		return leftTree;
+	}
+
+	public void setLeftTree(UITree leftTree) {
+		this.leftTree = leftTree;
+	}
+
+	public String getRightSelectedNodeTitle() {
+		return rightSelectedNodeTitle;
+	}
+
+	public void setRightSelectedNodeTitle(String rightSelectedNodeTitle) {
+		this.rightSelectedNodeTitle = rightSelectedNodeTitle;
+	}
+
+	public String getLeftSelectedNodeTitle() {
+		return leftSelectedNodeTitle;
+	}
+
+	public void setLeftSelectedNodeTitle(String leftSelectedNodeTitle) {
+		this.leftSelectedNodeTitle = leftSelectedNodeTitle;
+	}
+
+	public UITree getRightTree() {
+		return rightTree;
+	}
+
+	public void setRightTree(UITree rightTree) {
+		this.rightTree = rightTree;
+	}
+
+	public TreeNode<String> getTreeNodeRight() {
+		if (treeNodeRight == null) {
+			treeNodeRight = initPaneTree();
+		}
+		return treeNodeRight;
+	}
+
+	public void setTreeNodeRight(TreeNode<String> treeNodeRight) {
+		this.treeNodeRight = treeNodeRight;
+	}
+}

Copied: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeNA.java (from rev 13519, trunk/test-applications/seamApp/web/src/main/java/tTree/TTreeNA.java)
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeNA.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeNA.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,44 @@
+package org.richfaces.helloworld.domain.tTree;
+
+import java.util.ArrayList;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.richfaces.helloworld.domain.tTree.data.Dir;
+import org.richfaces.helloworld.domain.tTree.data.Package;
+import org.richfaces.helloworld.domain.tTree.data.Project;
+
+
+ at Name("tTreeNA")
+ at Scope(ScopeType.SESSION)
+public class TTreeNA {
+	private ArrayList<Project> treeNA;
+
+	public TTreeNA() {
+		treeNA = new ArrayList<Project>();
+		ArrayList<Dir> dirsArr = new ArrayList<Dir>();
+		ArrayList<Package> packArr = new ArrayList<Package>();
+
+		treeNA.clear();
+		for (int i = 0; i < 3; i++) {
+			dirsArr.clear();
+			for (int j = 0; j < 4; j++) {
+				packArr.clear();
+				for (int k = 0; k < 5; k++) {
+					packArr.add(new Package("package #" + i + " " + j + " "	+ k));
+				}
+				dirsArr.add(new Dir("dir #" + i + " " + j, new ArrayList<Package>(packArr)));
+			}
+			treeNA.add(new Project("project #" + i, new ArrayList<Dir>(dirsArr)));
+		}
+	}
+
+	public ArrayList<Project> getTreeNA() {
+		return treeNA;
+	}
+
+	public void setTreeNA(ArrayList<Project> treeNA) {
+		this.treeNA = treeNA;
+	}
+}

Copied: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeRNA.java (from rev 13519, trunk/test-applications/seamApp/web/src/main/java/tTree/TTreeRNA.java)
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeRNA.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/TTreeRNA.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,54 @@
+package org.richfaces.helloworld.domain.tTree;
+
+import java.util.ArrayList;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.richfaces.helloworld.domain.tTree.data.Dir;
+import org.richfaces.helloworld.domain.tTree.data.Package;
+
+
+ at Name("tTreeRNA")
+ at Scope(ScopeType.SESSION)
+public class TTreeRNA {
+	private ArrayList<Dir> treeRNAroots;
+
+	public TTreeRNA() {
+		treeRNAroots = new ArrayList<Dir>();
+		ArrayList<Dir> dirsArr = new ArrayList<Dir>();
+		ArrayList<Dir> subDirsArr = new ArrayList<Dir>();
+		ArrayList<Package> packArr = new ArrayList<Package>();
+		ArrayList<Package> subPackArr = new ArrayList<Package>();
+
+		treeRNAroots.clear();
+		dirsArr.clear();
+		for (int j = 0; j < 4; j++) {
+			packArr.clear();
+			subDirsArr.clear();
+			for (int k = 0; k < 5; k++) {
+				packArr.add(new Package("package #" + j + " " + k));
+			}
+			for (int f = 0; f < 4; f++) {
+				subPackArr.clear();
+				for (int l = 0; l < 5; l++) {
+					subPackArr.add(new Package("subPackage #" + j + " " + f
+							+ " " + l));
+				}
+				subDirsArr.add(new Dir("subDir #" + j + " " + f,
+						new ArrayList<Package>(subPackArr)));
+			}
+			dirsArr.add(new Dir("dir #" + j, new ArrayList<Package>(packArr),
+					new ArrayList<Dir>(subDirsArr)));
+		}
+		treeRNAroots.add(new Dir("*** root ***", null, dirsArr));
+	}
+
+	public ArrayList<Dir> getTreeRNAroots() {
+		return treeRNAroots;
+	}
+
+	public void setTreeRNAroots(ArrayList<Dir> treeRNAroots) {
+		this.treeRNAroots = treeRNAroots;
+	}
+}

Copied: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data (from rev 13519, trunk/test-applications/seamApp/web/src/main/java/tTree/data)

Modified: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Dir.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/tTree/data/Dir.java	2009-04-13 10:26:15 UTC (rev 13519)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Dir.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -1,4 +1,4 @@
-package tTree.data;
+package org.richfaces.helloworld.domain.tTree.data;
 
 import java.util.ArrayList;
 

Modified: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Package.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/tTree/data/Package.java	2009-04-13 10:26:15 UTC (rev 13519)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Package.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -1,4 +1,4 @@
-package tTree.data;
+package org.richfaces.helloworld.domain.tTree.data;
 
 public class Package {
 	private String name;

Modified: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Project.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/tTree/data/Project.java	2009-04-13 10:26:15 UTC (rev 13519)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/tTree/data/Project.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -1,4 +1,4 @@
-package tTree.data;
+package org.richfaces.helloworld.domain.tTree.data;
 
 import java.util.ArrayList;
 

Added: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/treeSwing/TreeSwing.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/treeSwing/TreeSwing.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/treeSwing/TreeSwing.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,155 @@
+package org.richfaces.helloworld.domain.treeSwing;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.ajax4jsf.context.AjaxContext;
+import org.richfaces.component.UITree;
+import org.richfaces.event.NodeSelectedEvent;
+
+import org.richfaces.helloworld.domain.util.componentInfo.ComponentInfo;;
+
+public class TreeSwing {
+
+	MutableTreeNode top;
+
+	UITree tree;
+
+	private String switchType = "ajax";
+
+	private boolean rendered = true;
+
+	private boolean showConnectingLines = false;
+
+	private boolean useCustomIcons = false;
+
+	private boolean disableKeyboardNavigation = false;
+
+	public TreeSwing() {
+		top = new DefaultMutableTreeNode("The Java Series");
+		createNodes(top);
+	}
+
+	public void selectionListener(NodeSelectedEvent e) {
+		UITree uiTree = (UITree) e.getComponent();
+		Object rowKey = uiTree.getRowKey();
+		MutableTreeNode node = (MutableTreeNode) uiTree.getRowData();
+		if (node.isLeaf()) {
+			uiTree.removeNode(rowKey);
+		}
+
+		AjaxContext ac = AjaxContext.getCurrentInstance();
+		try {
+			ac.addComponentToAjaxRender(uiTree);
+		} catch (Exception exc) {
+			System.err.print(exc.getMessage());
+		}
+	}
+
+	private void createNodes(MutableTreeNode top) {
+		MutableTreeNode category = null;
+		MutableTreeNode book = null;
+
+		category = new DefaultMutableTreeNode("Books for Java Programmers");
+		top.insert(category, 0);
+
+		// original Tutorial
+		book = new DefaultMutableTreeNode(
+				"The Java Tutorial: A Short Course on the Basics");
+		category.insert(book, 0);
+
+		// Tutorial Continued
+		book = new DefaultMutableTreeNode(
+				"The Java Tutorial Continued: The Rest of the JDK");
+		category.insert(book, 1);
+
+		// JFC Swing Tutorial
+		book = new DefaultMutableTreeNode(
+				"The JFC Swing Tutorial: A Guide to Constructing GUIs");
+		category.insert(book, 2);
+
+		// ...add more books for programmers...
+		category = new DefaultMutableTreeNode("Books for Java Implementers");
+		top.insert(category, 1);
+
+		// VM
+		book = new DefaultMutableTreeNode(
+				"The Java Virtual Machine Specification");
+		category.insert(book, 0);
+
+		// Language Spec
+		book = new DefaultMutableTreeNode("The Java Language Specification");
+		category.insert(book, 1);
+	}
+
+	public void addCustomIcons() {
+		if (useCustomIcons) {
+			tree.setIcon("/pics/1.gif");
+			tree.setIconCollapsed("/pics/3.gif");
+			tree.setIconExpanded("/pics/4.gif");
+			tree.setIconLeaf("/pics/2.gif");
+		} else {
+			tree.setIcon(null);
+			tree.setIconCollapsed(null);
+			tree.setIconExpanded(null);
+			tree.setIconLeaf(null);
+		}
+	}
+	
+	public void add() {
+		ComponentInfo info = ComponentInfo.getInstance();
+		info.addField(tree);
+	}
+
+	public MutableTreeNode getTop() {
+		return top;
+	}
+
+	public UITree getTree() {
+		return tree;
+	}
+
+	public void setTree(UITree tree) {
+		this.tree = tree;
+	}
+
+	public String getSwitchType() {
+		return switchType;
+	}
+
+	public void setSwitchType(String switchType) {
+		this.switchType = switchType;
+	}
+
+	public boolean isRendered() {
+		return rendered;
+	}
+
+	public void setRendered(boolean rendered) {
+		this.rendered = rendered;
+	}
+
+	public boolean isShowConnectingLines() {
+		return showConnectingLines;
+	}
+
+	public void setShowConnectingLines(boolean showConnectingLines) {
+		this.showConnectingLines = showConnectingLines;
+	}
+
+	public boolean isUseCustomIcons() {
+		return useCustomIcons;
+	}
+
+	public void setUseCustomIcons(boolean useCustomIcons) {
+		this.useCustomIcons = useCustomIcons;
+	}
+
+	public boolean isDisableKeyboardNavigation() {
+		return disableKeyboardNavigation;
+	}
+
+	public void setDisableKeyboardNavigation(boolean disableKeyboardNavigation) {
+		this.disableKeyboardNavigation = disableKeyboardNavigation;
+	}
+}
\ No newline at end of file

Added: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/Car.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/Car.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/Car.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,76 @@
+package org.richfaces.helloworld.domain.util.data;
+
+public class Car {
+
+	private String make;
+
+	private String model;
+
+	private Integer price;
+
+	public Car() {
+		this.make = "";
+		this.model = "";
+		this.price = 0;
+	}
+	
+	public Car(String mak, String mod, Integer pr) {
+		this.make = mak;
+		this.model = mod;
+		this.price = pr;
+	}
+
+	public String getMake() {
+		return make;
+	}
+
+	public void setMake(String make) {
+		this.make = make;
+	}
+
+	public String getModel() {
+		return model;
+	}
+
+	public void setModel(String model) {
+		this.model = model;
+	}
+
+	public Integer getPrice() {
+		return price;
+	}
+
+	public void setPrice(Integer price) {
+		this.price = price;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((make == null) ? 0 : make.hashCode());
+		result = prime * result + ((model == null) ? 0 : model.hashCode());
+		result = prime * result + ((price == null) ? 0 : price.hashCode());
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (obj instanceof Car) {
+			Car car = (Car) obj;
+			if (this.make.equals(car.make) && (this.model.equals(car.model))
+					&& (this.price.equals(car.price))) {
+				return true;
+			} else {
+				return false;
+			}
+		} else {
+			return false;
+		}
+	}
+	
+	@Override
+	public String toString() {
+		return this.make + ":" + this.model + ":" + this.price;
+	}
+}
\ No newline at end of file

Added: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/CarProvider.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/CarProvider.java	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/data/CarProvider.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,111 @@
+package org.richfaces.helloworld.domain.util.data;
+
+import java.util.ArrayList;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class CarProvider extends DefaultHandler {
+
+	private ArrayList<Car> allCars = null;
+
+	public CarProvider() {
+		if (allCars == null) {
+			allCars = new ArrayList<Car>();
+			try {
+				SAXParserFactory spf = SAXParserFactory.newInstance();
+				SAXParser sp = spf.newSAXParser();
+				sp.parse(new InputSource(getClass().getResourceAsStream(
+						"cars.xml")), this);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	public ArrayList<Car> getAllCars() {
+		return allCars;
+	}
+
+	private String element = "";
+	private String mak = "";
+	private String mod = "";
+	private Integer pr = 0;
+
+	public void startDocument() {
+		System.out.println("*** > Parser starts its work");
+	}
+
+	public void startElement(String namespaceURI, String localName,
+			String rawName, Attributes attrs) {
+		element = rawName;
+
+//		System.out.print("<");
+//		System.out.print(rawName);
+//		if (attrs != null) {
+//			int len = attrs.getLength();
+//			for (int i = 0; i < len; i++) {
+//				System.out.print(" ");
+//				System.out.print(attrs.getQName(i));
+//				System.out.print("=\"");
+//				System.out.print(attrs.getValue(i));
+//				System.out.print("\"");
+//			}
+//		}
+//		System.out.print(">");
+	}
+
+	public void characters(char ch[], int start, int length) {
+		String text = new String(ch, start, length);
+//		System.out.print(text);
+
+		if (element.equals("make")) {
+			element = "";
+			mak = text;
+		} else if (element.equals("model")) {
+			element = "";
+			mod = text;
+		} else if (element.equals("price")) {
+			try {
+				element = "";
+				Integer p = Integer.parseInt(text);
+				pr = p;
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	public void endElement(String namespaceURI, String localName, String rawName) {
+//		System.out.print("</");
+//		System.out.print(rawName);
+//		System.out.print(">");
+
+		if (rawName.equals("car")) {
+			allCars.add(new Car(mak, mod, pr));
+		}
+	}
+
+	public void endDocument() {
+		System.out.println("*** > Parser ends its work");
+	}
+
+	public void warning(SAXParseException ex) {
+		System.err.println("[Warning] : " + ex.getMessage());
+	}
+
+	public void error(SAXParseException ex) {
+		System.err.println("[Error] : " + ex.getMessage());
+	}
+
+	public void fatalError(SAXParseException ex) throws SAXException {
+		System.err.println("[Fatal Error] : " + ex.getMessage());
+		throw ex;
+	}
+}

Modified: trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/skins/Skins.java
===================================================================
--- trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/skins/Skins.java	2009-04-17 11:20:24 UTC (rev 13627)
+++ trunk/test-applications/seamApp/web/src/main/java/org/richfaces/helloworld/domain/util/skins/Skins.java	2009-04-17 11:44:55 UTC (rev 13628)
@@ -28,8 +28,6 @@
 	private String defaultSkin = "deepMarine";
 
 	private String skin = defaultSkin;
-	@In(required=false)
-	public UIComponent skinComponent = null;
 
 	private UISelectOne createComponent() {
 		UISelectOne selectOne = new HtmlSelectOneRadio();
@@ -52,7 +50,7 @@
 	public String getSkin() {
 		return skin;
 	}
-	
+
 	public UIComponent getSkinComponent() {
 		FacesContext facesContext = FacesContext.getCurrentInstance();
 		Map requestMap = facesContext.getExternalContext().getRequestMap();
@@ -61,12 +59,12 @@
 			return (UISelectOne) object;
 		}
 
-		skinComponent = createComponent();
-		requestMap.put("SkinBean", skinComponent);		
-		return skinComponent;
+		UISelectOne selectOne = createComponent();
+		requestMap.put("SkinBean", selectOne);
+		return selectOne;
 	}
 
-	public void setComponent(UIComponent component) {
+	public void setSkinComponent(UIComponent component) {
 		FacesContext facesContext = FacesContext.getCurrentInstance();
 		Map requestMap = facesContext.getExternalContext().getRequestMap();
 		requestMap.put("SkinBean", component);
@@ -77,8 +75,4 @@
 		skin = (String) selectOne.getValue();
 		return null;
 	}
-
-	public void setSkinComponent(UIComponent skinComponent) {
-		this.skinComponent = skinComponent;
-	}
 }

Copied: trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/tTree (from rev 13519, trunk/test-applications/seamApp/web/src/main/resources/tTree)

Added: trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/util/data/cars.xml
===================================================================
--- trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/util/data/cars.xml	                        (rev 0)
+++ trunk/test-applications/seamApp/web/src/main/resources/org/richfaces/helloworld/domain/util/data/cars.xml	2009-04-17 11:44:55 UTC (rev 13628)
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shop>
+	<car>
+		<make>Audi</make>
+		<model>A6</model>
+		<price>40000</price>
+	</car>
+	<car>
+		<make>Audi</make>
+		<model>Q7</model>
+		<price>48500</price>
+	</car>
+	<car>
+		<make>Audi</make>
+		<model>Q5</model>
+		<price>36500</price>
+	</car>
+	<car>
+		<make>Audi</make>
+		<model>Q8</model>
+		<price>102500</price>
+	</car>
+	<car>
+		<make>BMW</make>
+		<model>760Li</model>
+		<price>115400</price>
+	</car>
+	<car>
+		<make>BMW</make>
+		<model>330i</model>
+		<price>38400</price>
+	</car>
+	<car>
+		<make>BMW</make>
+		<model>X6</model>
+		<price>55900</price>
+	</car>
+	<car>
+		<make>Bentley</make>
+		<model>Arnage</model>
+		<price>240000</price>
+	</car>
+	<car>
+		<make>Bugatti</make>
+		<model>Veyron</model>
+		<price>1340000</price>
+	</car>
+	<car>
+		<make>Mercedes-Benz</make>
+		<model>S63 AMG</model>
+		<price>154200</price>
+	</car>
+	<car>
+		<make>Mercedes-Benz</make>
+		<model>SLR</model>
+		<price>854200</price>
+	</car>
+	<car>
+		<make>Mercedes-Benz</make>
+		<model>E63AMG</model>
+		<price>120200</price>
+	</car>
+	<car>
+		<make>Mercedes-Benz</make>
+		<model>R350</model>
+		<price>61200</price>
+	</car>
+	<car>
+		<make>Mercedes-Benz</make>
+		<model>E300D</model>
+		<price>9800</price>
+	</car>
+	<car>
+		<make>Mazda</make>
+		<model>3</model>
+		<price>17300</price>
+	</car>
+	<car>
+		<make>Mazda</make>
+		<model>6</model>
+		<price>21300</price>
+	</car>
+	<car>
+		<make>Mazda</make>
+		<model>CX7</model>
+		<price>24300</price>
+	</car>
+	<car>
+		<make>Fiat</make>
+		<model>Punto</model>
+		<price>8200</price>
+	</car>
+	<car>
+		<make>Fiat</make>
+		<model>Multipla</model>
+		<price>9100</price>
+	</car>
+	<car>
+		<make>Ford</make>
+		<model>GT-40</model>
+		<price>325100</price>
+	</car>
+	<car>
+		<make>Ford</make>
+		<model>Mondeo</model>
+		<price>23100</price>
+	</car>
+	<car>
+		<make>Ford</make>
+		<model>Fiesta</model>
+		<price>5100</price>
+	</car>
+	<car>
+		<make>Ford</make>
+		<model>Scorpio</model>
+		<price>4800</price>
+	</car>
+	<car>
+		<make>Ferrari</make>
+		<model>Enzo</model>
+		<price>950000</price>
+	</car>
+	<car>
+		<make>Jaguar</make>
+		<model>XJ</model>
+		<price>75400</price>
+	</car>
+</shop>
\ No newline at end of file

Modified: trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/faces-config.xml	2009-04-17 11:20:24 UTC (rev 13627)
+++ trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/faces-config.xml	2009-04-17 11:44:55 UTC (rev 13628)
@@ -38,20 +38,6 @@
 			org.richfaces.helloworld.domain.message.MessageValidator
 		</validator-class>
 	</validator>
-	<managed-bean>
-		<managed-bean-name>skinBean</managed-bean-name>
-		<managed-bean-class>
-			org.richfaces.helloworld.domain.util.skins.Skins
-		</managed-bean-class>
-		<managed-bean-scope>session</managed-bean-scope>
-	</managed-bean>
-	<managed-bean>
-		<managed-bean-name>skinning</managed-bean-name>
-		<managed-bean-class>
-			org.richfaces.helloworld.domain.skinning.Skinning
-		</managed-bean-class>
-		<managed-bean-scope>session</managed-bean-scope>
-	</managed-bean>
 	<application>
 		<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
 		<locale-config>

Modified: trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/web.xml	2009-04-17 11:20:24 UTC (rev 13627)
+++ trunk/test-applications/seamApp/web/src/main/webapp/WEB-INF/web.xml	2009-04-17 11:44:55 UTC (rev 13628)
@@ -4,7 +4,7 @@
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
          version="2.5">
 
-    <!-- Ajax4jsf -->
+    <!-- Ajax4jsf 
      <filter>
         <display-name>Ajax4jsf Filter</display-name>
         <filter-name>ajax4jsf</filter-name>
@@ -15,11 +15,26 @@
         <filter-name>ajax4jsf</filter-name>
         <url-pattern>*.seam</url-pattern>
     </filter-mapping>
-    
+    -->
     <context-param>
         <param-name>org.richfaces.SKIN</param-name>
-        <param-value>blueSky</param-value>
-    </context-param>
+        <param-value>#{skinBean.skin}</param-value>
+    </context-param>
+    
+    <context-param>
+		<param-name>org.richfaces.CONTROL_SKINNING_CLASSES</param-name>
+		<param-value>#{skinning.skinningClass}</param-value>
+	</context-param>
+
+	<context-param>
+		<param-name>org.richfaces.CONTROL_SKINNING</param-name>
+		<param-value>#{skinning.skinning}</param-value>
+	</context-param>
+
+	<context-param>
+		<param-name>org.richfaces.CONTROL_SKINNING_LEVEL</param-name>
+		<param-value>extended</param-value>
+	</context-param>
  
    <!-- Seam -->
     




More information about the richfaces-svn-commits mailing list