//This product is provided under the terms of EPL (Eclipse Public License)
//version 1.0.
//
//The full license text can be read from: http://www.eclipse.org/org/documents/epl-v10.php
package org.dtangler.swingui.dsm.impl;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.TableCellRenderer;
import org.dtangler.ui.dsm.DependableInfo;
public class DependableInfoColumnTableCellRenderer implements TableCellRenderer {
private final static JLabel Empty = new JLabel();
private final static JLabel Selected = createLabel(Color.gray);
private final static JLabel Background1 = createLabel(Color.lightGray);
private final static JLabel Background2 = createLabel(new Color(204, 204,
204));
private static JLabel createLabel(Color color) {
JLabel label = new JLabel();
label.setOpaque(true);
label.setBackground(color);
label.setHorizontalAlignment(SwingConstants.CENTER);
return label;
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (column == 0)
return Empty;
DependableInfo info = (DependableInfo) table.getValueAt(column - 1, 0);
JLabel label = getLabel(info.isInCrosshair(), column);
label.setText(Integer.toString(info.getIndex()));
label.setToolTipText(info.getDisplayName());
return label;
}
private JLabel getLabel(boolean selected, int column) {
if (selected)
return Selected;
return column % 2 == 0 ? Background1 : Background2;
}
}