package de.unisiegen.gtitool.core.parser.style.renderer;
import java.awt.Component;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import de.unisiegen.gtitool.core.parser.style.PrettyPrintable;
import de.unisiegen.gtitool.core.parser.style.PrettyString;
import de.unisiegen.gtitool.core.parser.style.PrettyStringComponent;
/**
* The {@link PrettyPrintable} {@link ListCellRenderer}.
*
* @author Christian Fehler
* @version $Id: PrettyStringListCellRenderer.java 811 2008-04-18 13:52:03Z
* fehler $
*/
public class PrettyStringListCellRenderer extends DefaultListCellRenderer
{
/**
* The serial version uid.
*/
private static final long serialVersionUID = -6665907708097614503L;
/**
* The {@link PrettyStringComponent}.
*/
private PrettyStringComponent prettyStringComponent;
/**
* Allocates a new {@link PrettyStringListCellRenderer}.
*/
public PrettyStringListCellRenderer ()
{
super ();
this.prettyStringComponent = new PrettyStringComponent ();
}
/**
* {@inheritDoc}
*
* @see DefaultListCellRenderer#getListCellRendererComponent(JList, Object,
* int, boolean, boolean)
*/
@Override
public Component getListCellRendererComponent ( JList list, Object value,
@SuppressWarnings ( "unused" ) int index, boolean isSelected,
@SuppressWarnings ( "unused" ) boolean cellHasFocus )
{
PrettyString prettyString = null;
if ( value instanceof PrettyPrintable )
{
prettyString = ( ( PrettyPrintable ) value ).toPrettyString ();
}
else if ( value instanceof PrettyString )
{
prettyString = ( PrettyString ) value;
}
else
{
throw new IllegalArgumentException ( "the value can not be renderer" ); //$NON-NLS-1$
}
this.prettyStringComponent.setPrettyString ( prettyString );
this.prettyStringComponent.setComponentOrientation ( list
.getComponentOrientation () );
if ( isSelected )
{
this.prettyStringComponent
.setBackground ( list.getSelectionBackground () );
this.prettyStringComponent
.setForeground ( list.getSelectionForeground () );
}
else
{
this.prettyStringComponent.setBackground ( list.getBackground () );
this.prettyStringComponent.setForeground ( list.getForeground () );
}
this.prettyStringComponent.setEnabled ( list.isEnabled () );
this.prettyStringComponent.setFont ( list.getFont () );
return this.prettyStringComponent;
}
}