package jas2.bean;

import javax.swing.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import java.awt.*;
import java.util.*;
import jas2.hist.*;
import java.io.*;
import java.net.*;

/**
 * An XMLPlot is a bean intended to be embedded in a web page displayed within the JAS
 * web page viewer. XMLPlot has a single property, xmlURL, which specifies the URL of an XML 
 * file to read to create a plot.
 */
public class XMLPlot extends JPanel implements PageContextHook
{
	public XMLPlot() 
	{
		super(new BorderLayout(0,0));
		m_hist = new JASHist();
		add(m_hist,BorderLayout.CENTER); 
	}
	public Dimension getPreferredSize()
	{
		return m_hist.getPreferredSize();
	}
	public Dimension getMinimumSize()
	{
		return getPreferredSize();
	}
	public Dimension getMaximumSize()
	{
		return getPreferredSize();
	}
	public void setXmlURL(String xml) 
	{
		m_xml = xml;
	}
	public String getXmlURL() 
	{
		return m_xml;
	}
	public JASHist getHist()
	{
		return m_hist;
	}
	public void init(PageContext context) throws Exception
	{
		XMLHistBuilder xmh = readXML(context);
		xmh.modifyPlot(m_hist);
	}
	protected XMLHistBuilder readXML(PageContext context) throws Exception
	{
		URL url = new URL(context.getDocumentBase(),m_xml);
		Reader in = new InputStreamReader(url.openStream());
		XMLHistBuilder xmh = new XMLHistBuilder(in,m_xml);
		in.close();
		return xmh;
	}
	public void destroy() 
	{
		m_hist.destroy();
	}
	
	protected String m_xml;
	protected jas2.hist.JASHist m_hist;
}

 

Ads help maintain this website.