1 24 package org.riotfamily.forms.controller; 25 26 import java.io.PrintWriter ; 27 import java.util.Locale ; 28 29 import org.riotfamily.common.i18n.MessageResolver; 30 import org.riotfamily.forms.ContentElement; 31 import org.riotfamily.forms.FormContext; 32 import org.riotfamily.forms.TemplateRenderer; 33 import org.springframework.beans.PropertyEditorRegistrar; 34 35 39 public class DefaultFormContext implements FormContext { 40 41 private String contextPath; 42 43 private String resourcePath; 44 45 46 private TemplateRenderer templateRenderer; 47 48 private MessageResolver messageResolver; 49 50 51 private PrintWriter writer; 52 53 private String formUrl; 54 55 private PropertyEditorRegistrar[] propertyEditorRegistrars; 56 57 public DefaultFormContext() { 58 } 59 60 public DefaultFormContext(MessageResolver messageResolver, 61 TemplateRenderer templateRenderer, 62 String contextPath, String resourcePath, String formUrl) { 63 64 this.messageResolver = messageResolver; 65 this.contextPath = contextPath; 66 setResourcePath(resourcePath); 67 this.templateRenderer = templateRenderer; 68 this.formUrl = formUrl; 69 } 70 71 private void setResourcePath(String path) { 72 if (path != null && path.length() > 0) { 73 if (path.charAt(path.length() - 1) != '/') { 74 path += '/'; 75 } 76 } 77 else { 78 path = "/"; 79 } 80 this.resourcePath = path; 81 } 82 83 public Locale getLocale() { 84 return messageResolver.getLocale(); 85 } 86 87 public MessageResolver getMessageResolver() { 88 return messageResolver; 89 } 90 91 public String getContextPath() { 92 return contextPath; 93 } 94 95 public String getResourcePath() { 96 return resourcePath; 97 } 98 99 public TemplateRenderer getTemplateRenderer() { 100 return templateRenderer; 101 } 102 103 public PrintWriter getWriter() { 104 return writer; 105 } 106 107 public void setWriter(PrintWriter writer) { 108 this.writer = writer; 109 } 110 111 public String getFormUrl() { 112 return formUrl; 113 } 114 115 private StringBuffer createFormUrlBuffer() { 116 StringBuffer url = new StringBuffer (formUrl); 117 if (url.indexOf("?") != -1) { 118 url.append('&'); 119 } 120 else { 121 url.append('?'); 122 } 123 return url; 124 } 125 126 public String getContentUrl(ContentElement el) { 127 return createFormUrlBuffer() 128 .append("_content=" + el.getId()) 129 .toString(); 130 } 131 132 public String getUploadUrl(String uploadId) { 133 return createFormUrlBuffer().append("uploadId=" + uploadId).toString(); 134 } 135 136 public PropertyEditorRegistrar[] getPropertyEditorRegistrars() { 137 return this.propertyEditorRegistrars; 138 } 139 140 public void setPropertyEditorRegistrars( 141 PropertyEditorRegistrar[] registrars) { 142 143 this.propertyEditorRegistrars = registrars; 144 } 145 146 } 147 | Popular Tags |