KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > portlets > wsrp > renderer > html > ProducerMenuRenderer


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.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 JavaDoc;
19 import java.util.Iterator JavaDoc;
20 import java.util.Collection JavaDoc;
21
22 /**
23  * Created y the eXo platform team
24  * User: Benjamin Mestrallet
25  * Date: 6 juin 2004
26  */

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 JavaDoc EXPAND = "<img class='expand' SRC='/skin/blank.gif'/>";
33   final public static String JavaDoc COLLAPSE = "<img class='collapse' SRC='/skin/blank.gif'/>";
34
35   public void encodeChildren(FacesContext context, UIComponent component) throws IOException JavaDoc {
36     UIProducerMenu uiMenu = (UIProducerMenu) component;
37     ResponseWriter w = context.getResponseWriter();
38     String JavaDoc 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 JavaDoc producerDatas = uiMenu.getProducers();
45     Iterator JavaDoc prodIterator = producerDatas.iterator();
46     w.write("<table>");
47     while (prodIterator.hasNext()) {
48       ProducerData prodData = (ProducerData) prodIterator.next();
49       String JavaDoc prodpName = prodData.getProducerName();
50       producerParam.setValue(prodpName);
51       String JavaDoc 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 JavaDoc 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