/*
 * -------------------------------------------------------------------------
 *    $Id: Pick.java,v 1.2 1999/12/16 18:49:49 brophy Exp $
 * -------------------------------------------------------------------------
 *    Copyright (c) 1999 Visual Numerics Inc. All Rights Reserved.
 *
 *    This software is confidential information which is proprietary to
 *    and a trade secret of Visual Numerics, Inc.  Use, duplication or
 *    disclosure is subject to the terms of an appropriate license
 *    agreement.
 *
 *    VISUAL NUMERICS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
 *    SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING
 *    BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 *    FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. VISUAL
 *    NUMERICS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
 *    AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR
 *    ITS DERIVATIVES.
 *--------------------------------------------------------------------------
 */

package com.imsl.demo.chart;
import com.imsl.chart.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class Pick extends Applet implements PickListener, MouseListener
{
    Chart        chart = null;
    Bar            bar;
    final static double x[] = {0, 1, 2, 3};
    final static double y[] = {4, 1, 2, 5};

    public void init()
    {
        chart = new Chart(this);
        chart.setDoubleBuffering(true);

        AxisXY axis = new AxisXY(chart);
        axis.getAxisX().getAxisLabel().setPaint(false);
        axis.getAxisX().getMajorTick().setPaint(false);
        bar = new Bar(axis, x, y);        
        bar.setFillColor(Color.blue);
        bar.setFillOutlineType(Bar.FILL_TYPE_SOLID);
        bar.setBarWidth(0.5);

        bar.addPickListener(this);
        addMouseListener(this);
    }


    public void update(Graphics g)
    {
        paint(g);
    }


    public void paint(Graphics g)
    {
        chart.paint(g);
    }


    public void mouseClicked(MouseEvent e)
    {
        chart.pick(e);
    }

    public void mousePressed(MouseEvent e)
    {
    }

    public void mouseReleased(MouseEvent e)
    {
    }
    
    public void mouseEntered(MouseEvent e)
    {
    }

    public void mouseExited(MouseEvent e)
    {
    }

    public void pickPerformed(PickEvent event)
    {
        ChartNode node = event.getNode();
        int count = node.getIntegerAttribute("pick.count", 0);
        count++;
        node.setAttribute("pick.count", new Integer(count));
        
        Color color = ((count%2==0) ? Color.blue : Color.red);
        node.setFillColor(color);
        node.setLineColor(color);
        repaint();
    }


    public static void main(String argv[])
    {
        Pick ex = null;

        Frame frame = new Frame();
        ex = new Pick();
        frame.add(ex);
        ex.init();
        frame.setSize(new Dimension(400,400));
        frame.show();
    }
}