package jas.hist.test; import jas.hist.JASHist; import jas.hist.JASHist1DHistogramStyle; import jas.hist.JASHistData; import jas.hist.util.TwoDSliceAdapter; import java.awt.GridLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.Date; import javax.swing.JCheckBox; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; class BottomPanel extends JPanel implements ItemListener,ChangeListener { BottomPanel(JASHist hist) { m_gauss1.setStats(); m_hist = hist; m_time = TimeGauss.create("Time 1",1000,new Date("1 Jan 1997"),new Date("2 Jan 1997")); JASHist1DHistogramStyle style = new JASHist1DHistogramStyle(); style.setShowHistogramBars(false); style.setShowDataPoints(true); m_gauss2.setStyle(style); setLayout(new GridLayout(2,5)); add(box1 = new JCheckBox("Gaussian 1")); add(box2 = new JCheckBox("Gaussian 2")); add(box3 = new JCheckBox("Gaussian 3")); add(box4 = new JCheckBox("String 1")); add(box5 = new JCheckBox("Time 1")); add(box6 = new JCheckBox("2D Gaussian 1")); add(box7 = new JCheckBox("2D Gaussian 2")); add(box8 = new JCheckBox("ScatterPlot 1")); add(box9 = new JCheckBox("ScatterPlot 2")); add(box10 = new JCheckBox("TimeScatter")); box1.addItemListener(this); box2.addItemListener(this); box3.addItemListener(this); box4.addItemListener(this); box5.addItemListener(this); box6.addItemListener(this); box7.addItemListener(this); box8.addItemListener(this); box9.addItemListener(this); box10.addItemListener(this); //JASHist.registerFunction(StraightLineFunction.class,"Straight Line"); //JASHist.registerFunction(GaussianFunction.class,"Gaussian"); //JASHist.registerFunction(new SplineFactory()); //JASHist.registerFunction(new SumFunctionFactory()); //JASHist.registerFitter(LeastSquaresFit.class,"Least Squares Fitter"); } public void stateChanged(ChangeEvent ev) { int events = ((JSlider) ev.getSource()).getValue(); m_gauss1.setSize(events); m_gauss2.setSize(events); //m_gauss3.setSize(events); m_string.setSize(events); m_time.setSize(events); m_gauss6.setSize(events); m_gauss7.setSize(events); } public void itemStateChanged(ItemEvent evt) { if (recursive) return; recursive = true; Object source = evt.getSource(); if (source == box5) { if (m_mode != 5) { m_hist.removeAllData(); data5 = m_hist.addData(m_time); m_mode = 5; box1.setSelected(false); box2.setSelected(false); box3.setSelected(false); box4.setSelected(false); box6.setSelected(false); box7.setSelected(false); box8.setSelected(false); box9.setSelected(false); box10.setSelected(false); } data5.show(box5.isSelected()); } else if (source == box4) { if (m_mode != 4) { m_hist.removeAllData(); data4 = m_hist.addData(m_string); m_mode = 4; box1.setSelected(false); box2.setSelected(false); box3.setSelected(false); box5.setSelected(false); box6.setSelected(false); box7.setSelected(false); box8.setSelected(false); box9.setSelected(false); box10.setSelected(false); } data4.show(box4.isSelected()); } else if (source == box6 || source == box7) { if (m_mode != 6) { m_hist.removeAllData(); data6 = m_hist.addData(new TwoDSliceAdapter(m_gauss6)); data7 = m_hist.addData(m_gauss7); m_mode = 6; box1.setSelected(false); box2.setSelected(false); box3.setSelected(false); box4.setSelected(false); box5.setSelected(false); box8.setSelected(false); box9.setSelected(false); box10.setSelected(false); } data6.show(box6.isSelected()); data7.show(box7.isSelected()); } else if (source == box8 || source == box9) { if (m_mode != 8) { m_hist.removeAllData(); data8 = m_hist.addData(m_scat8); data9 = m_hist.addData(m_scat9); m_mode = 8; box1.setSelected(false); box2.setSelected(false); box3.setSelected(false); box4.setSelected(false); box5.setSelected(false); box6.setSelected(false); box7.setSelected(false); box10.setSelected(false); } data8.show(box8.isSelected()); data9.show(box9.isSelected()); } else if (source == box10) { if (m_mode != 10) { m_hist.removeAllData(); data10 = m_hist.addData(m_scat10); m_mode = 10; box1.setSelected(false); box2.setSelected(false); box3.setSelected(false); box4.setSelected(false); box5.setSelected(false); box6.setSelected(false); box7.setSelected(false); box8.setSelected(false); box9.setSelected(false); } data10.show(box10.isSelected()); } else { if (m_mode != 1) { m_hist.removeAllData(); data1 = m_hist.addData(m_gauss1); data2 = m_hist.addData(m_gauss2); data3 = m_hist.addData(m_gauss3); m_mode = 1; box4.setSelected(false); box5.setSelected(false); box6.setSelected(false); box7.setSelected(false); box8.setSelected(false); box9.setSelected(false); box10.setSelected(false); } data1.show(box1.isSelected()); data2.show(box2.isSelected()); data3.show(box3.isSelected()); } recursive = false; } private JCheckBox box1; private JCheckBox box2; private JCheckBox box3; private JCheckBox box4; private JCheckBox box5; private JCheckBox box6; private JCheckBox box7; private JCheckBox box8; private JCheckBox box9; private JCheckBox box10; private JASHistData data1; private JASHistData data2; private JASHistData data3; private JASHistData data4; private JASHistData data5; private JASHistData data6; private JASHistData data7; private JASHistData data8; private JASHistData data9; private JASHistData data10; private Gauss m_gauss1 = new Gauss("Gaussian 1",1000,1,0,0); private Gauss m_gauss2 = new Gauss("Gaussian 2",1000,1,0.5,-100); private Gauss m_gauss3 = new LiveGauss("Gaussian 3",0,1,1,0); private Gauss m_string = new StringGauss("String 1",1000,1,0,0); private Gauss m_time; private Gauss2D m_gauss6 = new Gauss2D("Gaussian 6",1000); private Gauss2D m_gauss7 = new Gauss2D("Gaussian 7",1000); private TestScatterPlotSource m_scat8 = new TestScatterPlotSource(); private TestScatterPlotSource m_scat9 = new TestScatterPlotSource(10); //private TestScatterPlotSource m_scat10 = new TimeScatterPlotSource(); private TestCustomOverlay m_scat10 = new TestCustomOverlay(); private JASHist m_hist; private int m_mode = 0; private boolean recursive = false; }