import javax.servlet.*;
import javax.servlet.http.*;
import javax.swing.*;
import jas.hist.*;
import java.net.*;
import java.io.*;

/**
 * Builds a histogram that takes its data from an XML file.
 * The URL for the XML file is passed as an argument to the servlet. 
 */
public class XMLHistogram extends SwingServlet
{
	protected JComponent createComponent(HttpServletRequest req)
		throws ServletException
	{		
		JASHist plot = new JASHist();
		try
		{
			URL base = new URL(HttpUtils.getRequestURL(req).toString());
			URL xmlURL = new URL(base,req.getParameter("xml"));
			XMLHistBuilder hb = new XMLHistBuilder(new InputStreamReader(xmlURL.openStream()),
									             xmlURL.toString());
			hb.modifyPlot(plot);
		}
		catch (Exception x) // Deal with parsing errors
		{
			x.printStackTrace();
			throw new ServletException(x.getMessage());
		}
		return plot;
	}
}
