KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > faces > core > component > model > ListComponentCell


1 /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

5 package org.exoplatform.faces.core.component.model;
6
7 import java.util.ArrayList JavaDoc ;
8 import java.util.ResourceBundle JavaDoc ;
9 import java.io.IOException JavaDoc ;
10 import javax.faces.context.ResponseWriter ;
11 import javax.faces.context.FacesContext;
12 import javax.faces.component.UIComponent;
13 import org.exoplatform.commons.utils.ExpressionUtil;
14 import org.exoplatform.faces.core.component.UIGrid;
15
16 /**
17  * Wed, Dec 22, 2003 @ 23:14
18  * @author: Tuan Nguyen
19  * @email: tuan08@users.sourceforge.net
20  * @version: $Id: ListComponentCell.java,v 1.4 2004/06/30 19:52:08 tuan08 Exp $
21  */

22 public class ListComponentCell extends Cell {
23   private ArrayList JavaDoc comps_ ;
24   
25   public ListComponentCell() {
26     comps_ = new ArrayList JavaDoc(5) ;
27   }
28
29   public ListComponentCell add(UIComponent parent, UIComponent comp) {
30     parent.getChildren().add(comp) ;
31     comps_.add(comp) ;
32     return this ;
33   }
34
35   public ListComponentCell add(Object JavaDoc o) {
36     comps_.add(o) ;
37     return this ;
38   }
39   
40   public ListComponentCell add(HtmlFragment f) {
41     comps_.add(f) ;
42     return this ;
43   }
44
45   public void render(ResponseWriter w, ResourceBundle JavaDoc res, UIGrid uiGrid, String JavaDoc tag) throws IOException JavaDoc {
46     w.write("<") ; w.write(tag) ;
47     if(attributes_ != null) {
48       int size = attributes_.size() ;
49       for(int i = 0; i < size ; i++) {
50         Cell.Attribute attr = (Cell.Attribute) attributes_.get(i) ;
51         w.write(' ');w.write(attr.name_);w.write("='");w.write(attr.value_);w.write('\'') ;
52       }
53     }
54     w.write('>') ;
55     FacesContext context = FacesContext.getCurrentInstance();
56     for (int i = 0; i < comps_.size(); i++) {
57       Object JavaDoc o = comps_.get(i) ;
58       if (o instanceof UIComponent) {
59         UIComponent component = (UIComponent) o;
60         component.encodeBegin(context) ;
61         component.encodeChildren(context) ;
62         component.encodeEnd(context) ;
63       } else if (o instanceof HtmlFragment){
64         HtmlFragment f = (HtmlFragment) o ;
65         f.render(w, res, uiGrid) ;
66       } else {
67         w.write(ExpressionUtil.getExpressionValue(res,o.toString())) ;
68       }
69     }
70     w.write("</") ; w.write(tag) ; w.write(">") ;
71   }
72 }
Popular Tags