CVS: plexus-components/formproc/src/java/org/apache/plexus/formproc DefaultFormProcService.java,NONE,1.1 FormProcService.java,NONE,1.1 FormTool.java,NONE,1.1
[email protected] Tue, 20 May 2003 18:31:13 -0500
| Newsgroups | gmane.comp.java.plexus.devel |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/plexus/plexus-components/formproc/src/java/org/apache/plexus/formproc In directory eng.werken.com:/tmp/cvs-serv9939/formproc/src/java/org/apache/plexus/formproc Added Files: DefaultFormProcService.java FormProcService.java FormTool.java Log Message: A formproc component. Includes a template helper tool. If interested in using this, find my on IRC and I'll tell you how things work (but only until I write some docs). --- NEW FILE: DefaultFormProcService.java --- package org.apache.plexus.formproc; import java.io.File; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.formproc.FormManager; /** * @author <a href="mailto:[email protected]">Dan Diephouse</a> * @since May 15, 2003 */ public class DefaultFormProcService implements FormProcService, Configurable, Initializable { protected final static String CONFIGURATION = "formproc-config"; private FormManager manager; private String configuration; /** * @see org.apache.plexus.formproc.FormProcService#getFormManager() */ public FormManager getFormManager() { return manager; } /** * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration) */ public void configure(Configuration config) throws ConfigurationException { configuration = config.getAttribute( CONFIGURATION, "formproc.xml" ); } /** * @see org.apache.avalon.framework.activity.Initializable#initialize() */ public void initialize() throws Exception { File configFile = new File( configuration ); if ( configFile.exists() ) { manager = new FormManager( configFile ); } else { manager = new FormManager( getClass().getResourceAsStream( configuration ) ); } } } --- NEW FILE: FormProcService.java --- package org.apache.plexus.formproc; import org.formproc.FormManager; /** * @author <a href="mailto:[email protected]">Dan Diephouse</a> * @since May 5, 2003 */ public interface FormProcService { final public static String ROLE = FormProcService.class.getName(); FormManager getFormManager(); } --- NEW FILE: FormTool.java --- package org.apache.plexus.formproc; import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.service.Serviceable; import org.apache.plexus.summit.SummitConstants; import org.apache.plexus.summit.pull.RequestTool; import org.apache.plexus.summit.rundata.RunData; import org.apache.plexus.summit.view.ViewContext; import org.formproc.Form; import org.formproc.FormManager; import org.formproc.FormResult; import org.formproc.servlet.HttpForm; /** * A template tool that provides easy access to FormProc. * * @author <a href="mailto:[email protected]">Dan Diephouse</a> * @since May 15, 2003 */ public class FormTool implements RequestTool, Serviceable { private static final String FORM_KEY = "form"; private ServiceManager manager; private RunData data; public HttpForm getForm() { HttpForm form; if ( data.getSession().getAttribute( FORM_KEY ) != null ) { form = (HttpForm) data.getSession().getAttribute( FORM_KEY ); } else { form = new HttpForm(); data.getSession().setAttribute( FORM_KEY, form ); } return form; } public HttpForm getForm( String name, Object target ) throws Exception { HttpForm form; if ( data.getSession().getAttribute( FORM_KEY ) != null ) { form = (HttpForm) data.getSession().getAttribute( FORM_KEY ); } else { form = new HttpForm(); data.getSession().setAttribute( FORM_KEY, form ); } form.setName(name); form.setTarget(target); configure( form ); return form; } /** * When processing a form, this method will retrieve the value from the * FormResult (via getOriginalValue()). However, if there is no FormResult * yet (ie, a form that is modifying values on an object), it will return * the value that you specify. * * @param name * @param value * @return */ public Object getValue( String name, Object value ) { ViewContext context = (ViewContext) data.getMap().get( SummitConstants.VIEW_CONTEXT ); if ( context.get( "results" ) != null ) { FormResult result = (FormResult) context.get( "results" ); return result.getOriginalValue( name ); } return value; } public FormManager getFormManager() throws ServiceException { return ((FormProcService) manager.lookup(FormProcService.ROLE)).getFormManager(); } public void configure( Form form ) throws Exception { getFormManager().configure( form ); } /** * @see org.apache.plexus.summit.pull.RequestTool#setRunData(org.apache.plexus.summit.rundata.RunData) */ public void setRunData(RunData data) { this.data = data; } /** * @see org.apache.plexus.summit.pull.RequestTool#refresh() */ public void refresh() { } /** * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager) */ public void service(ServiceManager manager) throws ServiceException { this.manager = manager; } }