1 5 6 package org.exoplatform.portlets.wsrp.renderer.html; 7 8 9 import javax.faces.context.FacesContext; 10 import javax.faces.context.ResponseWriter; 11 import javax.faces.component.UIComponent; 12 import org.exoplatform.faces.FacesConstants; 13 import org.exoplatform.faces.core.component.model.Parameter; 14 import org.exoplatform.faces.core.renderer.html.HtmlBasicRenderer; 15 import org.exoplatform.portlets.wsrp.component.UIProducerMenu; 16 import org.exoplatform.portlets.wsrp.component.model.ProducerData; 17 import org.exoplatform.services.wsrp.type.PortletDescription; 18 import java.io.IOException ; 19 import java.util.Iterator ; 20 import java.util.Collection ; 21 22 27 public class ProducerMenuRenderer extends HtmlBasicRenderer { 28 29 private static Parameter SELECT_PRODUCER = new Parameter(FacesConstants.ACTION, "selectProducer"); 30 private static Parameter SHOW_PRODUCER = new Parameter(FacesConstants.ACTION, "showProducer"); 31 private static Parameter SHOW_PORTLET = new Parameter(FacesConstants.ACTION, "showPortlet"); 32 final public static String EXPAND = "<img class='expand' SRC='/skin/blank.gif'/>"; 33 final public static String COLLAPSE = "<img class='collapse' SRC='/skin/blank.gif'/>"; 34 35 public void encodeChildren(FacesContext context, UIComponent component) throws IOException { 36 UIProducerMenu uiMenu = (UIProducerMenu) component; 37 ResponseWriter w = context.getResponseWriter(); 38 String baseURL = context.getExternalContext().encodeActionURL(null); 39 Parameter producerParam = new Parameter("producerName", ""); 40 Parameter portletParam = new Parameter("portletName", ""); 41 Parameter[] selectProducersParams = {SELECT_PRODUCER, producerParam}; 42 Parameter[] showProducerParams = {SHOW_PRODUCER, producerParam}; 43 Parameter[] showPortletMonitorParams = {SHOW_PORTLET, producerParam, portletParam}; 44 Collection producerDatas = uiMenu.getProducers(); 45 Iterator prodIterator = producerDatas.iterator(); 46 w.write("<table>"); 47 while (prodIterator.hasNext()) { 48 ProducerData prodData = (ProducerData) prodIterator.next(); 49 String prodpName = prodData.getProducerName(); 50 producerParam.setValue(prodpName); 51 String sign = EXPAND; 52 if (prodData.isSelect()) sign = COLLAPSE; 53 w.write("<tr>"); 54 w.write("<th>"); 55 appendLink(w, sign, baseURL, selectProducersParams, ""); 56 appendLink(w, prodpName, baseURL, showProducerParams, ""); 57 w.write("</th>"); 58 w.write("</tr>"); 59 if (prodData.isSelect()) { 60 PortletDescription[] portletDescriptions = prodData.getOfferedPortlets(); 61 if (portletDescriptions != null) { 62 for (int i = 0; i < portletDescriptions.length; i++) { 63 PortletDescription portletDescription = portletDescriptions[i]; 64 String portletName = portletDescription.getDisplayName().getValue(); 65 portletParam.setValue(portletDescription.getPortletHandle()); 66 w.write("<tr>"); 67 w.write("<td>"); 68 appendLink(w, portletName, baseURL, showPortletMonitorParams, ""); 69 w.write("</td>"); 70 w.write("</tr>"); 71 } 72 } 73 } 74 } 75 w.write("</table>"); 76 } 77 } 78 | Popular Tags |