1 9 package org.jboss.portal.test.portlet; 10 11 import java.io.IOException ; 12 import java.io.PrintWriter ; 13 import java.util.ArrayList ; 14 import java.util.Enumeration ; 15 import java.util.StringTokenizer ; 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 30 public class TestPortletPreferencesPortlet extends GenericPortlet 31 { 32 public void processAction(ActionRequest req, ActionResponse resp) throws PortletException, IOException 33 { 34 PortletPreferences preferences = req.getPreferences(); 35 for (Enumeration e = req.getParameterNames();e.hasMoreElements();) 36 { 37 String name = (String )e.nextElement(); 38 String value = req.getParameter(name); 39 if (value.length() == 0) 40 { 41 preferences.setValue(name, ""); 42 } 43 else 44 { 45 ArrayList tmp = new ArrayList (); 46 for (StringTokenizer st = new StringTokenizer (value, ",");st.hasMoreTokens();) 47 { 48 String token = st.nextToken().trim(); 49 tmp.add(token); 50 } 51 String [] values = (String [])tmp.toArray(new String [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 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 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 e = prefs.getNames();e.hasMoreElements();) 72 { 73 String name = (String )e.nextElement(); 74 boolean readOnly = prefs.isReadOnly(name); 75 String [] values = prefs.getValues(name, null); 76 writer.print("<tr><td>" + name + "</td><td>"); 77 StringBuffer buffer = new StringBuffer (); 78 if (values != null) 79 { 80 for (int i = 0;i < values.length;i++) 81 { 82 String 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 |