package @@packageName@@;

import java.io.*;

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

public class @@className@@
    extends WorkpageDispatchedBean 
    implements Serializable
{
    // ------------------------------------------------------------------------
    // members
    // ------------------------------------------------------------------------
    
    BeanWrapper<@@beanClassName@@> m_bean;
    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);
        if (HttpSessionAccess.checkIfInLayoutEditorPreview())
            prepare(new @@beanClassNameWithoutPackage@@());
    }
    
    // ------------------------------------------------------------------------
    // public usage
    // ------------------------------------------------------------------------
    
    public BeanWrapper<@@beanClassName@@> getBean() { return m_bean; }

    public void prepare(@@beanClassNameWithoutPackage@@ bean)
    {
        m_bean = (BeanWrapper<@@beanClassNameWithoutPackage@@>)BeanWrapperUtil.createBeanWrapper(m_applicationContext,this,bean,false);
    }
      
    public void onValidate(ActionEvent event) 
    {
        m_bean.validate();
    }
}
