{
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column )
{
Component component;
DefaultCellEditor cellEditor = ( DefaultCellEditor )table.getCellEditor( row, column );
if( cellEditor.getComponent() instanceof JPasswordField && value instanceof String )
{
if( value != null && ( ( String )value ).length() > 0 )
{
component = super.getTableCellRendererComponent( table, "**************", isSelected, hasFocus, row,
column );
}
else
{
component = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
}
}
else
{
component = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
}
if( component instanceof JComponent )
{
PropertyDescriptor descriptor = ( ( PropertiesTableModel<?> )table.getModel() )
.getPropertyDescriptorAt( row );
if( StringUtils.hasContent( descriptor.getDescription() ) )
{
( ( JComponent )component ).setToolTipText( descriptor.getDescription() );
}
// do not set tooltip as value for password field, it has no sense.
else if( value != null && StringUtils.hasContent( value.toString() )
&& !( cellEditor.getComponent() instanceof JPasswordField ) )
{
( ( JComponent )component ).setToolTipText( value.toString() );
}
else
{