KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > portlets > nav > renderer > html > VisitedPagesRenderer


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
6 package org.exoplatform.portlets.nav.renderer.html;
7
8 import java.io.IOException JavaDoc;
9 import java.util.Iterator JavaDoc;
10 import java.util.List JavaDoc;
11 import java.util.ResourceBundle JavaDoc;
12 import javax.faces.component.UIComponent;
13 import javax.faces.context.FacesContext;
14 import javax.faces.context.ResponseWriter;
15 import org.exoplatform.container.SessionContainer;
16 import org.exoplatform.container.monitor.ActionData;
17 import org.exoplatform.faces.core.component.model.Parameter;
18 import org.exoplatform.faces.core.renderer.html.HtmlBasicRenderer;
19 import org.exoplatform.portal.session.RequestInfo;
20 import org.exoplatform.portlets.nav.component.UIVisitedPages;
21 /**
22  * Created y the eXo platform team
23  * User: Benjamin Mestrallet
24  * Date: 31 aout 2004
25  */

26 public class VisitedPagesRenderer extends HtmlBasicRenderer {
27   final static protected Parameter CHANGE_NODE = new Parameter(ACTION, "changeNode");
28
29   public void encodeChildren(FacesContext context, UIComponent component) throws IOException JavaDoc {
30     ResourceBundle JavaDoc res = getApplicationResourceBundle(context.getExternalContext()) ;
31     UIVisitedPages uiComponent = (UIVisitedPages) component;
32     RequestInfo rinfo = (RequestInfo)SessionContainer.getComponent(RequestInfo.class);
33     String JavaDoc ownerURI = rinfo.getOwnerURI() ;
34     ResponseWriter w = context.getResponseWriter() ;
35
36     w.write("<div class='UIVisitedPages'>");
37     w. write("<div>"); w.write(res.getString("UIVisitedPages.label.visited-pages")); w.write("</div>");
38     int numberOfPages = uiComponent.getNumberOfPages() ;
39     int limit = 0 ; //show all
40
List JavaDoc history = SessionContainer.getInstance().getMonitor().getHistory();
41     if(numberOfPages < 0) limit = 0 ; // show all
42
else if( history.size() > numberOfPages) limit = history.size() - numberOfPages ;
43     Iterator JavaDoc i = history.iterator() ;
44     int count = 0 ;
45     while(i.hasNext()){
46       count++ ;
47       if(count < limit ) {
48         i.next() ;
49         continue ;
50       }
51       ActionData data = (ActionData) i.next();
52       String JavaDoc page = data.getPage() ;
53       w.write("<div>");
54       if(page == null || page.length() == 0) {
55         w. write("N/A") ;
56       } else {
57         w.write("<a HREF='"); w.write(ownerURI); w.write(data.getPage()); w.write("'>") ;
58         w. write(data.getPage()) ;
59         w. write("</a>") ;
60       }
61       w.write("</div>");
62     }
63     if(numberOfPages < 0) {
64       linkRenderer_.render(w, uiComponent, res.getString("UIVisitedPages.button.less"),
65                            UIVisitedPages.lessParams);
66     } else {
67       linkRenderer_.render(w, uiComponent, res.getString("UIVisitedPages.button.more"),
68                            UIVisitedPages.moreParams);
69     }
70     w.write("</div>");
71   }
72 }
73
Popular Tags