package com.limegroup.gnutella.gui.search; import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import com.limegroup.gnutella.gui.themes.ThemeMediator; import com.limegroup.gnutella.gui.themes.ThemeObserver; import com.limegroup.gnutella.gui.themes.ThemeFileHandler; /** Draws EndpointHolder's appropriately colorized */ class EndpointRenderer extends DefaultTableCellRenderer implements ThemeObserver { private static Color _nonPrivateColor; private static Color _privateColor; public EndpointRenderer() { updateTheme(); ThemeMediator.addThemeObserver(this); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSel, boolean hasFocus, int row, int column) { EndpointHolder e = (EndpointHolder)value; Component ret = super.getTableCellRendererComponent( table, e, isSel, hasFocus, row, column); //Render private IP addresses in red, others in black. The second call //is necessary to prevent everything from turning red, since one //renderer is shared among all cells. if (e.isPrivateAddress()) ret.setForeground(_privateColor); else ret.setForeground(_nonPrivateColor); return ret; } public void updateTheme() { _nonPrivateColor = ThemeFileHandler.WINDOW8_COLOR.getValue(); _privateColor = ThemeFileHandler.SEARCH_PRIVATE_IP_COLOR.getValue(); } }