package com.explodingpixels.macwidgets;
import java.awt.Component;
import java.util.EventObject;
import javax.swing.AbstractCellEditor;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import com.explodingpixels.data.Rating;
/**
* This table cell editor allows users to a adjust a Rating dragging a mouse
* over the editor area.
*
* @author Paul Connolly paulcconnolly gmail
*/
public class ITunesRatingTableCellEditor extends AbstractCellEditor implements
TableCellEditor {
private JComponent component = new RatingStarEditorPanel();
public Object getCellEditorValue() {
int value = ((RatingStarEditorPanel) component).getLevel();
return Rating.getRating(value * 20);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
table.addMouseListener((RatingStarEditorPanel) component);
table.addMouseMotionListener((RatingStarEditorPanel) component);
return component;
}
@Override
public boolean isCellEditable(EventObject e) {
return super.isCellEditable(e);
}
@Override
public boolean shouldSelectCell(EventObject anEvent) {
return super.shouldSelectCell(anEvent);
}
}