package jdepend.client.ui.framework;
import java.awt.Color;
import java.awt.Component;
import java.util.List;
import javax.swing.JTable;
import jdepend.metadata.CandidateUtil;
import jdepend.model.JavaClassUnit;
import jdepend.model.result.AnalysisResult;
import jdepend.client.report.model.ReportJavaClassUnit;
import jdepend.util.refactor.CompareObject;
public class JavaClassCompareTableCellRenderer extends CompareTableCellRenderer {
private List<String> extendUnits;
public JavaClassCompareTableCellRenderer(List<String> extendUnits) {
super();
this.extendUnits = extendUnits;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
final int row, final int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (this.getComponentCount() > 0) {
Component component = this.getComponent(0);
if (extendUnits.contains(CandidateUtil.getId((String) table.getValueAt(row, 0),
(String) table.getValueAt(row, 1)))) {
component.setForeground(Color.GRAY);
}
}
return this;
}
@Override
protected CompareObject getCompareObject(Object value, String id, String metrics) {
return new CompareObject(value, id, metrics) {
@Override
public Object getOriginalityValue(AnalysisResult result) {
JavaClassUnit javaClassUnit = result.getTheClass(this.getId());
if (javaClassUnit != null) {
return new ReportJavaClassUnit(javaClassUnit).getValue(this.getMetrics());
} else {
return null;
}
}
};
}
@Override
protected String getRowObjectId(JTable table, int row) {
return CandidateUtil.getId((String) table.getValueAt(row, 0), (String) table.getValueAt(row, 1));
}
}