41 lines
1.2 KiB
Java
41 lines
1.2 KiB
Java
package de.marhali.easyi18n.ui.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;
|
|
}
|
|
} |