01: /* ***** BEGIN LICENSE BLOCK *****
02: * Version: MPL 1.1
03: * The contents of this file are subject to the Mozilla Public License Version
04: * 1.1 (the "License"); you may not use this file except in compliance with
05: * the License. You may obtain a copy of the License at
06: * http://www.mozilla.org/MPL/
07: *
08: * Software distributed under the License is distributed on an "AS IS" basis,
09: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
10: * for the specific language governing rights and limitations under the
11: * License.
12: *
13: * The Original Code is Riot.
14: *
15: * The Initial Developer of the Original Code is
16: * Neteye GmbH.
17: * Portions created by the Initial Developer are Copyright (C) 2006
18: * the Initial Developer. All Rights Reserved.
19: *
20: * Contributor(s):
21: * Felix Gnass [fgnass at neteye dot de]
22: *
23: * ***** END LICENSE BLOCK ***** */
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: public ButtonFactory(FormSubmissionHandler formSubmissionHandler) {
43: this .formSubmissionHandler = formSubmissionHandler;
44: }
45:
46: public ButtonFactory(Controller controller, String handlerMethodName) {
47: this .formSubmissionHandler = new NamedMethodHandler(controller,
48: handlerMethodName);
49: }
50:
51: public void setLabel(String label) {
52: this .label = label;
53: }
54:
55: public void setLabelKey(String labelKey) {
56: this .labelKey = labelKey;
57: }
58:
59: public void setCssClass(String cssClass) {
60: this .cssClass = cssClass;
61: }
62:
63: public Button createButton() {
64: Button button = new Button();
65: button.setSubmit(true);
66: button.setTabIndex(1);
67: if (label != null) {
68: button.setLabel(label);
69: } else {
70: button.setLabelKey(labelKey);
71: }
72: if (cssClass != null) {
73: button.setCssClass(cssClass);
74: }
75: button.addClickListener(new ClickListener() {
76: public void clicked(ClickEvent event) {
77: Form form = event.getSource().getForm();
78: form.setAttribute(
79: AbstractFormController.FORM_SUBMISSION_HANDLER,
80: formSubmissionHandler);
81: }
82: });
83:
84: return button;
85: }
86:
87: }
|