org.riotfamily.riot.form.ui
Class BaseFormController

java.lang.Object
  extended by org.riotfamily.forms.controller.AbstractFormController
      extended by org.riotfamily.forms.controller.AjaxFormController
          extended by org.riotfamily.forms.factory.RepositoryFormController
              extended by org.riotfamily.riot.form.ui.BaseFormController
All Implemented Interfaces:
MessageSourceAware, Controller
Direct Known Subclasses:
FormController

public abstract class BaseFormController
extends RepositoryFormController


Field Summary
protected static String EDITOR_DEFINITION_ATTR
           
 
Fields inherited from class org.riotfamily.forms.factory.RepositoryFormController
DEFAULT_FORM_ID_PARAM
 
Fields inherited from class org.riotfamily.forms.controller.AbstractFormController
BUTTON_CONTAINER_ID, FORM_SUBMISSION_HANDLER, log
 
Constructor Summary
BaseFormController(EditorRepository editorRepository, FormRepository formRepository, PlatformTransactionManager transactionManager)
           
 
Method Summary
protected abstract  ModelAndView afterSave(Form form, ObjectEditorDefinition editorDefinition, HttpServletRequest request, HttpServletResponse response)
           
protected abstract  ModelAndView afterUpdate(Form form, ObjectEditorDefinition editorDefinition, HttpServletRequest request, HttpServletResponse response)
           
protected  Form createForm(HttpServletRequest request)
          Subclasses must implement this method and return a fresh Form instance.
protected  Map<String,Object> createModel(Form form, ObjectEditorDefinition formDefinition, HttpServletRequest request, HttpServletResponse response)
           
protected  Object getFormBackingObject(HttpServletRequest request)
          Returns the object backing the form.
protected  String getFormId(HttpServletRequest request)
          Returns the id of the form to be used.
protected  ObjectEditorDefinition getObjectEditorDefinition(HttpServletRequest request)
          Returns the EditorDefinition for the given request.
protected  String getObjectId(HttpServletRequest request)
          Returns the id of the object to be edited.
protected  EditorDefinition getParentEditor(HttpServletRequest request)
          Returns the parent editor.
protected  String getParentId(HttpServletRequest request)
          Returns the id of the parent object.
protected  String getSessionAttribute(HttpServletRequest request)
          Returns the name of the attribute under which the Form is stored in the HTTP session.
 ModelAndView handleFormSubmission(Form form, HttpServletRequest request, HttpServletResponse response)
           
protected  ModelAndView handleFormSubmissionInternal(Form form, HttpServletRequest request, HttpServletResponse response)
           
protected  void saveOrUpdate(Form form, ObjectEditorDefinition editor)
           
 void setViewName(String viewName)
           
protected  ModelAndView showForm(Form form, HttpServletRequest request, HttpServletResponse response)
           
 
Methods inherited from class org.riotfamily.forms.factory.RepositoryFormController
getFormIdParam, getFormRepository, setFormIdParam
 
Methods inherited from class org.riotfamily.forms.controller.AjaxFormController
handleFormRequest, initForm, isEventRequest, isInitialRequest, processAjaxRequest, processEventRequest, renderForm, setMessageSource
 
Methods inherited from class org.riotfamily.forms.controller.AbstractFormController
createAndInitForm, createModelAndView, getForm, getWriter, handleContentRequest, handleRequest, initController, isContentRequest, isExclusiveRequest, populateForm, processForm, removeFormFromSession, setFormContextFactory, setProcessNewForms
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EDITOR_DEFINITION_ATTR

protected static final String EDITOR_DEFINITION_ATTR
Constructor Detail

BaseFormController

public BaseFormController(EditorRepository editorRepository,
                          FormRepository formRepository,
                          PlatformTransactionManager transactionManager)
Method Detail

setViewName

public void setViewName(String viewName)

getSessionAttribute

protected String getSessionAttribute(HttpServletRequest request)
Returns the name of the attribute under which the Form is stored in the HTTP session. This implementation returns the requestURI with the controller's class name as prefix.

Overrides:
getSessionAttribute in class RepositoryFormController

getObjectEditorDefinition

protected ObjectEditorDefinition getObjectEditorDefinition(HttpServletRequest request)
Returns the EditorDefinition for the given request.


getObjectId

protected String getObjectId(HttpServletRequest request)
Returns the id of the object to be edited.


getParentId

protected String getParentId(HttpServletRequest request)
Returns the id of the parent object. Note: The method returns the request parameter parentId which is only set when a new object is created, i.e. getObjectId(HttpServletRequest) returns null.


getParentEditor

protected EditorDefinition getParentEditor(HttpServletRequest request)
Returns the parent editor. Note: The method uses the request parameter parentEditorId which is only set when a new object is created, i.e. getObjectId(HttpServletRequest) returns null.


getFormId

protected String getFormId(HttpServletRequest request)
Returns the id of the form to be used. This implementation returns the formId specified by the FormDefinition.

Overrides:
getFormId in class RepositoryFormController

createForm

protected Form createForm(HttpServletRequest request)
Description copied from class: AbstractFormController
Subclasses must implement this method and return a fresh Form instance.

Overrides:
createForm in class RepositoryFormController

getFormBackingObject

protected Object getFormBackingObject(HttpServletRequest request)
Description copied from class: AbstractFormController
Returns the object backing the form. Subclasses may overwrite this method to retrieve a persistent object. The default implementation returns null.

Overrides:
getFormBackingObject in class AbstractFormController
See Also:
AbstractFormController.getFormBackingObject(javax.servlet.http.HttpServletRequest)

createModel

protected Map<String,Object> createModel(Form form,
                                         ObjectEditorDefinition formDefinition,
                                         HttpServletRequest request,
                                         HttpServletResponse response)

showForm

protected ModelAndView showForm(Form form,
                                HttpServletRequest request,
                                HttpServletResponse response)
Overrides:
showForm in class AbstractFormController
See Also:
AbstractFormController.showForm(org.riotfamily.forms.Form, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

handleFormSubmission

public final ModelAndView handleFormSubmission(Form form,
                                               HttpServletRequest request,
                                               HttpServletResponse response)
                                        throws Exception
Specified by:
handleFormSubmission in class AbstractFormController
Throws:
Exception

handleFormSubmissionInternal

protected ModelAndView handleFormSubmissionInternal(Form form,
                                                    HttpServletRequest request,
                                                    HttpServletResponse response)
                                             throws Exception
Throws:
Exception

saveOrUpdate

protected void saveOrUpdate(Form form,
                            ObjectEditorDefinition editor)
                     throws Exception
Throws:
Exception

afterSave

protected abstract ModelAndView afterSave(Form form,
                                          ObjectEditorDefinition editorDefinition,
                                          HttpServletRequest request,
                                          HttpServletResponse response)

afterUpdate

protected abstract ModelAndView afterUpdate(Form form,
                                            ObjectEditorDefinition editorDefinition,
                                            HttpServletRequest request,
                                            HttpServletResponse response)