package org.limewire.ui.swing.library.sharing; import java.awt.Color; import java.awt.Component; import java.awt.Font; import javax.swing.BorderFactory; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.Border; import javax.swing.table.DefaultTableCellRenderer; import org.jdesktop.application.Resource; import org.limewire.friend.api.Friend; import org.limewire.friend.api.Network; import org.limewire.ui.swing.util.GuiUtils; class LibrarySharingFriendListRenderer extends DefaultTableCellRenderer { private @Resource Font font; private @Resource Color fontColor; private @Resource Color backgroundColor; private final JScrollPane scrollPane; private final Border border = BorderFactory.createEmptyBorder(10,14,10,5); public LibrarySharingFriendListRenderer(JScrollPane scrollPane) { this.scrollPane = scrollPane; GuiUtils.assignResources(this); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if(value instanceof Friend) { Friend friend = (Friend)value; if(friend.getNetwork().getType() != Network.Type.FACEBOOK) { setToolTipText(friend.getRenderName() + " <" + friend.getId() + ">"); } else { setToolTipText(friend.getRenderName()); } setText(friend.getRenderName()); } else if(value instanceof String){ setText((String)value); setToolTipText((String)value); } else { setText(""); setToolTipText(""); } setBorder(border); setFont(font); setForeground(fontColor); setOpaque(!scrollPane.getVerticalScrollBar().isVisible()); setBackground(backgroundColor); return this; } }