package @@packageName@@;

import java.io.*;

import javax.faces.event.ActionEvent;
import org.eclnt.beanmgmt.*;
import org.eclnt.beanmgmt.wrapper.*;
import org.eclnt.jsfserver.defaultscreens.*;
import org.eclnt.workplace.*;
import org.springframework.context.*;
import org.springframework.context.support.*;
import @@beanClassName@@;
import @@beanClassName@@.*;

public class @@className@@
    extends WorkpageDispatchedBean 
    implements Serializable
{
    // ------------------------------------------------------------------------
    // members
    // ------------------------------------------------------------------------
    
@@memberDeclaration@@
    BeanWrapper<@@resultClassName@@> m_result;
    ApplicationContext m_applicationContext;
    
    // ------------------------------------------------------------------------
    // constructors
    // ------------------------------------------------------------------------
    
    public @@className@@(IWorkpageDispatcher dispatcher)
    {
        super(dispatcher);
        ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
        Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
        m_applicationContext = new ClassPathXmlApplicationContext("/applicationContext.xml");
        Thread.currentThread().setContextClassLoader(currentClassLoader);
    }
    
    // ------------------------------------------------------------------------
    // public usage
    // ------------------------------------------------------------------------
    
@@memberGetters@@
    public BeanWrapper<@@resultClassName@@> getResult() { return m_result; }
      
    public void onExecute(ActionEvent event) 
    {
        try
        {
            @@beanClassName@@ s = new @@beanClassName@@();
@@validation@@
            @@resultClassName@@ result = s.@@operation@@(@@memberList@@);
            m_result = (BeanWrapper)BeanWrapperUtil.createBeanWrapper(m_applicationContext,getWorkpage(),result,false);;
        }
        catch (Throwable t)
        {
            t.printStackTrace();
            Statusbar.outputAlert(t.toString());
        }
    }
}
