1 19 20 package com.sslexplorer.setup.forms; 21 22 import java.util.ArrayList ; 23 import java.util.Iterator ; 24 import java.util.List ; 25 import java.util.StringTokenizer ; 26 import java.util.regex.Pattern ; 27 28 import javax.servlet.http.HttpServletRequest ; 29 30 import org.apache.struts.Globals; 31 import org.apache.struts.action.ActionErrors; 32 import org.apache.struts.action.ActionForm; 33 import org.apache.struts.action.ActionMapping; 34 import org.apache.struts.action.ActionMessage; 35 import org.apache.struts.util.LabelValueBean; 36 37 import com.sslexplorer.setup.ClientRestrictionItem; 38 39 public class ClientRestrictionsForm 40 extends ActionForm { 41 42 List clientRestrictionItems; 43 String action; 44 List osList; 45 String selectedOs = "Windows XP"; 46 List selectedItems; 47 48 public ClientRestrictionsForm() { 49 } 50 51 public void reset(ActionMapping mapping, 52 javax.servlet.http.HttpServletRequest request) { 53 } 54 55 public void initialise(List clientRestrictionItems) { 56 this.clientRestrictionItems = clientRestrictionItems; 57 osList = new ArrayList (); 58 osList.add(new LabelValueBean("All", "All")); 59 selectedItems = new ArrayList (); 60 String lastOs = null; 61 for(Iterator i = clientRestrictionItems.iterator(); i.hasNext(); ) { 62 ClientRestrictionItem item = (ClientRestrictionItem)i.next(); 63 if(!item.getClientRestriction().getOsName().equals(lastOs)) { 64 lastOs = item.getClientRestriction().getOsName(); 65 osList.add(new LabelValueBean(lastOs, lastOs)); 66 } 67 } 68 buildSelectedList(); 69 } 70 71 public String getSelectedOs() { 72 return selectedOs; 73 } 74 75 public void setSelectedOs(String selectedOs) { 76 this.selectedOs =selectedOs; 77 } 78 79 public List getClientRestrictionItems() { 80 return selectedItems; 81 } 82 83 public String getAction() { 84 return action; 85 } 86 87 public void setAction(String action) { 88 this.action = action; 89 } 90 91 public List getOsList() { 92 return osList; 93 } 94 95 public void setClientRestrictionItems(List selectedItems) { 96 this.selectedItems = selectedItems; 97 } 98 99 public void setClientRestrictionItem(int idx, ClientRestrictionItem item) { 100 selectedItems.set(idx, item); 101 } 102 103 public ClientRestrictionItem getClientRestrictionItem(int idx) { 104 return (ClientRestrictionItem)selectedItems.get(idx); 105 } 106 107 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { 108 if("commit".equals(request.getParameter("action"))) { 109 ActionErrors msgs = new ActionErrors(); 110 for(Iterator i = selectedItems.iterator(); i.hasNext(); ) { 111 ClientRestrictionItem item = (ClientRestrictionItem)i.next(); 112 String exceptions = item.getClientRestriction().getExceptions(); 113 StringTokenizer t = new StringTokenizer (exceptions, "\r\n"); 114 while(t.hasMoreTokens()) { 115 String pattern = t.nextToken(); 116 try { 117 Pattern.compile(pattern); 118 } 119 catch(Exception e) { 120 msgs.add(Globals.MESSAGE_KEY, new ActionMessage("clientRestrictions.error.invalidExceptionPattern", e.getMessage(), 121 item.getClientRestriction().getOsName(), item.getClientRestriction().getPropertyName())); 122 } 123 } 124 } 125 return msgs; 126 } 127 else { 128 return null; 129 } 130 } 131 132 private void buildSelectedList() { 133 selectedItems.clear(); 134 for(Iterator i = clientRestrictionItems.iterator(); i.hasNext(); ) { 135 ClientRestrictionItem item = (ClientRestrictionItem)i.next(); 136 if("All".equals(selectedOs) || item.getClientRestriction().getOsName().equals(selectedOs)) { 137 selectedItems.add(item); 138 } 139 } 140 } 141 } | Popular Tags |