/*
* File : CustomListCellRenderer.java
* Created : 09-apr-2003 18:27
* By : fbusquets
*
* JClic - Authoring and playing system for educational activities
*
* Copyright (C) 2000 - 2005 Francesc Busquets & Departament
* d'Educacio de la Generalitat de Catalunya
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details (see the LICENSE file).
*/
package edu.xtec.util;
import java.awt.Component;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
/**
* This class is a {@link javax.swing.ListCellRenderer} that can use an array of
* strings and another array of icons to display its content based on the value of the
* index
param passed to getListCellRendererComponent
.
* @author Francesc Busquets (fbusquets@xtec.cat)
* @version 1.0
*/
public class CustomListCellRenderer extends JLabel implements ListCellRenderer{
protected String[] labels=null;
protected Icon[] icons=null;
public CustomListCellRenderer() {
this(null, null);
}
/** Creates a new instance of CustomListCellRenderer */
public CustomListCellRenderer(String[] labels, Icon[] icons) {
setObjects(labels, icons);
setOpaque(true);
if(labels==null){
setHorizontalAlignment(CENTER);
setVerticalAlignment(CENTER);
}
setHorizontalAlignment(JLabel.LEFT);
}
public void setObjects(String[] labels, Icon[] icons){
this.labels=labels;
this.icons=icons;
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
String s = "";
if(value instanceof String)
s=(String)value;
else if(labels!=null && index>=0 && index=0 && index