/* * DateRenderer.java * * Created on 08 June 2005, 03:43 */ package org.owasp.webscarab.ui.swing; import java.util.Date; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import java.awt.Component; import java.awt.FontMetrics; import java.text.SimpleDateFormat; /** * * @author rogan */ public class DateRenderer extends DefaultTableCellRenderer { /** * */ private static final long serialVersionUID = 4146923038862167831L; private static SimpleDateFormat[] formats = new SimpleDateFormat[] { new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.S"), new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"), new SimpleDateFormat("MM/dd HH:mm:ss"), new SimpleDateFormat("HH:mm:ss"), new SimpleDateFormat(":mm:ss") }; public DateRenderer() { } 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 Date) { Date date = (Date) value; FontMetrics fm = getFontMetrics(getFont()); int i = 0; String text; int textWidth; int targetWidth = table.getColumnModel().getColumn(column).getWidth() - 4; do { text = formats[i++].format(date); textWidth = fm.stringWidth( text ); } while (textWidth > targetWidth && i < formats.length); setText(text); } return this; } }