package org.limewire.ui.swing.images; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.SwingConstants; import com.google.inject.Inject; /** * Renderers a thumbnail based on the specs of ThumbnailManager.WIDTH and * ThumbnailManager.HEIGHT. */ class ImageRenderer extends JComponent { private final JLabel label; private Icon icon; @Inject public ImageRenderer() { setPreferredSize(new Dimension(ThumbnailManager.WIDTH, ThumbnailManager.HEIGHT)); setSize(getPreferredSize()); setLayout(null); setOpaque(false); label = new JLabel(); label.setVisible(false); label.setOpaque(false); label.setForeground(Color.BLACK); label.setHorizontalAlignment(SwingConstants.CENTER); calculateLabelDimnensions(); add(label); } private void calculateLabelDimnensions() { int x = (getWidth() - getInsets().left - getInsets().right - ThumbnailManager.WIDTH)/2 + getInsets().left; int y = getInsets().top + ThumbnailManager.HEIGHT/2 + 15; label.setBounds(x, y, ThumbnailManager.WIDTH, 26); } public void setIcon(Icon icon) { this.icon = icon; } public void setText(String text) { label.setText(text); if(text == null || text.length() == 0) label.setVisible(false); else label.setVisible(true); } @Override public void paintComponent(Graphics g) { if(isVisible()&& icon != null) { int iconX = (getWidth() - icon.getIconWidth())/2; int iconY = (ThumbnailManager.HEIGHT - icon.getIconHeight())/2; icon.paintIcon(this, g, 0 + iconX, 0 + iconY); } } }