// Near Infinity - An Infinity Engine Browser and Editor
// Copyright (C) 2001 - 2005 Jon Olav Hauglid
// See LICENSE.txt for license information
package org.infinity.gui;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public final class ToolTipTableCellRenderer extends DefaultTableCellRenderer
{
// --------------------- Begin Interface TableCellRenderer ---------------------
@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 (table.getColumnModel().getColumn(column).getWidth() <
getFontMetrics(getFont()).stringWidth(getText())) {
StringBuffer sb = new StringBuffer("<html>");
String string = getText();
int index = 0;
while (index < string.length()) {
if (index > 0)
sb.append("<br>");
int delta = string.indexOf((int)' ', index + 100);
if (delta == -1)
delta = string.length();
sb.append(string.substring(index, Math.min(delta, string.length())));
index = delta;
}
sb.append("</html>");
setToolTipText(sb.toString());
}
else
setToolTipText(null);
return this;
}
// --------------------- End Interface TableCellRenderer ---------------------
}