package timeflow.app.ui;
import timeflow.model.*;
import timeflow.app.ui.filter.FilterCategoryPanel;
import timeflow.data.db.*;
import timeflow.data.db.filter.FieldValueFilter;
import timeflow.data.db.filter.ValueFilter;
import timeflow.data.time.*;
import timeflow.util.*;
import java.awt.*;
import javax.swing.JLabel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class ColorLegendPanel extends ModelPanel {
Field oldColor;
public ColorLegendPanel(TFModel model)
{
super(model);
setBackground(Color.white);
setLayout(new GridLayout(1,1));
}
@Override
public void note(TFEvent e) {
Field color=getModel().getColorField();
if (color!=null && color!=oldColor)
{
removeAll();
final FilterCategoryPanel p=new FilterCategoryPanel("Color Legend: '"+color.getName()+"'",
color, this);
add(p);
Bag<String> data=DBUtils.countValues(getModel().getDB().all(), color);
p.setData(data);
p.dataList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
ValueFilter f=(ValueFilter)p.defineFilter();
getModel().setGrayFilter(f, this);
}
});
oldColor=color;
revalidate();
return;
} else if (color==null)
{
removeAll();
}
repaint();
}
public Dimension getPreferredSize()
{
return new Dimension(200,400);
}
}