1 24 package org.riotfamily.forms.controller; 25 26 import org.riotfamily.forms.Form; 27 import org.riotfamily.forms.event.Button; 28 import org.riotfamily.forms.event.ClickEvent; 29 import org.riotfamily.forms.event.ClickListener; 30 import org.springframework.web.servlet.mvc.Controller; 31 32 public class ButtonFactory { 33 34 private String labelKey; 35 36 private String label; 37 38 private String cssClass; 39 40 private FormSubmissionHandler formSubmissionHandler; 41 42 43 public ButtonFactory(FormSubmissionHandler formSubmissionHandler) { 44 this.formSubmissionHandler = formSubmissionHandler; 45 } 46 47 public ButtonFactory(Controller controller, String handlerMethodName) { 48 this.formSubmissionHandler = new NamedMethodHandler( 49 controller, handlerMethodName); 50 } 51 52 public void setLabel(String label) { 53 this.label = label; 54 } 55 56 public void setLabelKey(String labelKey) { 57 this.labelKey = labelKey; 58 } 59 60 public void setCssClass(String cssClass) { 61 this.cssClass = cssClass; 62 } 63 64 public Button createButton() { 65 Button button = new Button(); 66 button.setSubmit(true); 67 button.setTabIndex(1); 68 if (label != null) { 69 button.setLabel(label); 70 } 71 else { 72 button.setLabelKey(labelKey); 73 } 74 if (cssClass != null) { 75 button.setCssClass(cssClass); 76 } 77 button.addClickListener(new ClickListener() { 78 public void clicked(ClickEvent event) { 79 Form form = event.getSource().getForm(); 80 form.setAttribute(AbstractFormController.FORM_SUBMISSION_HANDLER, 81 formSubmissionHandler); 82 } 83 }); 84 85 return button; 86 } 87 88 } 89 | Popular Tags |