2021-07-19 15:00:59 +02:00

41 lines
1.2 KiB
Java

package de.marhali.easyi18n.renderer;
import com.intellij.ui.JBColor;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;
/**
* Similar to {@link DefaultTableCellRenderer} but will mark the first column red if any column is empty.
* @author marhali
*/
public class TableRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(column == 0 && missesValues(row, table)) {
component.setForeground(JBColor.RED);
} else { // Reset color
component.setForeground(null);
}
return component;
}
private boolean missesValues(int row, JTable table) {
int columns = table.getColumnCount();
for(int i = 1; i < columns; i++) {
Object value = table.getValueAt(row, i);
if(value == null || value.toString().isEmpty()) {
return true;
}
}
return false;
}
}