package com.vistatec.ocelot.tm.gui.match; import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import javax.swing.UIManager; import com.vistatec.ocelot.segment.model.SegmentVariant; import com.vistatec.ocelot.segment.view.SegmentTextCell; /** * Table cell renderer for segment elements. It renders the table with alternate rows color. */ public class SegmentVariantCellRenderer extends AlternateRowsColorRenderer { /** The serial version UID. */ private static final long serialVersionUID = 1L; /* * (non-Javadoc) * @see com.vistatec.ocelot.tm.gui.match.AlternateRowsColorRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) */ @Override public Component getTableCellRendererComponent(JTable jtable, Object o, boolean isSelected, boolean hasFocus, int row, int col) { Component comp = super.getTableCellRendererComponent(jtable, o, isSelected, hasFocus, row, col); SegmentTextCell renderTextPane = SegmentTextCell.createCell(); SegmentVariant segVariant = (SegmentVariant)o; if(o != null){ renderTextPane.setVariant(row, segVariant, false); renderTextPane.setBackground(comp.getBackground()); if (isSelected) { renderTextPane.setForeground(comp.getForeground()); } else { renderTextPane.setForeground(jtable.getForeground()); } renderTextPane.setSelectionColor(Color.blue); renderTextPane.setSelectedTextColor(Color.white); renderTextPane.setEditable(false); } renderTextPane.setBorder(hasFocus ? UIManager.getBorder("Table.focusCellHighlightBorder") : jtable.getBorder()); return renderTextPane; } }