package cnp.ew.charts;

import cnp.ew.diagram.*;
import java.awt.*;
import cnp.ew.displayer.*;
import cnp.ew.util.*;
import cnp.ew.lightweight.*;

public class CpLegendLc extends CpAbstractChartItemLc
implements CpObserver
{
    CpChartLegendDisplayer legendDisplayer = new CpChartLegendDisplayer();

    public CpLegendLc()
    {
        super();
        setKeepCachedImage(true);
        legendDisplayer = new CpChartLegendDisplayer();
        setBorderDisplayer(new CpDropShadowBorderDisplayer());
    }

    public void setChartDataModel(CpChartDataModel chartData)
    {
        legendDisplayer.setChartDataModel(chartData);
        chartData.addObserver(this);
    }

    public void update(CpObservable o, int facet, Object arg)
    {
        if (facet == CpChartDataModel.CHANGED_DATA_SERIES_LABEL) {
            flushCachedImage();
            repaint();
        }
    }



    public void paint(Graphics g, Rectangle clipRect)
    {
        g.setColor(getBackground());
        g.fillRect(0, 0, size().width, size().height);
        legendDisplayer.paintIn(this, g, getClientRect());
    }
}
