package com.revolsys.swing.table.renderer;
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
public class ComponentTableCellRenderer implements TableCellRenderer, MouseListener {
private JComponent component;
@Override
public Component getTableCellRendererComponent(final JTable table, final Object value,
final boolean isSelected, final boolean hasFocus, final int row, final int column) {
if (this.component instanceof TableCellRenderer) {
final TableCellRenderer renderer = (TableCellRenderer)this.component;
return renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row,
column);
} else {
return this.component;
}
}
@Override
public void mouseClicked(final MouseEvent e) {
final MouseListener[] listeners = this.component.getListeners(MouseListener.class);
for (final MouseListener mouseListener : listeners) {
mouseListener.mouseClicked(e);
}
}
@Override
public void mouseEntered(final MouseEvent e) {
final MouseListener[] listeners = this.component.getListeners(MouseListener.class);
for (final MouseListener mouseListener : listeners) {
mouseListener.mouseEntered(e);
}
}
@Override
public void mouseExited(final MouseEvent e) {
final MouseListener[] listeners = this.component.getListeners(MouseListener.class);
for (final MouseListener mouseListener : listeners) {
mouseListener.mouseExited(e);
}
}
@Override
public void mousePressed(final MouseEvent e) {
final MouseListener[] listeners = this.component.getListeners(MouseListener.class);
for (final MouseListener mouseListener : listeners) {
mouseListener.mousePressed(e);
}
}
@Override
public void mouseReleased(final MouseEvent e) {
final MouseListener[] listeners = this.component.getListeners(MouseListener.class);
for (final MouseListener mouseListener : listeners) {
mouseListener.mouseReleased(e);
}
}
}