1 5 6 package org.exoplatform.portlets.nav.renderer.html; 7 8 import java.io.IOException ; 9 import java.util.Iterator ; 10 import java.util.List ; 11 import java.util.ResourceBundle ; 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 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 { 30 ResourceBundle res = getApplicationResourceBundle(context.getExternalContext()) ; 31 UIVisitedPages uiComponent = (UIVisitedPages) component; 32 RequestInfo rinfo = (RequestInfo)SessionContainer.getComponent(RequestInfo.class); 33 String 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 ; List history = SessionContainer.getInstance().getMonitor().getHistory(); 41 if(numberOfPages < 0) limit = 0 ; else if( history.size() > numberOfPages) limit = history.size() - numberOfPages ; 43 Iterator 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 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 |