/*
 * SearchPortletEventHandler.java
 *
 * Created on September 14, 2001, 6:29 PM
 */

package com.ibm.raleigh.saroehr.portlets;
// import portlet packages
import org.apache.jetspeed.portlet.PortletLog;
import org.apache.jetspeed.portlet.PortletConfig;
import org.apache.jetspeed.portlet.PortletRequest;
import org.apache.jetspeed.portlet.event.ActionEvent;
import org.apache.jetspeed.portlet.event.ActionAdapter;
import org.apache.jetspeed.portlet.PortletException;
import com.ibm.raleigh.saroehr.beans.SoapAccessBean;

/**
 * SearchPortletEventHandler provides event handling services
 * to FormsPortlet.
 * @author  Scott A. Roehrig@IBM Corporation
 * @version 1.0
 */
public class SearchPortletEventHandler extends ActionAdapter {
    // declare member variables
    private PortletLog log;
    // declare methods

    /** Creates new FormsPortletEventHandler */
    public SearchPortletEventHandler() {
        
    }

    public void actionPerformed(ActionEvent event) throws PortletException {
        // obtain PortletLog reference
        log = ((SearchPortlet)event.getPortlet()).getPortletLog();
        String search = event.getRequest().getParameter("search");
        String provider = event.getRequest().getParameter("provider");
        if (provider == null) {
           provider = (String)event.getRequest().getSession().getAttribute("provider");
           if (provider == null) {
               provider = "Yahoo";
           }
        }   
        
        if (log.isErrorEnabled() == true) {
            log.error(search);
            log.error(provider);
            log.error("actionPerformed() has been called...");
        }
       
       Object results = null;
       if (search == null) {
       }
       else {
            try {
                // create SoapAccessClient
                SoapAccessBean accessBean = new SoapAccessBean("http://www.soapclient.com/xml/SQLDataSoap.xsd", "ProcessSRL");
                // retrieve search string from dataStore or deployment descriptor if first access
                // set accessBean soap parameters
                accessBean.setParameters("SRLFile", String.class, "/xml/web.sri", null);
                accessBean.setParameters("RequestName", String.class, provider, null);
                accessBean.setParameters("key", String.class, search, null);
                // process soapRequest
                results = (String)accessBean.processRequest("http://www.SoapClient.com/xml/SQLDataSoap.wsdl");
            }
            catch (org.apache.soap.SOAPException exception) {
                if (log.isErrorEnabled() == true) {
                    log.error(exception.getMessage(), exception);
                    results = exception;
                }
            }
       }
       // add results to request
       event.getRequest().setAttribute("searchResults", results);   
       event.getRequest().getSession().setAttribute("provider", provider);
    }
    
}
