package net.filebot.ui.subtitle.upload; import java.awt.Color; import java.awt.Component; import javax.swing.DefaultListCellRenderer; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JTable; import javax.swing.ListCellRenderer; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; import net.filebot.Language; import net.filebot.ResourceManager; class LanguageRenderer implements TableCellRenderer, ListCellRenderer { private DefaultTableCellRenderer tableCell = new DefaultTableCellRenderer(); private DefaultListCellRenderer listCell = new DefaultListCellRenderer(); private Component configure(JLabel c, JComponent parent, Object value, boolean isSelected, boolean hasFocus) { if (value != null) { Language language = (Language) value; c.setText(language.getName()); c.setIcon(ResourceManager.getFlagIcon(language.getCode())); c.setForeground(parent.getForeground()); } else { c.setText("<Click to select language>"); c.setIcon(null); c.setForeground(Color.LIGHT_GRAY); } return c; } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { return configure((DefaultTableCellRenderer) tableCell.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column), table, value, isSelected, hasFocus); } @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { return configure((DefaultListCellRenderer) listCell.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus), list, value, isSelected, cellHasFocus); } }