package jas.hist.test;
//******************************************************************************
// TestJASHist.java: Applet
//
//******************************************************************************
import jas.hist.JASHist;
import jas.plot.PrintHelper;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JOptionPane;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
//==============================================================================
// Main Class for applet TestJASHist
//
//==============================================================================
public class TestJASHist extends JApplet implements ChangeListener, ActionListener
{
// STANDALONE APPLICATION SUPPORT:
// m_fStandAlone will be set to true if applet is run standalone
//--------------------------------------------------------------------------
boolean m_fStandAlone = false;
// STANDALONE APPLICATION SUPPORT
// The main() method acts as the applet's entry point when it is run
// as a standalone application. It is ignored if the applet is run from
// within an HTML page.
//--------------------------------------------------------------------------
public static void main(String args[])
{
// Create Toplevel Window to contain applet TestJASHist
//----------------------------------------------------------------------
frame = new TestJASHistFrame("TestJASHist");
// Attempt to register functions/fitters
// Will fail of Fitting.jar is not in the CLASSPATH
try
{
Class c = TestJASHist.class.forName("jasext.hist.Register");
java.lang.reflect.Method m = c.getMethod("init",noArgc);
Object reg = c.newInstance();
m.invoke(reg,noArgs);
}
catch (Throwable t)
{
System.err.println("Unable to register functions/fitters");
}
// Attempt to register exporters
// Will fail of freehep-*.jar is not in the CLASSPATH
try
{
Class c = TestJASHist.class.forName("jas.export.Register");
java.lang.reflect.Method m = c.getMethod("init",noArgc);
Object reg = c.newInstance();
m.invoke(reg,noArgs);
}
catch (Throwable t)
{
System.err.println("Unable to register exporters");
}
// Must show Frame before we size it so insets() will return valid values
//----------------------------------------------------------------------
//frame.show();
//frame.hide();
//frame.resize(frame.insets().left + frame.insets().right + 600,
// frame.insets().top + frame.insets().bottom + 500);
// The following code starts the applet running within the frame window.
// It also calls GetParameters() to retrieve parameter values from the
// command line, and sets m_fStandAlone to true to prevent init() from
// trying to get them from the HTML page.
//----------------------------------------------------------------------
TestJASHist applet_TestJASHist = new TestJASHist();
frame.setContentPane(applet_TestJASHist);
applet_TestJASHist.m_fStandAlone = true;
//applet_TestJASHist.init();
applet_TestJASHist.start();
frame.pack();
frame.show();
}
// TestJASHist Class Constructor
//--------------------------------------------------------------------------
public TestJASHist()
{
init();
}
// APPLET INFO SUPPORT:
// The getAppletInfo() method returns a string describing the applet's
// author, copyright date, or miscellaneous information.
//--------------------------------------------------------------------------
public String getAppletInfo()
{
return "Name: TestJASHist\n" +
"Author: Tony Johnson\n" +
"Application for testing features of JASHist";
}
// The init() method is called by the AWT when an applet is first loaded or
// reloaded. Override this method to perform whatever initialization your
// applet needs, such as initializing data structures, loading images or
// fonts, creating frame windows, setting the layout manager, or adding UI
// components.
//--------------------------------------------------------------------------
public void init()
{
// If you use a ResourceWizard-generated "control creator" class to
// arrange controls in your applet, you may want to call its
// CreateControls() method from within this method. Remove the following
// call to resize() before adding the call to CreateControls();
// CreateControls() does its own resizing.
//----------------------------------------------------------------------
resize(400, 300);
m_hist = new JASHist();
RightPanel right = new RightPanel();
BottomPanel bottom = new BottomPanel(m_hist);
getContentPane().setLayout(new BorderLayout());
getContentPane().add("East",right);
getContentPane().add("South",bottom);
getContentPane().add("Center",m_hist);
right.addBinsChangeListener(this);
right.addEventsChangeListener(bottom);
right.addActionListener(this);
}
public void stateChanged(ChangeEvent ev)
{
m_hist.getXAxis().setBins(((JSlider) ev.getSource()).getValue());
}
// Place additional applet clean up code here. destroy() is called when
// when you applet is terminating and being unloaded.
//-------------------------------------------------------------------------
public void destroy()
{
// TODO: Place applet cleanup code here
}
// TestJASHist Paint Handler
//--------------------------------------------------------------------------
//public void paint(Graphics g)
//{
//}
// The start() method is called when the page containing the applet
// first appears on the screen. The AppletWizard's initial implementation
// of this method starts execution of the applet's thread.
//--------------------------------------------------------------------------
public void start()
{
// TODO: Place additional applet start code here
}
// The stop() method is called when the page containing the applet is
// no longer on the screen. The AppletWizard's initial implementation of
// this method stops execution of the applet's thread.
//--------------------------------------------------------------------------
public void stop()
{
}
// TODO: Place additional applet code here
public void actionPerformed(ActionEvent evt)
{
String arg = evt.getActionCommand();
if (arg.equals("About..."))
{
JOptionPane.showMessageDialog(this,getAppletInfo() ,
"About...", JOptionPane.INFORMATION_MESSAGE);
}
else if (arg.equals("Properties..."))
{
m_hist.showProperties();
}
else if (arg.equals("Print..."))
{
try
{
PrintHelper help = PrintHelper.instance();
help.printTarget(m_hist);
}
catch (Exception x) { System.err.println("Error printing: "+x); }
}
else if (arg.equals("Save As..."))
{
try
{
m_hist.saveAs();
}
catch (Exception x) { System.err.println("Error saving: "+x); }
}
}
private JASHist m_hist;
private static TestJASHistFrame frame;
public final static Class[] noArgc = {};
public final static Object[] noArgs = {};
}