package open.dolphin.impl.img;
import java.awt.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import open.dolphin.client.ClientContext;
import open.dolphin.client.ImageEntry;
/**
*
* @author Kazushi Minagawa. Digital Globe, Inc.
*/
public class ImageTableRenderer extends DefaultTableCellRenderer {
private final AbstractBrowser context;
private int imageSize = 120;
public ImageTableRenderer(AbstractBrowser context) {
this.context = context;
setHorizontalAlignment(SwingConstants.CENTER);
setVerticalTextPosition(JLabel.BOTTOM);
setHorizontalTextPosition(JLabel.CENTER);
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean isFocused,
int row, int col) {
Component compo = super.getTableCellRendererComponent(table,
value,
isSelected,
isFocused,
row, col);
JLabel l = (JLabel)compo;
ImageIcon icon = null;
String fileName = null;
if (value!=null) {
ImageEntry entry = (ImageEntry)value;
if (context.showFilename()) {
fileName = context.displayIsFilename()
? entry.getFileName()
: getLastModified(entry.getLastModified());
}
icon = entry.getImageIcon();
}
l.setIcon(icon);
l.setText(fileName);
return compo;
}
public int getImageSize() {
return imageSize;
}
public void setImageSize(int imageSize) {
this.imageSize = imageSize;
}
private String getLastModified(long l) {
String dateFmt = ClientContext.getMyBundle(AbstractBrowser.class).getString("dateFormat.imageBrowser");
return new SimpleDateFormat(dateFmt).format(new Date(l));
}
}