KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > portlet > TestPortletPreferencesPortlet


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Distributable under LGPL license. *
6  * See terms of license at gnu.org. *
7  * *
8  *****************************************/

9 package org.jboss.portal.test.portlet;
10
11 import java.io.IOException JavaDoc;
12 import java.io.PrintWriter JavaDoc;
13 import java.util.ArrayList JavaDoc;
14 import java.util.Enumeration JavaDoc;
15 import java.util.StringTokenizer JavaDoc;
16
17 import javax.portlet.ActionRequest;
18 import javax.portlet.ActionResponse;
19 import javax.portlet.GenericPortlet;
20 import javax.portlet.PortletException;
21 import javax.portlet.PortletPreferences;
22 import javax.portlet.RenderRequest;
23 import javax.portlet.RenderResponse;
24 import javax.portlet.WindowState;
25
26 /**
27  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
28  * @version $Revision: 1.2 $
29  */

30 public class TestPortletPreferencesPortlet extends GenericPortlet
31 {
32    public void processAction(ActionRequest req, ActionResponse resp) throws PortletException, IOException JavaDoc
33    {
34       PortletPreferences preferences = req.getPreferences();
35       for (Enumeration JavaDoc e = req.getParameterNames();e.hasMoreElements();)
36       {
37          String JavaDoc name = (String JavaDoc)e.nextElement();
38          String JavaDoc value = req.getParameter(name);
39          if (value.length() == 0)
40          {
41             preferences.setValue(name, "");
42          }
43          else
44          {
45             ArrayList JavaDoc tmp = new ArrayList JavaDoc();
46             for (StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(value, ",");st.hasMoreTokens();)
47             {
48                String JavaDoc token = st.nextToken().trim();
49                tmp.add(token);
50             }
51             String JavaDoc[] values = (String JavaDoc[])tmp.toArray(new String JavaDoc[tmp.size()]);
52             preferences.setValues(name, values);
53          }
54       }
55       preferences.store();
56    }
57
58    public void render(RenderRequest req, RenderResponse resp) throws PortletException, IOException JavaDoc
59    {
60       if (!WindowState.MINIMIZED.equals(req.getWindowState()))
61       {
62          PortletPreferences prefs = req.getPreferences();
63          WindowState windowState = req.getWindowState();
64          resp.setContentType("text/html");
65          if (windowState != WindowState.MINIMIZED)
66          {
67             PrintWriter JavaDoc writer = resp.getWriter();
68             writer.print("<form action=\"" + resp.createActionURL() + "\" method=\"post\">");
69             writer.print("<table border=\"1\">");
70             writer.print("<tr><td>name</td><td>value</td></tr>");
71             for (Enumeration JavaDoc e = prefs.getNames();e.hasMoreElements();)
72             {
73                String JavaDoc name = (String JavaDoc)e.nextElement();
74                boolean readOnly = prefs.isReadOnly(name);
75                String JavaDoc[] values = prefs.getValues(name, null);
76                writer.print("<tr><td>" + name + "</td><td>");
77                StringBuffer JavaDoc buffer = new StringBuffer JavaDoc();
78                if (values != null)
79                {
80                   for (int i = 0;i < values.length;i++)
81                   {
82                      String JavaDoc value = values[i];
83                      if (i > 0)
84                      {
85                         buffer.append(",");
86                      }
87                      buffer.append(value);
88                   }
89                }
90                if (readOnly || windowState != WindowState.MAXIMIZED)
91                {
92                   writer.print(buffer.toString());
93                }
94                else
95                {
96                   writer.print("<input type=\"text\" name=\"" + name + "\" value=\"" + buffer.toString() + "\"/>");
97                }
98                writer.print("</td></tr>");
99             }
100             if (windowState == WindowState.MAXIMIZED)
101             {
102                writer.print("<tr><td colspan=\"2\"><input type=\"submit\" value=\"update\"/></td></tr>");
103             }
104             writer.print("</table>");
105             writer.print("</form>");
106          }
107       }
108    }
109 }
110
Popular Tags